BMS Embedded Software Development Engineer at Ford® in Dearborn, MI

  • Company: Ford®
  • Location: Dearborn, MI, United States
  • Salary: $100K – $193K
  • Job type: full time
  • Workplace: hybrid
  • Posted: 2026-10-13

Apply for this role

All open roles at Ford®

Job description

In this position... The Battery Management Embedded Software Engineer owns the base software platform beneath the application layer for high-voltage battery management controllers — the real-time operating system, hardware abstraction, drivers, communication stacks, software update mechanism, and security foundation. Assignments may include string-level or system-level battery management controllers and may shift across the product architecture over the life of the program. The ideal candidate has brought up embedded hardware from first power-on, written drivers from datasheets, integrated and hardened communication stacks, and owned a production software update path. What you'll do... Own board bring-up and hardware abstraction: clocks, memory, timers, interrupts, watchdog, and system basis chip integration. Configure and maintain the real-time operating system and scheduling architecture; own task partitioning, timing budgets, and runtime monitoring. Develop and integrate device drivers for cell monitoring front-end devices, voltage and current measurement, isolation monitoring interfaces, analog and digital I/O, high-side drivers, discrete inputs and outputs, and non-volatile storage. Own communication stacks and services, including automotive serial networks and diagnostic services. Own the bootloader and the software flashing, update, and rollback mechanism, including update across multiple controllers. Implement secure boot, secure flashing, secure debug access, signed image verification, and hardware security module key handling, in partnership with cybersecurity engineering. Own persistent data logging and event storage, including storage media management, retention, and retrieval. Own the embedded build environment, static analysis, unit test framework, and continuous integration pipeline. Integrate application, controls, and algorithm software onto the platform; support application engineers with debug, tracing, and runtime measurement. Define and document the base-software-to-application interface so application development can proceed independently of the platform. Support supplier software assessment and technical transfer. Debug at the hardware level with oscilloscopes, logic and protocol analyzers, and on-chip debuggers. You'll have... Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, or a related field. 5+ years developing embedded software in C for resource-constrained real-time systems. Strong microcontroller architecture fundamentals: memory maps, interrupts, DMA, timing, and determinism. Production experience with a real-time operating system or equivalent scheduling framework. Driver development from datasheets and hands-on hardware debug experience. Communication protocol implementation experience including CAN or CAN FD. Bootloader, flashing, or software update implementation experience. Version control, code review, and continuous integration discipline. Strong written and verbal communication skills. Ability and willingness to travel occasionally Even better, you may have... Master's degree in Computer Engineering, Electrical Engineering, or Computer Science. Battery management, high-voltage, or safety-relevant control unit software experience. Layered automotive base software architecture experience. Experience interfacing to cell monitoring front-end devices over isolated serial or CAN-based interfaces. Secure boot, secure flashing, hardware security module, or cryptographic library integration. Software development under functional safety and cybersecurity process requirements. Familiarity with industrial communication protocol stacks in addition to automotive networks. MISRA C compliance and static analysis toolchains. Continuous integration and hardware-in-the-loop automation for embedded targets. Technical Skills Embedded C for real-time systems Real-time operating system configuration and scheduling Hardware abstraction and driver development Board bring-up and

BMS Embedded Software Development Engineer on JobPost.