Being an Embedded Linux Engineer at balena
Our users rely on us to successfully deploy their IoT fleets, the key to which is implementation of our Linux distribution, balenaOS.We currently support 50+ device types (Raspberry Pi, Intel NUC, NVIDIA Jetson, etc.) and aspire to support over 1000.
As an Embedded Linux Engineer, you will provide customers with a device-specific layer and an operating system that meets all their hardware requirements. You will drive the development phase — building, testing, and validating custom images, as well as the ongoing support efforts for devices running balenaOS in production. You will take on projects, build new features adding functionality at the device and the host OS level, and influence decisions impacting the global “balena fleet”.
You will work at the intersection of cloud computing and embedded systems, taking the modern application development paradigm of running containers at the Edge and applying it to hardware!
Responsibilities
Abstract, analyze, and genericize subtle variations across different device types
Add balenaOS support to new boards and maintain support for those already ported
Develop custom Board Support Packages ensuring proper boot-up and app initialization
Diagnose and debug issues in the BSPs, the OS, and the interfaces with platform components
Automate upgrades, tests, new releases, and troubleshooting for devices in the field
Implement scalable tools and streamline processes to support 1,000+ device types
Be a resource for peers on support, lending your expertise and mentoring others
Requirements
Technical background in Embedded Software, Electronics, or Systems Engineering
Experience with low-level programming of microprocessors and embedded systems
Familiarity implementing and tailoring bootloaders, device drivers, and kernels on Linux
Proven ability to bring up boards and troubleshoot issues with hardware & software
Enthusiasm and perseverance to get to the root cause when investigating bugs
Drive to make yourself and others more effective, including through automation
Willingness to constantly build on your knowledge of new technologies
Excellent communication skills and fluency in English
Bonus points
Familiarity with Yocto-based build systems and technologies like JS, Rust, Bash, Docker
Good understanding of ARM and x86 architectures
Working knowledge of interfaces (I2C, I2S, SPI, etc.), SoCs and peripherals
Background in leading projects and coordinating with cross-functional teams
Experience with IoT, embedded SW, dev tools, or balena as a user/contributor
Contributions to OSS projects and community involvement
Make sure to let us know if any of these items apply to you! If possible, please also share a sample of your work or examples of projects (URL or attachment).
