Firmware Engineer - Job Description (JD)Job TitleFirmware EngineerJob SummaryWe are seeking a talented
Firmware Engineer to design, develop, test, and maintain embedded firmware for microcontrollers, processors, and hardware devices. The ideal candidate should have strong expertise in embedded C/C++, RTOS, device drivers, communication protocols, debugging tools, and hardware-software integration. The role involves developing reliable, high-performance firmware for embedded systems used in IoT, automotive, medical devices, consumer electronics, and industrial automation.
Key Responsibilities- Design, develop, and maintain embedded firmware for hardware devices.
- Develop firmware for microcontrollers (MCUs), SoCs, and embedded processors.
- Write efficient, reliable, and maintainable code in C/C++.
- Develop and integrate device drivers and hardware abstraction layers (HAL).
- Implement communication protocols such as UART, SPI, I2C, CAN, USB, and Ethernet.
- Debug firmware using oscilloscopes, logic analyzers, and JTAG/SWD debuggers.
- Optimize firmware for memory, power consumption, and performance.
- Collaborate with hardware, software, QA, and manufacturing teams.
- Perform unit testing, integration testing, and hardware validation.
- Maintain technical documentation and firmware release notes.
- Participate in code reviews and design discussions.
Required SkillsEmbedded Programming- Embedded C
- Embedded C++
- Assembly Language (Basic)
- Object-Oriented Programming (OOP)
- Memory Management
- Interrupt Handling
- Bootloaders
- Linker Scripts
Embedded Systems- Microcontrollers (MCUs)
- Microprocessors (MPUs)
- System-on-Chip (SoC)
- Embedded Linux
- Bare Metal Programming
- Real-Time Embedded Systems
RTOS (Real-Time Operating Systems)- FreeRTOS
- Zephyr RTOS
- ThreadX
- VxWorks
- QNX
- Embedded Linux RT
MicrocontrollersExperience with one or more:
- STM32
- NXP LPC
- Texas Instruments MSP430
- PIC Microcontrollers
- AVR
- ESP32
- Nordic nRF52
- Renesas
- Infineon
- ARM Cortex-M Series
Communication Protocols- UART
- SPI
- I2C
- CAN
- CAN FD
- LIN
- USB
- Ethernet
- Modbus
- RS-232
- RS-485
- BLE
- Wi-Fi
- Zigbee
- MQTT
Device Drivers- GPIO
- Timers
- PWM
- Client
- DAC
- DMA
- RTC
- Watchdog Timers
- Flash Memory
- EEPROM
Hardware Knowledge- Digital Electronics
- Analog Electronics
- PCB Basics
- Schematics Reading
- Signal Processing
- Sensors & Actuators
- Power Management
Debugging Tools- JTAG
- SWD
- GDB
- OpenOCD
- Oscilloscope
- Logic Analyzer
- Multimeter
- Segger J-Link
- ST-Link
Development Tools- Keil MDK
- IAR Embedded Workbench
- STM32CubeIDE
- MPLAB X
- Eclipse
- VS Code
- CMake
- Makefiles
Version Control & CI/CD- Git
- GitHub
- GitLab
- Jenkins
- Azure DevOps
Testing- Unit Testing
- Integration Testing
- Hardware-in-the-Loop (HIL)
- Firmware Validation
- Regression Testing