About balena

Balena's mission is to unlock the potential of physical computing by removing friction for IoT fleet owners. We believe that edge computing is the next major computing paradigm, and every new computing paradigm needs a scalable development platform to match. We're building that platform with a complete, end-to-end solution that makes it easy for any developer to build applications for IoT and the Edge.

Our software platform helps developers build, deploy and manage code on connected devices. We brought Docker to embedded GNU/Linux devices in 2013 and have been building our toolkit ever since. Our core product is the balenaCloud platform, but we also maintain a variety of successful open source projects including Etcher, openBalena, balenaOS and balenaEngine and made contributions to high-exposure projects such as Docker, Electron, and AppImage. We've also recently released our first hardware product, the balenaFin.

Our technology is open, standards-based, and proven in production across a wide range of scenarios from robotics, drones, smart buildings, 3D printing, agriculture, medicine, and more. Our investors include OpenView, Threshold Ventures, Aspect Ventures, GE, and Ericsson.

Balena is a highly distributed, remote-friendly company We rely on clear communication and the rule of "assume positive intent" to help us work together across time zones, cultures and first languages. As an organization, we have little hierarchy, and organize as needed to build complex features and solve big problems. We are looking for people who want to bring us even more diversity, and strongly encourage applications from people underrepresented in tech.





On being an Embedded Linux Engineer at balena

As an Embedded Linux Engineer at balena, you will be a core member of our on-device software and operating system team. You’re primary responsibility will be helping to build and maintain balenaOS, our open-source Linux distribution designed to run containers on resource-constrained IoT devices. Our operating system is built using Yocto Linux and is comprised of a common meta-layer plus device-specific layers for the 50+ device types that we currently support, such as the Raspberry Pi.

You’ll work on building new features for balenaOS, such as giving customers the ability to add functionality at the host OS level and remotely deploy updates to their host OS, just like they currently do at the application level. You’ll build scalable tools and processes to help us support 1,000+ different device types on balenaOS. You’ll also help maintain and manage contributions to our open source repositories and community-contributed device support.

Our users and customers rely on balenaOS for everything from home projects to production use cases; our Embedded Linux Engineers are focused on providing a solid and reliable operating system with an excellent developer experience.





Responsibilities



Help architect, build, and maintain balenaOS, the first open source embedded operating system tailor-made for running Linux containers at the edge



Add balenaOS support for new boards and maintain support for our 50+ existing supported boards (e.g. Raspberry Pi, Intel NUC, NVIDIA Jetson, etc)



Help build tools and processes to enable our team to scalably support 1,000+ device types



Contribute to upstream open source projects such as Yocto Linux Project and all of our open-source components that we maintain



Develop and maintain OS components that provide new features for the host OS and/or integrate with other components in balena ecosystem, such as the host OS update mechanism



Consider the impact and tradeoffs of changes to balenaOS across the entire balena fleet and ecosystem through in depth analysis and understanding of our products and services



Debug various issues in device BSPs (board support packages), in the OS itself, and in the interfaces with other balenaCloud components



Design and write tests for balenaOS releases



Requirements



Abstract and genericize subtle variations across different device types



Have a product mindset: gather feedback, understand and articulate user needs, help develop the OS roadmap, and build solutions



Perseverance to understand the root cause when investigating elusive bugs



Strong problem-solving abilities. You can split a complex problem into incremental pieces



Continuous improvement mindset and desire to make yourself and others more effective



Comfortable working in an environment that practices radical candor and transparency



Excellent written communication skills, and fluency in English



Bonus points for the following



Experience with the Linux Kernel and the Yocto project



Having worked remotely before



Experience with low-level hardware programming of microprocessors and embedded systems, ideally on ARM



Experience leading projects or bringing people together to collaborate and build great products



Experience leading or contributing to OSS projects (please include a URL)



Experience with the balena ecosystem as a user



Experience with technologies like Docker, Rust



About working at balena

We come from 15+ countries, and we embrace a remote culture with flexible hours. To us, this means being highly productive while still maintaining a healthy work-life balance. You need to be able to work remotely, and have a dependable internet access available so you can join video calls.

We are an equal opportunity employer and value diversity. We value knowledge and initiative more than educational and personal backgrounds, age, or location. We maintain a work environment in which team members are treated with respect at all times and in which thoughts and ideas can be shared openly.

We communicate proposals, discuss with others in the team and accept feedback if it makes the result better. We value the ability to learn, which is more important to us than knowledge of specific technologies. We know that learning fast means being outside our comfort zone, which is OK — we'd rather learn than let our assumptions get in our way.

Benefits