Job for Experts
Firmware Engineer
About the Role
You will design, develop, test, and optimize firmware for microcontrollers, embedded systems, and IoT devices. You will write, debug, and validate firmware in C, C++, and Python, implement multitasking/multithreaded solutions (FreeRTOS), integrate with hardware interfaces (I2C, SPI, UART, JTAG), perform board-level debugging, verify firmware updates, and produce technical documentation.
Requirements
- 5+ years of firmware development experience
- Proficiency in C
- Proficiency in C++
- Experience with Python for firmware tooling or scripting
- Familiarity with FreeRTOS in a multitasking environment
- Experience with ESP32 IDF
- Experience with ARM-based MCUs
- Experience with LVGL
- Experience with I2C SPI UART and JTAG communication protocols
- Experience designing implementing and testing finite-state machines
- Board-level hardware debugging experience
- Familiarity with Git flow
- Familiarity with code coverage and static analysis tools (preferred)
- Experience with unit testing in C preferably for MCU development (preferred)
- Experience writing and using test scripts (preferred)
- Understanding of public-key cryptography including ECDSA (preferred)
- Experience designing and testing secure embedded systems (preferred)
- Familiarity with WiFi BLE Serial and MQTT protocols (preferred)
Responsibilities
- Design firmware for electronic devices including microcontrollers and embedded systems
- Develop and test firmware code in C C++ and Python
- Implement and maintain multi-threaded and multitasking applications
- Verify and validate firmware updates and upgrades
- Identify troubleshoot and fix firmware issues to improve performance
- Collaborate with hardware and software engineers to ensure compatibility
- Integrate firmware with other software and systems
- Provide technical support and guidance to production and assembly teams
- Prepare firmware design documents and user manuals
- Continuously improve and optimize firmware for performance and reliability
- Perform board-level hardware debugging
- Test and integrate firmware with hardware peripherals and communication protocols
Skills
MicrocontrollerEmbedded SystemWi-FiEmbedded LinuxArmI2cSpiBleSerialMqttPublic-Key CryptographyUartElectronicsArm Cortex-MLvglJtagEcdsaState MachineCode CoverageMultitaskingUnit TestingIotGitPythonFreertosEsp32 IdfMcuFinite-State MachineBoard-Level DebuggingHardware DebuggingWifiSecure Embedded SystemC#Static AnalysisMultithreading
