← All open roles
Engineering · Neybo · AI companion device for kids

Firmware Application Developer

Own the C++ application layer of Neybo's firmware on embedded Linux — the device state machine, Wi-Fi pairing, OTA, and the UI and rendering layer.

Remote-friendly
Position summary

You will fully own the application layer of Neybo's device firmware, writing C++ user-space code for a Linux-based OS.

The objective is to develop the core application that governs the product's functionality across all usage scenarios: the device's state machine, secure local storage of user data, operating modes such as Wi-Fi/initial device setup, the OTA mechanism, and the factory reset mechanism, as well as the device's normal operation: conversations with UI rendering or interactive content displayed on the screen. All application code must be written in C++ and optimized for tight resource constraints (CPU, GPU, NPU, and RAM). All application logic must be cross-platform to ensure seamless migration across different hardware platforms, including Linux-based computers. The software must be fully compatible with the system layer API of the target device and be built as a single firmware image for the device.

Key responsibilities

Application layer

  • Design and implement the device's state machine: operating modes such as Wi-Fi pairing, conversation, and error or recovery, with explicit transitions and timeout handling
  • Build the UI and rendering layer in C++, keeping product logic separate from platform-specific code so it ports directly to the target device
  • Get the application running end to end on a laptop or tablet under Linux, ahead of real hardware being available
  • Implement the Wi-Fi onboarding and pairing flow as part of the state machine, integrated with the device's network stack
  • Implement the OTA mechanism
  • Implement the factory reset mechanism
  • Integrate third-party components (wake-word recognizer, voice quality enhancement, etc.)
  • Implement telemetry and crash reporting to the backend
  • Support the device security audit
  • Support QA regression testing and system benchmarking procedures (display performance indicators, etc.)

Designing for the target device and the system layer

  • Design within the memory and performance constraints of the final embedded target from the start
  • Prototype the early application versions on a Linux computer
  • Coordinate interfaces with the Firmware Lead Engineer so the application and system layers combine cleanly into a single firmware image
Required qualifications
  • 4+ years of commercial C++ development
  • Modern C++ in production: object lifetime, RAII, STL, threading and concurrency, error handling
  • User-space application development on Linux or POSIX
  • Event-driven or state machine design: explicit states and transitions, event loops, timeout and recovery handling
  • Experience building a GUI or application-layer UI; Qt/QML is the clearest signal, but other C++ UI stacks count
  • Platform-independent code: separating product logic from platform adapters, including experience running part of a product on desktop or x86 ahead of target hardware
  • Practical TCP/IP and Wi-Fi onboarding or provisioning experience, for example NetworkManager/D-Bus, wpa_supplicant, or a SoftAP/captive portal flow
  • English B2+, written and spoken
Preferred qualifications
  • Qt 5/6, QML/Qt Quick, Qt State Machine, or SCXML
  • ARM cross-compilation and integration experience with Yocto or Buildroot
  • D-Bus, systemd, hostapd, mDNS/DNS/DHCP beyond a basic Wi-Fi pairing flow
  • AOSP/Android TV or JNI/NDK experience
  • OTA, rollback, crash dumps, or remote diagnostics on a device in the field
  • A consumer device you helped ship into production
Technology stack
  • C++ on Linux/POSIX user-space
  • Qt/QML or a comparable C++ UI stack
  • TCP/IP and Wi-Fi provisioning stack: NetworkManager/D-Bus, wpa_supplicant, or equivalent
Success metrics
  • Application running end to end on a laptop or tablet under Linux, ahead of real hardware
  • State machine covering core operating modes, including Wi-Fi pairing and conversation mode, implemented and stable
  • Code that moves onto the embedded target directly, once hardware is ready