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!
- 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
- 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
- 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).