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.
Battery Management Embedded Software Engineer About the Job At Ford, we are the movers of the world and the makers of the future. We get up every day, roll up our sleeves, and build a better world - together. Our advanced energy team is a dynamic division dedicated to powering the future through advanced electric vehicle (EV) battery systems and related electrified energy solutions. As we scale these advanced electrification initiatives, we are seeking technically strong engineers who can help establish the foundation for our product execution, safety strategy, and vehicle readiness.
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.
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.