Senior Embedded Software Engineer

OUR1002ONXE

Novi, MI, United States3w ago

Free account needed to apply or save. It takes a minute, and we'll bring you right back to this job.

Key details

Location
Novi, MI, United States
Work style
Onsite
Level
Senior
Job type
Full-time
Function
Software engineering
Focus area
Embedded / Firmware
Posted
3w ago

Skills

agilealgorithmscalibrationchange managementci/cdconfiguration managementdebuggingembedded softwareembedded systemsetherneti2cmetrologymicrocontrollersmodbusoscilloscopesroot cause analysistroubleshootingversion control

About the 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

Get jobs like this as soon as they're posted

JobSuited checks company career sites all day and ranks every opening against your profile. Free to join.

Create a free account