About the Role
This position sits close to the embedded world, but it isn't traditional microcontroller firmware work. You'll own the operating system foundation and platform layer of our IoT devices - building and evolving our next-generation embedded Linux image - and develop the Python application layer that runs on top of it, inside our dockerized main application.You'll work down at the OS and hardware boundary while shipping features up in the application layer. Typical areas include:Designing and maintaining our Yocto-based Linux distribution for ARM devices with limited computeSecurity on device, inter-process communication, networking, scheduling, observationOver-the-air (OTA) updates for both the OS and applicationsIntegrating peripherals - watchdog, modem, AI accelerator - and improving their observabilityBridging the system layer and the application layer through Python and BashThe work spans from driver- and kernel-level integration in C/C++, to adapting our Linux distribution with Yocto to the underlying hardware layer, to debugging system-level failures such as memory leaks, up to writing the Python software that turns hardware capabilities into product features.You will be expected to pass a live coding interview for this role.What to expectEmbedded Linux Platform: Design, build, and continuously evolve the next generation of our Yocto-based Linux distribution for ARM-powered IoT devicesApplication Development: Develop Python-based software that brings hardware capabilities to life and improves the reliability and performance of our productsSystem Integration: Work across the full stack—from kernel and driver integration to application development—connecting hardware, operating system, and product featuresDevice Reliability: Build secure, observable, and resilient systems, including OTA updates, networking, process communication, scheduling, and device monitoringDebugging & Troubleshooting: Analyze and resolve complex issues across the platform, including kernel, drivers, networking, memory management, and application softwareOwnership: Take end-to-end responsibility for your solutions, proactively improve our platform, and help shape engineering best practicesInspire us byEmbedded Linux Expertise: Several years of experience developing Embedded Linux systems and confidence working with Linux internals, GNU tools, and BashEngineering Mindset: Degree in Computer Science, Electrical Engineering, Physics, or equivalent practical experienceYocto Experience: Proven experience building, customizing, and maintaining Linux images using YoctoSystems Programming: Strong programming skills in at least one systems language such as C, C++, Rust, Go, or JavaPython Development: Experience developing Python applications or a strong motivation to make Python your primary development languageLow-Level Debugging: Hands-on experience with debugging tools such as GDB, tcpdump, Valgrind, UART, and JTAG, including troubleshooting memory leaks and system-level issuesOperating System Knowledge: Solid understanding of Linux internals, bootloaders, systemd, drivers, kernel concepts, networking, and DockerLanguage Skills: Fluent English (C1)Extra points forExperience operating large-scale IoT fleetsKnowledge of industrial hardware, cameras, AI accelerators, modems, or network devicesExperience with computer vision, edge AI, or machine