Open Roles /
Senior Embedded Firmware Engineer
Romania/Poland/Romania/Brazil
•
Engineering
Own your future
Our culture isn’t something people join, it’s something they build and shape. We believe that every person deserves to be heard and empowered. If you’re on the fence about whether you’re a fit, we say go for it. Let’s build something great together.
Must-Haves
- 5-10 years of professional embedded firmware development experience on shipping products.
- Expert-level C and expert-level embedded Linux – userspace and kernel-adjacent work, not application-only Linux development.
- Hands-on Yocto Project experience: writing and debugging recipes and layers, BSP integration, and performing release-to-release upgrades on a real product (not only consuming a vendor image).
- Proficiency developing on a resource-constrained MCU under a real-time operating system – threads and scheduling, synchronization, interrupt latency, and memory and stack budgeting.
- Strong low-level hardware skills: bring-up, bare-metal and driver-level debugging, JTAG/SWD, peripheral buses, interrupts, DMA, and memory/power constraints.
- Practical experience with Wi-Fi and Bluetooth Low Energy on embedded devices, including debugging real-world connectivity failures.
- Familiarity with OTA update mechanisms and general networking principles (TCP/IP, TLS, MQTT or a similar device-to-cloud protocol), mender, memfault.
- Solid understanding of electronics and the ability to read schematics and work independently with hardware engineers.
- Working knowledge of Go and Python — enough to read, debug, and modify existing services and tooling.
- Comfortable with Git-based workflows, code review, CI, and issue tracking (Jira/Confluence), and able to write clearly for an async, distributed team.
Nice to Have
- Experience with Zephyr RTOS.
- Experience porting an embedded product from Yocto Linux to Zephyr.
- Smart home or consumer IoT product experience.
- C++ (modern C++17 or newer) for embedded targets.
- Experience porting Go or Python services to C or C++ on constrained targets.
- Low-power design and battery-life optimization; measured power profiling rather than estimates.
- Device security: secure boot, signed images, key/credential handling, and coordinated vulnerability response.
- Working with on-device ML inference or signal-processing pipelines in C.
- Experience with device observability platforms (for example Memfault) for crash and metric analysis.
- Hardware-in-the-loop or automated on-target test rig experience.
- Matter, Thread, Zigbee, or other smart-home connectivity standards.
- Contributions to Yocto or other upstream embedded open-source projects.
Key Responsibilities
- Triage, reproduce, root-cause, and fix defects in production embedded Linux firmware, including issues reported from the field and from device telemetry / crash reporting.
- Own Yocto maintenance: upgrade to newer Yocto LTS releases, maintain custom layers, recipes, and bbappend files, resolve upstream and BSP breakage, and keep the kernel, bootloader, and third-party components patched.
- Maintain and improve the build, image, and release pipeline (reproducible builds, CI integration, SDK/SSTATE hygiene, image size and boot-time budgets).
- Maintain and harden OTA update flows: A/B or dual-bank update logic, rollback and recovery paths, update-failure telemetry, and signing / secure boot considerations.
- Debug and stabilize Wi-Fi and Bluetooth Low Energy connectivity, provisioning, and cloud-connection behavior on constrained devices.
- Work at the driver and board-support level: device tree, GPIO/I2C/SPI/UART, sensor and valve/actuator interfaces, power and reset behavior.
- Define and document software requirements, and work directly with hardware, cloud, QA, and product engineers so firmware and hardware integrate cleanly.
- Write and maintain unit, integration, and on-target tests; use lab equipment (oscilloscope, logic analyzer, power analyzer, protocol sniffers) to verify behavior rather than infer it.
- Leave the codebase and the team better than you found them: clear commit history, useful code review, and documentation the in-house team can pick up when the engagement ends.
Romania/Poland/Romania/Brazil
•
Engineering