Role: Firmware Engineer with strong C++
Location: 100% Remote
Type- Long-Term-Contract
Job Summary
We are seeking a highly skilled Firmware Engineer with strong C/C++ programming expertise and solid experience in the semiconductor domain. The ideal candidate will design, develop, and optimize low-level firmware for embedded systems, SoCs, and hardware platforms, working closely with silicon, hardware, and validation teams throughout the product lifecycle.
Key Responsibilities
Design, develop, and maintain firmware and low-level software using C/C++ for embedded and semiconductor platforms.
Develop firmware for MCUs, SoCs, DSPs, and custom silicon.
Work closely with silicon design, hardware, validation, and systems teams to bring up new hardware platforms.
Perform board bring-up, bootloader development, and device driver development.
Debug complex firmware and hardware issues using JTAG, logic analyzers, oscilloscopes, and debuggers.
Optimize firmware for performance, power, and memory efficiency.
Support silicon validation, post-silicon bring-up, and production issues.
Create and maintain technical documentation, coding standards, and design specifications.
Participate in code reviews and follow best practices for firmware development.
Required Skills & Qualifications
Strong proficiency in C++ for embedded/firmware development.
Hands-on experience in the semiconductor domain (chipsets, SoCs, ASICs, or silicon platforms).
Solid understanding of embedded systems architecture, memory management, and real-time constraints.
Experience with RTOS (FreeRTOS, VxWorks, Zephyr, or similar).
Experience in bootloader, BSP, and device driver development.
Strong debugging skills using hardware and software debugging tools.
Knowledge of ARM architecture or other processor architectures.
Experience with version control systems (Git, Perforce).
Good understanding of hardware–software interaction.
Preferred / Nice-to-Have Skills
Experience with Linux kernel, embedded Linux, or U-Boot.
Knowledge of power management, interrupts, DMA, and peripherals.
Experience in post-silicon validation and factory bring-up.
Familiarity with communication protocols (SPI, I2C, UART, PCIe, USB, Ethernet).
Exposure to automated testing frameworks and CI/CD for firmware.
Experience working in Agile/Scrum environments.
Education
Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, Electronics, or a related field.