Job Description
<p><p><b>Description : </b><br/><br/></p><p>We are seeking a highly skilled Embedded Software Engineer with extensive experience in low-level embedded systems development, including device drivers, Board Support Packages (BSP), and hardware bring-up.
The ideal candidate will be proficient in C/C++, with deep knowledge of embedded architectures and peripheral interfaces for modern SoCs.<br/><br/><b>Must Skill : </b>C/C++, Linux/RTOS, BSP/Device driver/Bootloader/HAL<br/><br/><b>Key Responsibilities : </b><br/><br/></p><p>- Design, develop, and debug low-level embedded software components, including device drivers, BSPs, and bootloaders.<br/><br/></p><p>- Perform board bring-up activities for custom hardware platforms based on ARM (64-bit), Intel, or PowerPC architectures.<br/><br/></p><p>- Work closely with hardware teams to integrate software with processor, memory, and peripheral components.<br/><br/></p><p>- Develop and maintain software interfaces for peripherals, controllers, and system services on complex SoCs.<br/><br/></p><p>- Create and optimize Hardware Abstraction Layers (HAL) to enable platform portability.<br/><br/></p><p>- Debug hardware/software integration issues using oscilloscopes, logic analyzers, JTAG, and software tools (GDB, etc.).<br/><br/></p><p>- Program and interface with embedded peripherals such as UART, SPI, I2C, Timers, MMU, Interrupts, DMA, PWM, ADC/DAC, EEPROM, Watchdog, RTC, and more.<br/><br/></p><p>- Understand and work with processor-level components such as PIC, GIC, and various on-chip bus architectures (Nexus Bus, Simple Bus, Memory Controllers, etc.).<br/><br/></p><p>- Contribute to the architecture and design of embedded platforms, ensuring scalability, maintainability, and performance.<br/><br/></p><p>- Collaborate in cross-functional teams, including hardware, firmware, and systems engineers.<br/><br/>- Document system design, coding standards, and best practices.<br/><br/><b>Required Qualifications & Skills : </b><br/><br/></p><p>- B.Tech / M.Tech in Computer Science, Electrical/Computer Engineering, or a related technical field.<br/><br/></p><p>- 5-8 years of experience in embedded systems development, especially low-level software components.<br/><br/></p><p>- Strong hands-on experience in C/C++ for embedded systems.<br/><br/></p><p>- Deep understanding of embedded system architecture, including CPU, MMU, cache, interrupts, and buses.<br/><br/></p><p>- Practical knowledge of ARM 64-bit or Intel architectures with experience in assembly programming.<br/><br/></p><p>- Strong experience in working with device drivers, bootloaders, and Board Support Packages.<br/><br/></p><p>- Proficient in debugging low-level software and troubleshooting system issues with hardware-level tools.<br/><br/></p><p>- Familiarity with embedded hypervisors and virtualization mechanisms.<br/><br/></p><p>- Experience working with embedded peripherals and controllers.<br/><br/></p><p>- Understanding of SoC internals and board-level hardware design aspects.<br/><br/><b>Nice to Have (Preferred) : </b><br/><br/></p><p>- Experience with any RTOS (e.g., QNX, VxWorks, FreeRTOS, Embedded Linux).<br/><br/></p><p>- Exposure to secure boot, bootloaders, and trusted execution environments.<br/><br/></p><p>- Familiarity with version control systems (e.g., Git) and continuous integration practices.<br/><br/></p><p>- Knowledge of industry-standard safety/security standards (e.g., ISO 26262, ASIL, MISRA).<br/></p><br/></p> (ref:hirist.tech)