Embedded Software Engineer - Battery Management Systems
Develops and validates real-time embedded firmware for battery management and power systems, including charging, thermal management, cell balancing, and vehicle controls. Requires 8+ years of embedded power electronics experience, strong C/C++, hardware bring-up, and automotive communication protocol expertise.
About the job
Responsibilities
- Design, develop, and test real-time embedded software in C/C++ for battery management systems (BMS).
- Implement core logic for cell balancing, charging control, thermal management, and contactor controls.
- Integrate supplier subsystems into the software stack.
- Create software requirements, design documentation, test plans, and supporting documentation.
- Collaborate with vehicle, controls, software, validation, systems, and supplier teams to ensure seamless hardware-software integration.
- Contribute to all phases of the software development lifecycle, including prototyping, requirements capture, design, implementation, and validation.
- Support power management and efficiency, charging control, operator controls, power subsystem coordination, and low-level vehicle controls.
- Perform hardware bring-up and system debugging.
Requirements
- Bachelor's or master's degree in computer science, electrical engineering, mechanical engineering, or equivalent experience.
- 8+ years of experience developing real-time embedded software for power electronics and battery management systems.
- Strong embedded C/C++ programming experience.
- Experience with embedded microcontrollers and/or microprocessors, including ARM or PowerPC.
- Hands-on experience with hardware bring-up and system debugging.
- Understanding of sensors, actuators, and automotive communication protocols such as CAN and LIN.
Nice-to-Haves
- Basic knowledge of control systems for electromechanical systems.
- Experience with CAN and LIN analysis and debugging tools, such as PCAN, CANalyzer, or CANape.
- Familiarity with high-assurance development practices and tools, including Polarion, ISO 26262, and MISRA C/C++.
Skills
C, C++, Battery Management Systems, Power Electronics, Microcontrollers, Arm, Powerpc, Hardware Bring-Up, Can, Lin, Control Systems, Pcan, Canalyzer, Iso 26262, Misra C/C++
Similar jobs
Embedded Engineering jobsIntegrate and deploy autonomy software on unmanned aircraft, prepare systems for flight, and troubleshoot hardware, software, and embedded integration issues during lab and field tests. The role requires a relevant degree or equivalent experience, C++ and Python proficiency, and at least two years of related experience.
Leads development and deployment of autonomy, robotics, and embedded software for safety-critical pilot assistance systems. The role requires 5+ years of production robotic or embedded software experience, strong C++ or Python skills, and hands-on hardware and edge-compute integration.
Develops operating-system platforms, drivers, and infrastructure for autonomous-vehicle devices and hardware-accelerated workloads. Requires 8+ years delivering production systems, strong Linux internals and C/C++ experience, and familiarity with embedded Linux or robotics is advantageous.
Develops C/C++ software, firmware, integrations, and manufacturing tools for YubiKey devices and custom embedded hardware platforms. The role requires 5+ years of software engineering experience, embedded development expertise, and familiarity with Windows or Linux internals.
Leads systems engineering for autonomous battery-electric rail vehicles, defining architectures and requirements while driving integration, verification, and validation across hardware, firmware, and command-and-control software. Requires a relevant engineering or computer science degree and at least five years working with complex hardware systems.