Job Description
<p><p><b>About the Opportunity : <br/></b><br/>We are seeking a highly skilled Embedded / Firmware Engineer with deep expertise in C/C++ programming, microcontrollers, and real-time operating systems (RTOS).<br/><br/>The ideal candidate will be responsible for designing, developing, testing, and optimizing embedded software for performance-critical and hardware-integrated systems.<br/><br/>This role demands a strong understanding of hardware-software integration, low-level driver development, and embedded communication protocols.<br/><br/>You will work closely with hardware engineers, product teams, and system architects to deliver reliable and efficient embedded solutions for next-generation Responsibilities : </b></p><br/>- Design and develop firmware and embedded software for microcontrollers, processors, and SoC-based systems.<br/><br/>- Write, optimize, and debug code in C/C++ for real-time and resource-constrained environments.<br/><br/>- Integrate and customize RTOS components (FreeRTOS, ThreadX, VxWorks, or similar).<br/><br/>- Develop and maintain device drivers, peripheral interfaces, and communication stacks (UART, SPI, I2C, CAN, Ethernet).<br/><br/>- Work with hardware design teams to validate and bring up new boards, ensuring seamless hardware-software integration.<br/><br/>- Conduct unit testing, hardware validation, and debugging using oscilloscopes, logic analyzers, and protocol analyzers.<br/><br/>- Implement and verify bootloaders, firmware update mechanisms, and power management modules.<br/><br/>- Collaborate with system architects to ensure scalability, reliability, and performance optimization.<br/><br/>- Participate in code reviews, design documentation, and process improvement activities.<br/><br/>- Maintain compliance with industry standards such as MISRA C, ISO 26262, or DO-178C (depending on domain).<br/><br/><b>Required Skills and Qualifications : </b><br/><br/>- 410 years of hands-on experience in embedded software or firmware development.<br/><br/>- Strong proficiency in C/C++, data structures, and low-level system programming.<br/><br/>- Experience working with microcontrollers (ARM Cortex, PIC, STM32, NXP, TI) and peripheral interfaces.<br/><br/>- Solid understanding of RTOS concepts, multitasking, and interrupt-driven design.<br/><br/>- Experience in driver development, board bring-up, and hardware debugging.<br/><br/>- Familiarity with embedded communication protocols (SPI, I2C, CAN, UART, USB, TCP/IP).<br/><br/>- Exposure to embedded development tools (Keil, IAR, GCC, JTAG, GDB, etc.<br/><br/>- Proficiency in version control systems (Git) and issue tracking tools (JIRA).<br/><br/>- Good knowledge of schematic interpretation, hardware testing, and signal-level analysis.<br/><br/>- Strong analytical and problem-solving skills, with attention to detail.<br/><br/>- Bachelors or Masters degree in Electronics, Electrical, or Computer Engineering.<br/><br/><b>Preferred Skills : </b><br/><br/>- Experience in IoT, industrial automation, automotive, or consumer electronics domains.<br/><br/>- Familiarity with wireless protocols (BLE, Wi-Fi, ZigBee, LoRa, NFC).<br/><br/>- Hands-on experience with Linux kernel or device driver development.<br/><br/>- Exposure to embedded security, encryption, and OTA update mechanisms.<br/><br/>- Experience in test automation frameworks for embedded systems.<br/><br/>- Knowledge of Agile development practices and CI/CD pipelines for firmware</p><br/></p> (ref:hirist.tech)