Summary
OVA.Work is seeking a Firmware Engineer to design, develop, test, and maintain embedded firmware for hardware products. The role focuses on microcontroller programming, device drivers, communication protocols, debugging, hardware-software integration, testing, optimization, documentation, and firmware release support.
Responsibilities
- Design and develop embedded firmware for microcontrollers and hardware devices
- Develop efficient and reliable firmware using **C/C++**
- Work with microcontrollers such as **ARM Cortex-M, STM32, PIC, AVR, or similar platforms**
- Develop and integrate device drivers, peripherals, and communication protocols
- Work with interfaces such as **UART, SPI, I2C, CAN, USB, Ethernet, and GPIO**
- Perform firmware debugging, testing, and troubleshooting
- Use oscilloscopes, logic analyzers, debuggers, and other hardware tools for issue analysis
- Collaborate with hardware, software, QA, and systems engineering teams
- Participate in code reviews and follow coding and documentation standards
- Optimize firmware for memory usage, performance, power consumption, and reliability
- Investigate and resolve firmware defects and hardware-software integration issues
- Develop unit tests and support system-level validation
- Maintain technical documentation, design specifications, and release notes
- Support firmware releases, upgrades, and production troubleshooting
Skills
- Strong programming experience in Embedded C/C++
- Good understanding of microcontrollers and embedded systems
- Experience with RTOS such as FreeRTOS, Zephyr, or similar
- Knowledge of embedded communication protocols:
- UART
- SPI
- I2C
- CAN
- USB
- Ethernet
- Experience with debugging tools such as JTAG/SWD
- Familiarity with Git and version-control systems
- Understanding of memory management, interrupts, timers, DMA, and low-level hardware programming
- Good knowledge of firmware development and debugging lifecycle
- Strong problem-solving and analytical skills
- Bachelor's or Master's degree in Electrical Engineering, Electronics & Communication Engineering, Computer Engineering, Embedded Systems, or a related field
- Experience with ARM Cortex-M architecture
- Experience with STM32, ESP32, NXP, TI, or similar platforms
- Knowledge of bootloaders and OTA firmware updates
- Experience with embedded Linux
- Knowledge of device security, secure boot, encryption, or firmware signing
- Experience with hardware bring-up and board-level debugging
- Familiarity with Python for test automation
- Experience with CI/CD for embedded firmware
- Knowledge of automotive protocols such as CAN, LIN, or AUTOSAR is a plus
Qualifications
Must Haves
- Strong programming experience in Embedded C/C++
- Good understanding of microcontrollers and embedded systems
- Experience with RTOS such as FreeRTOS, Zephyr, or similar
- Knowledge of embedded communication protocols:
- UART
- SPI
- I2C
- CAN
- USB
- Ethernet
- Experience with debugging tools such as JTAG/SWD
- Familiarity with Git and version-control systems
- Understanding of memory management, interrupts, timers, DMA, and low-level hardware programming
- Good knowledge of firmware development and debugging lifecycle
- Strong problem-solving and analytical skills
- Bachelor's or Master's degree in Electrical Engineering, Electronics & Communication Engineering, Computer Engineering, Embedded Systems, or a related field
Nice to Haves
- Experience with ARM Cortex-M architecture
- Experience with STM32, ESP32, NXP, TI, or similar platforms
- Knowledge of bootloaders and OTA firmware updates
- Experience with embedded Linux
- Knowledge of device security, secure boot, encryption, or firmware signing
- Experience with hardware bring-up and board-level debugging
- Familiarity with Python for test automation
- Experience with CI/CD for embedded firmware
- Knowledge of automotive protocols such as CAN, LIN, or AUTOSAR is a plus
Benefits
- Remote and onsite work model