📍 Dearborn, United States 🇺🇸
Job Description & Skill Requirement:
Key Responsibilities
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:
Bachelor's degree in computer science / Electronics & Communication Engineering
Skills to look for:
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