The Cell Equipment Design team is responsible for delivering high-capacity manufacturing systems to production. Our software manages tens of millions of cells simultaneously and the Firmware team designs the controller architecture. Tesla seeks an Embedded Software Engineer to join the team in developing high performance firmware, ultra-reliable and safe equipment for a variety of cell development projects including all Formation manufacturing processes, all Cell Qualification phases, and special applications. The engineer is expected to perform software development through all product build phases beginning with PCBA component & system design validation, factory acceptance testing, and production sustaining. The engineer will be a key partner between manufacturing and electrical design engineering during concept stage, implementation, and design validation. We're looking for a motivated engineer to join our team and take responsibility for one of the many products we're currently designing (some announced, some not). The role will write software ranging from embedded C real-time controls to Python-based test software - whatever is necessary to get the job done. You will show outstanding organizational and communication skills and an eagerness to push the industry forward.
* Work on projects within a sub-system such as cell cycling, microcontroller real-time operating systems, NVRAM interfaces, battery management algorithms, functional safety, cell string dynamics, DCAC/DCDC power conversion control, electrochemical impedance spectroscopy (EIS), thermal and HVAC controls
* Develop highly reliable C and Python code that is structured, documented, maintainable, and reusable. Integrate software into production systems and perform regression testing
* Evaluate new manufacturing processes for controllability and fit to system needs
* Collaborate with other firmware developers and integration engineers to implement, test, debug, and calibrate your features in our production line and research lab
* Contribute to and participate in software testing and continuous deployment processes
* Outline controller requirements based on system performance specifications. Participate in cross functional efforts to define microcontroller capability and establish actuation/sensing requirements
* Own firmware through life cycle from prototype to high-volume production, author high-quality C code in a real-time embedded environment
* Solve hard, undefined problems with limited direction. Hands-on with hardware bring-up and prototyping
* Degree in Electrical Engineering, Computer Engineering, or equivalent experience
* Proficient in languages such as C, C++, Golang, Python, and/or Rust. Experience developing real-time safety-critical software (C/C++)
* Experience validating complex systems
* Familiarity with protocols such as CAN, UDS, Protocol Buffers, gRPC, TCP/IP, OPCUA
* Understanding of embedded technologies (ADC, PWM, SPI, UART, I2C, CMPSS, DAC)
* Exceptional understanding of electrical engineering concepts, strong hands-on testing and troubleshooting skills
* Robust understanding of software fundamentals including software design, Git, scripting, CI/CD, algorithms, basic data structures, code modularity, and maintainability
* Demonstrate a good understanding of testing concepts including white box and black box testing, regression testing, unit testing, and performance testing
* Strong interest to collaborate cross-functionally, willingness to work hands-on, and dive into open-ended projects in a fast-paced environment
* Excellent communication skills and attention to detail