> Markdown version of [/jobs/ext/3744369-bms-embedded-software-development-engineer](https://www.wearedevelopers.com/jobs/ext/3744369-bms-embedded-software-development-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # BMS Embedded Software Development Engineer - **Company:** Ford Motor Company - **Location:** Dearborn, MI, United States - **Experience:** Expert - **Salary:** $99,600.0 - $192,900.0 - **Contract:** Permanent contract - **Skills:** Board Bringup, Application Programming Interfaces (APIs), Application Layers, Computing Platforms, Unit Testing, Booting (BIOS), Static Program Analysis, Code Review, Communications Protocols, Computer Engineering, Continuous Integration, Software Debugging, Device Drivers, Embedded C, Embedded Software, Hardware Security Module, Hardware-In-The-Loop Simulation, MISRA C (C Programming Language), Non-Volatile Memory, Software Architecture, Real-Time Operating Systems, Software Engineering, Data Logging, Real Time Systems, Information Technology, U-Boot, Software Version Control - **Published:** October 15, 2026 - **Apply:** https://www.indeed.com/viewjob?jk=2049da419221f5e2 ## About the Role * 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 hardware debug + Communication stacks and diagnostic services + Bootloader, flashing, update, and rollback ## Description 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.