Embedded Linux Engineer
Listed on 2026-11-05
-
Software Development
Embedded Systems/ Firmware/ IoT, Embedded Software Engineer, Unix/Linux, C++ Developer
If you're an Embedded / Firmware Engineer who is just as comfortable on a Linux board as on a microcontroller, and you know that a boot hang or a flaky BLE connection is rarely "just a software bug," we'd love to talk. We're looking for a freelancer with a strong embedded foundation: C/C++, hardware-aware debugging, and real embedded Linux experience (Yocto or Buildroot, U-Boot, kernel, device tree, drivers).
The role is not tied to one platform: depending on the project, you might work on a Cortex-A SoC, a Raspberry Pi-class board, or a Cortex-M microcontroller next to it. You'd join us on a freelance, time & material basis: you're paid for the hours you actually work on real client projects. We're ready to start right away. The first three months are about getting to know each other, and if it works, we'd love to bring you into our core team with a fixed salary and the full benefits package.
Not a promise, a real possibility we actively root for. We've been designing and co-creating connected devices since 2008. Wearables, smart audio, health-tech hardware, and IoT products for clients like Oura, BOSE, Neurable, and McIntosh. We're a 60+ person, fully remote team that works at the intersection of physical and digital products. At intent, firmware is not treated as an isolated layer.
It sits right in the middle of hardware, mobile, cloud, QA, and product decisions. That means you'll work with people who care about what actually happens on the device, not just what the ticket said should happen.
- Design, develop, and maintain a custom embedded Linux distribution using Yocto or Buildroot.
- Bring up new hardware platforms, working closely with the hardware team to debug issues from schematics to software.
- Develop and maintain the BSP and bootloaders (e.g., U-Boot), and customize the Linux kernel, including writing and debugging drivers (e.g., I2C, SPI, UART, MIPI-CSI/DSI).
- Write robust, efficient C/C++ code for system services and applications.
- Optimize system performance: boot time, memory usage, and power consumption.
- Implement and maintain system security features such as Secure Boot and encrypted file systems.
- Debug firmware and hardware-adjacent issues using JTAG/SWD, serial logs, logic analyzers, oscilloscopes, and vendor tooling.
- Collaborate with hardware, mobile, QA, backend, product, and client-side engineering teams to solve cross-functional device problems.
- Participate in requirements discussions, technical planning, architecture decisions, estimations, and delivery planning.
- Test firmware releases, investigate issues found during development or QA, and maintain technical documentation.
- Share knowledge and contribute to better engineering practices within our Firmware & Hardware chapter.
- 4+ years of professional experience in embedded or firmware development.
- Strong hands-on experience with C / C++ for embedded systems.
- Hands-on experience with embedded Linux build systems such as Yocto Project or Buildroot.
- Good understanding of the Linux kernel, device drivers, and the device tree.
- CI/CD experience for embedded projects (e.g., Git Hub Actions, Jenkins, Git Lab CI).
- Experience with bootloaders, particularly U‑Boot.
- Experience with embedded constraints: timing, memory, peripherals, boot time, and power consumption.
- Ability to debug firmware and hardware‑adjacent problems using practical tools: JTAG/SWD, serial logs, logic analyzers, and oscilloscopes.
- Comfort reading schematics, datasheets, technical documentation, and errata.
- Familiarity with common embedded interfaces such as UART, SPI, I2C, GPIO, or similar.
- Proficiency with Bash and/or Python for automation and testing.
- Solid Git skills and comfort collaborating on Git Hub: pull requests, code reviews, shared repos.
- Good…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).