Embedded Software Developer1

Pentangle Tech

  • Plymouth, MI
  • 1 day ago

    Highlights

    Job Title: Embedded Software Developer Location: Plymouth, MI Duration: Long Term Client: Cognizant Job Summary We are seeking an experienced Embedded Software Developer with expertise in Battery Management Systems (BMS) to design, develop, integrate, and validate embedded software for automotive battery management applications used in Electric Vehicles (EVs) and Hybrid Electric Vehicles (HEVs). Preferred BMS Experience Candidates with experience in the following areas will be strongly preferred: Automotive Battery Management Systems (BMS) for EV/HEV/PHEV applications.

    Numbers & Facts

    LocationPlymouth, MI

    Description

    Job Title: Embedded Software Developer
    Location: Plymouth, MI
    Duration: Long Term
    Client: Cognizant
    Job Summary

    We are seeking an experienced Embedded Software Developer with expertise in Battery Management Systems (BMS) to design, develop, integrate, and validate embedded software for automotive battery management applications used in Electric Vehicles (EVs) and Hybrid Electric Vehicles (HEVs).

    The ideal candidate will have strong hands-on experience in Embedded C/C++, automotive microcontrollers, CAN/CAN FD communication, ECU diagnostics, and real-time embedded software development. Experience with EV battery management, battery monitoring, protection mechanisms, and functional safety is highly preferred.

    Key Responsibilities
    • Design, develop, and maintain embedded software for automotive Battery Management Systems (BMS).
    • Develop software functions for battery monitoring, State of Charge (SOC), State of Health (SOH), State of Power (SOP), cell balancing, and battery protection.
    • Implement battery safety features, fault management, contactor control, high-voltage interlock, and thermal management interfaces.
    • Develop production-quality embedded software using C/C++.
    • Develop and integrate low-level drivers, middleware, application software, and hardware abstraction layers.
    • Implement communication protocols including CAN, CAN FD, LIN, SPI, I2C, and UART.
    • Implement automotive diagnostics using UDS (ISO 14229), DTCs, and ECU diagnostic services.
    • Integrate software with battery monitoring ICs, sensors, actuators, and vehicle ECUs.
    • Perform debugging and troubleshooting using Vector CANoe/CANalyzer, Lauterbach TRACE32, oscilloscopes, and logic analyzers.
    • Support unit testing, software integration, SIL, HIL, and vehicle-level validation.
    • Perform root-cause analysis and resolve software defects.
    • Follow automotive software development standards, including AUTOSAR Classic, ASPICE, and ISO 26262.
    • Participate in software architecture reviews, code reviews, requirements analysis, and technical documentation.

    Required Qualifications
    • Bachelor's or Master's degree in Electrical Engineering, Electronics, Computer Engineering, Computer Science, or a related field.
    • Strong hands-on programming experience in Embedded C/C++.
    • Experience developing software for automotive embedded controllers or ECUs.
    • Experience with automotive microcontrollers such as:
      • Infineon AURIX
      • NXP S32K/S32G
      • Renesas RH850
      • Similar automotive MCU platforms
    • Strong understanding of real-time embedded systems, interrupts, timers, memory management, ADC, PWM, GPIO, watchdogs, and boot initialization.
    • Hands-on experience with CAN/CAN FD and automotive communication protocols.
    • Knowledge of UDS, DTCs, diagnostic sessions, and ECU diagnostics.
    • Experience with embedded software debugging and automotive network analysis tools.

    Preferred BMS Experience

    Candidates with experience in the following areas will be strongly preferred:

    • Automotive Battery Management Systems (BMS) for EV/HEV/PHEV applications.
    • Lithium-ion battery architectures and battery pack management.
    • Cell voltage, current, and temperature monitoring.
    • SOC, SOH, and SOP algorithms.
    • Cell monitoring and balancing.
    • Contactor and pre-charge control.
    • High-voltage safety and isolation monitoring.
    • Battery thermal protection and management.
    • Over-voltage, under-voltage, over-current, and short-circuit protection.
    • Battery charging/discharging management.
    • BMS diagnostics and fault management.

    Technical Skills & Tools

    Category

    Technologies

    Programming

    Embedded C, C++, Python

    Automotive

    AUTOSAR Classic, UDS, CAN, CAN FD, LIN

    Communication

    SPI, I2C, UART

    Microcontrollers

    Infineon AURIX, NXP S32K/S32G, Renesas RH850

    Debugging Tools

    Lauterbach TRACE32, Vector CANoe, CANalyzer, CANape

    Model-Based Development

    MATLAB, Simulink, Stateflow

    Functional Safety

    ISO 26262, ASPICE, MISRA C/C++

    Testing

    Unit Testing, SIL, HIL, Integration Testing

    Configuration & ALM

    Git, GitLab, Jenkins, Jira, Polarion, IBM DOORS

    Preferred Skills
    • Experience developing safety-critical automotive embedded software.
    • Understanding of ASIL-oriented software development and functional safety concepts.
    • Knowledge of MISRA C/C++ coding guidelines and static code analysis.
    • Experience with MATLAB/Simulink and model-based software development.
    • Knowledge of bootloaders and ECU flashing.
    • Familiarity with automotive ECU cybersecurity.
    • Strong debugging, troubleshooting, and root-cause analysis skills.
    • Ability to work collaboratively with hardware, systems, controls, validation, and functional safety teams.

    Similar Jobs