Job Role: Embedded Firmware Engineer – Automotive
Experience: 3 to 8 Years
Location: Bangalore
Key Responsibilities
- Design, develop, test, and optimize production firmware for automotive ECUs based on 32-bit microcontrollers.
- Develop low-level embedded firmware in C/C++ within an RTOS environment.
- Work with ARM Cortex-M microcontrollers and automotive processors such as NXP S32G/S32K.
- Develop firmware for CAN, SPI, UART, and I2C interfaces.
- Implement and debug CAN and Ethernet communication, including error detection, CRC monitoring, logging, and fault reporting.
- Develop diagnostic and self-test functionality including POST, BIST, power-up sequencing, and controlled shutdown/sleep sequences.
- Implement fault detection, Diagnostic Trouble Codes (DTCs), safe-state handling, and reduced-function modes.
- Develop CPU, communication, and memory load-generation functions for firmware validation and system characterization.
- Develop and support unit, integration, and system-level test frameworks and validation harnesses.
- Perform hardware-level debugging using oscilloscopes, multimeters, power supplies, and other bench equipment.
- Collaborate with hardware, software, mechanical, and test engineering teams from bring-up through deployment.
- Apply automotive functional safety and security principles throughout firmware design and development.
Technical Skills
- 3+ years of hands-on embedded firmware development experience.
- Strong programming skills in C/C++ for resource-constrained and real-time systems.
- Strong experience with 32-bit ARM Cortex-M microcontrollers.
- Hands-on experience with FreeRTOS or similar RTOS.
- Strong knowledge of CAN, SPI, UART, and I2C.
- Understanding of TCP/UDP and UDS diagnostics.
- Experience with Embedded Linux Kernel Programming is an added technical advantage.
- Working knowledge of Python for automation, tooling, and testing.