Key Responsibilities:
- Design, develop, debug, and optimize embedded firmware for microcontroller-based systems.
- Develop device drivers and low-level firmware.
- Interface with hardware peripherals such as GPIO, UART, SPI, I2C, CAN, USB, and Ethernet.
- Work closely with hardware engineers to integrate firmware with electronic circuits.
- Perform firmware debugging, testing, and validation.
- Optimize code for performance, memory usage, and power consumption.
- Participate in code reviews and maintain technical documentation.
- Troubleshoot and resolve firmware-related issues during development and production.
Required Skills:
- Solid programming skills in
Embedded C/C++
.
- Experience with
ARM Cortex, STM32, PIC, AVR, ESP32
, or similar microcontrollers.
- Knowledge of
RTOS (FreeRTOS preferred)
.
- Experience with communication protocols:
- UART
- SPI
- I2C
- CAN
- USB
- Ethernet
- Familiarity with debugging tools such as
JTAG, ST-Link, Oscilloscope, and Logic Analyzer
.
- Understanding of embedded system architecture and hardware design.
- Knowledge of version control tools like
Git
.
- Strong analytical and problem-solving skills.