# BMS Embedded Software Development Engineer

**Company**: Ford Motor Company
**Location**: Dearborn, MI
**Work arrangement**: hybrid
**Experience**: senior
**Job type**: full-time
**Salary**: $99,600-$166,600 or $115,000-$192,900
**Category**: Engineering
**Industry**: Automotive
**Wikidata**: https://www.wikidata.org/wiki/Q44294

**Apply**: https://efds.fa.em5.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1/job/72570?utm_source=yubhub.co&utm_medium=jobs_feed&utm_campaign=apply
**Canonical**: https://yubhub.co/jobs/job_4a838421-c87

## Description

In this position, you will own 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.

## Responsibilities

- 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.

## Qualifications

- 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

## Benefits

- Immediate medical, dental, vision and prescription drug coverage

- Flexible family care days, paid parental leave, new parent ramp-up programs, subsidized back-up child care and more

- Family building benefits including adoption and surrogacy expense reimbursement, fertility treatments, and more

- Vehicle discount program for employees and family members and management leases

- Tuition assistance

- Established and active employee resource groups

- Paid time off for individual and team community service

- A generous schedule of paid holidays, including the week between Christmas and New Year’s Day

- Paid time off and the option to purchase additional vacation time.

## Skills

### Required
- 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
- Secure boot, secure flashing, and key handling
- Non-volatile storage and data logging
- Build environment, static analysis, and continuous integration
- Base software to application interface definition
- Timing analysis and runtime measurement

### Nice to 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

---

Source: [Apply at efds.fa.em5.oraclecloud.com](https://efds.fa.em5.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1/job/72570?utm_source=yubhub.co&utm_medium=jobs_feed&utm_campaign=apply)
