Senior Engineer

Our Next EnergyNovi, MichiganOn-siteFull-timeSenior, 5–8 yearsListed 1 day ago

Apply now

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