Embedded Software Engineer
The ideal candidate will be responsible for developing high-quality applications. They will also be responsible for designing and implementing testable and scalable code.JOB DESCRIPTIONJob 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 activitiesSkills: C / C++ ProgrammingPython ScriptingEmbedded Software DevelopmentBSP & Device Driver DevelopmentAUTOSAR (BSW, RTE, SWC, Davinci tools)RTOS (FreeRTOS / SafeRTOS)Linux / QNX SystemsUART, SPI, I2C, IPC communicationCAN / CAN-FDEthernet DriversUDS Protocol (ISO 14229)DMA, Multicore & Shared Memory conceptsLauterbach Debugging ToolGTest, Parasoft (Unit Testing)Bazel Build SystemJIRA, JAMAFlash / Memory Driver DevelopmentWear leveling, Garbage collection, Page swapBoot-time & Runtime OptimizationLow-level debugging across software stackQualificationsBachelor's degree or equivalent experience in Computer Science or related fieldDevelopment experience with programming languages