Position: Embedded Software Engineer
Work Location: Dearborn, MI
Duration: Fulltime/Direct Hire
Job Description & Skill Requirement:
Design and develop embedded software for distributed systems involving multiple microcontrollers
Implement low-level drivers and Board Support Package (BSP) components
Develop real-time Ethernet and communication protocols (UART, SPI, IPC, I2C)
Work on RTOS / bare-metal software development for scalable platforms
Perform integration, debugging, and optimization (CPU, memory, power)
Analyse and resolve low-level system issues across embedded layers
Conduct unit testing, integration testing, and automation using Python scripting
Ensure compliance with MISRA, ASPICE, and ISO26262 standards
Maintain design documentation, traceability, and architecture artifacts
Collaborate with hardware teams, V&V teams, and external vendors
Provide bench-level debugging and HIL validation support
Lead/participate in triaging sessions and release activities
Qualification:
Skills
- C / C++ Programming
- Python Scripting
- Embedded Software Development
- BSP & Device Driver Development
- AUTOSAR (BSW, RTE, SWC, Davinci tools)
- RTOS (FreeRTOS / SafeRTOS)
- Linux / QNX Systems
- UART, SPI, I2C, IPC communication
- CAN / CAN-FD
- Ethernet Drivers
- UDS Protocol (ISO 14229)
- DMA, Multicore & Shared Memory concepts
- Lauterbach Debugging Tool
- GTest, Parasoft (Unit Testing)
- Bazel Build System
- JIRA, JAMA
- Flash / Memory Driver Development
- Wear leveling, Garbage collection, Page swap
- Boot-time & Runtime Optimization
- Low-level debugging across software stack