Job Summary We are seeking an experienced
Embedded Software Developer to design, develop, integrate, and validate embedded software for automotive
Battery Management Systems (BMS) used in electric and hybrid vehicles.
The engineer will work on real-time embedded software involving battery monitoring, diagnostics, communication, safety mechanisms, and control functions. The role requires strong expertise in
Embedded C/C++, automotive microcontrollers,
CAN/CAN FD, diagnostics, debugging, and automotive software development practices.
Key Responsibilities - Design, develop, and maintain embedded software for automotive BMS applications.
- Develop BMS software functions supporting:
- Cell voltage and temperature monitoring
- State of Charge (SOC)
- State of Health (SOH)
- State of Power (SOP)
- Battery protection and fault management
- Contactor and high-voltage interlock control
- Thermal management interfaces
- Charge/discharge control
- Develop production-quality software using Embedded C/C++.
- Develop low-level drivers, middleware, application software, and hardware abstraction interfaces as required.
- Integrate software with battery monitoring ICs, sensors, actuators, and vehicle ECUs.
- Implement vehicle communication using CAN, CAN FD, LIN, SPI, I2C, and UART as applicable.
- Implement automotive diagnostics using UDS (ISO 14229) and related diagnostic services.
- Perform software debugging using tools such as Lauterbach TRACE32, Vector CANoe/CANalyzer, debuggers, oscilloscopes, and logic analyzers.
- Support software integration, unit testing, Software-in-the-Loop (SIL), Hardware-in-the-Loop (HIL), and vehicle-level validation.
- Analyze defects, perform root-cause analysis, and implement corrective actions.
- Develop software aligned with AUTOSAR Classic architectures where applicable.
- Follow automotive development processes aligned with ASPICE and ISO 26262 functional safety requirements.
- Participate in software requirements analysis, architecture/design reviews, code reviews, and verification activities.
- Support software release, configuration management, and technical documentation.
Required Qualifications - Bachelor's or Master's degree in Electrical Engineering, Electronics Engineering, Computer Engineering, Computer Science, or a related discipline.
- Strong programming experience in Embedded C/C++.
- Hands-on experience developing software for automotive embedded controllers.
- Experience with automotive microcontrollers such as Infineon AURIX, NXP S32K/S32G, Renesas RH850, or comparable MCU families.
- Strong understanding of:
- Real-time embedded systems
- Interrupts and timers
- Memory management
- ADC/PWM/GPIO
- Watchdogs
- Boot and initialization
- Embedded communication protocols
- Experience with CAN/CAN FD and diagnostic protocols.
- Familiarity with UDS, DTCs, diagnostic sessions, and ECU diagnostics.
- Experience with debugging and vehicle-network analysis tools.