Back to search:Firmware Engineer / Jakarta

Responsibilities:

  • Design, develop, and maintain bare-metal firmware (mainly C++) for ESP32 and STM32-based telematics devices (not limited to other platforms).
  • Implement UART/SPI/I2C drivers/peripherals, timers, GPIO, ADC/DAC, storage (Flash/FRAM), and power management.
  • Integrating CAN/CAN-FD (J1939/OBD-II level implementation) including filters, frame parsing, and fault handling.
  • Integration of GNSS, 4G/LTE, NB-IoT, Wi-Fi, BLE, and Orbcomm ST9100 satellite connectivity via AT commands and/or TCP/UDP sockets, with TLS-layered MQTT/HTTP protocols.
  • Build network-disconnect-resistant data logging & buffering modules, including timestamp synchronization and retry/persistence policies.
  • Develop bootloaders, secure OTA/DFU (delta/rollback), and diagnostics mechanisms (self-test, health metrics, crash dump).
  • Write firmware architecture specs/diagrams, sequence diagrams, and API/protocol documentation. Develop test plans and run unit/integration tests; prepare utility scripts (e.g., Python) for simulation/provisioning.
  • Collaborate closely with Embedded Hardware Engineers & Mechanical Engineers for DFM/DFT, and coordinate with QA/Backend teams for data integration.

Qualifications:

  • 2-4 years of experience in embedded firmware, focusing on telematics/automotive devices or similar domains.
  • Proficient in C/C++ for bare-metal; understands memory concepts, interrupts, concurrency without RTOS, and performance optimization.
  • Strong experience with ESP32 (ESP-IDF) and/or STM32 (HAL/LL/CMSIS).
  • CAN/CAN-FD practices: filter configuration, frame parsing, error handling; familiar with J1939/OBD-II at the implementation level.
  • Connectivity integration: GNSS, LTE/NB-IoT/Wi-Fi/BLE, satellite (Orbcomm ST9100) via AT command, sockets (MQTT/HTTP, TLS/certificate handling).
  • Mastery of UART/SPI/I2C peripherals, timer/RTC, watchdog, non-volatile storage, and power management.
  • ⁠Experience with bootloader & OTA/DFU (rollback, versioning, integrity check).
  • ⁠Hardware debugging skills: oscilloscope, logic analyzer, CAN analyzer, J-Link/ST-Link.
  • ⁠Quality mindset: unit/integration testing, static analysis, code review, Git workflow; comfortable with YouTrack or similar.