About this role
ESSENTIAL DUTIES AND RESPONSIBILITIES:
- Develop drivers, hardware abstraction, and I/O handling for BMS functions such as cell monitoring/balancing, contactor control, isolation detection, and metrology (current, voltage, temperature)
- Design and implement software from platform/base layers (bootloader, diagnostics, communication stacks) through application-level control logic, applying layered architecture to keep code portable, testable, and maintainable
- Verify and validate software through structured testing across functional behavior, performance, robustness, safety, compliance, and security
- Follow defined lifecycle processes and maintain traceability between engineering phases and artifacts to ensure quality and compliance
- Establish and maintain comprehensive documentation of software implementation
- Collaborate with internal stakeholders and customers to execute ONE's BMS strategy
- Root-cause and resolve issues, driving continuous refinement
- Build subject-matter expertise in BMS topics and contribute to technical reviews
- Work within an agile, DevOps-oriented team focused on continuous delivery and improvement
- Perform other duties as assigned by management
QUALIFICATIONS:
- B.S. in Electrical, Computer, or Aerospace Engineering, Software Engineering, Computer Science, or a related field, plus relevant technical experience (M.S. preferred)
- In-depth embedded software experience for automotive or industrial applications, spanning driver-level to application-level software
- Proficient in C programming of embedded systems
- Experience with communication protocols such as CAN, Ethernet, Modbus, SPI, and I2C
- Experience with battery management algorithms (SOC/SOH estimation, cell balancing, charge/discharge control, contactor sequencing, isolation/ground-fault detection, and precision current/voltage metrology) is a strong differentiator
- Experience with automotive/industrial microcontrollers such as Infineon AURIX (TriCore) or NXP-based devices preferred
- Hands-on experience debugging embedded software running on target hardware using oscilloscopes, logic analyzers, in-circuit debuggers/emulators, and CAN instrumentation, measurement, and calibration equipment
- Experience translating requirements into algorithm design and production-grade software, including software verification and validation
- Experience with static analysis and code-quality tooling to enforce safe, portable embedded coding practices (e.g., MISRA-C compliance checking)
- Experience with software development processes and tools, including lifecycle/change management systems
- Familiar with source and configuration management systems (e.g., version control) and CI/CD pipelines for embedded software
- Preferred: experience developing embedded controls compliant with ISO 26262, IEC 61508, and/or ISO 60730 standards
- Familiarity with diagnostic software concepts such as fault management and UDS/ISO-TP
- Skilled at troubleshooting embedded functional and diagnostic issues in vehicle applications, driving solutions and validating corrective/preventive actions
