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
Pay: Up to $80,000.00 per year
Work Location: In person