Embedded Software Engineer (Linux)
Zipline
About Zipline
Do you want to change the world? Zipline is on a mission to transform the way goods move. Our aim is to solve the world’s most urgent and complex access challenges by building, manufacturing and operating the first instant delivery and logistics system that serves all humans equally, wherever they are. From powering Rwanda’s national blood delivery network and Ghana’s COVID-19 vaccine distribution, to providing on-demand home delivery for Walmart, to enabling healthcare providers to bring care directly to U.S. homes, we are transforming the way things move for businesses, governments and consumers. The technology is complex but the idea is simple: a teleportation service that delivers what you need, when you need it. Through our technology that includes robotics and autonomy, we are decarbonizing delivery, decreasing road congestion, and reducing fossil fuel consumption and air pollution, while providing equitable access to billions of people and building a more resilient global supply chain.
Join Zipline and help us to make good on our promise to build an equitable and more resilient global supply chain for billions of people.
About You and The Role
The Embedded Software team is responsible for designing robust systems that power our life-saving drone delivery service in some of the toughest environments on Earth. Our team is responsible for the software stack from bare-metal through the operating system, firmware, peripheral drivers, core libraries, and the tools plus test systems that enable our team to develop reliable safety-critical systems at high velocity. This spans from our aircraft, to our ground infrastructure, to our hardware testers.
As an Embedded Software Engineer, you’ll be a key contributor to this stack, helping design, implement, and maintain the software that enables our drones and systems to operate safely and efficiently. You’ll work closely with other embedded engineers, electrical engineers, and systems teams to build reliable, performant solutions for real-world challenges.
What You'll Do
-
Design, develop, and maintain embedded software across our aircraft and ground systems.
-
Work with Linux, microcontrollers, and real-time operating systems to build robust, safety-critical systems.
-
Implement and optimize peripheral drivers, radios, and communication interfaces.
-
Contribute to frameworks and libraries that accelerate firmware and system development.
-
Collaborate across disciplines to ensure our avionics and infrastructure systems are safe, reliable, and performant.
What You'll Bring
-
2–3 years of hands-on experience in Rust and C.
-
Solid Linux background, including understanding of the /proc filesystem, awareness of cgroups, and familiarity with eBPF.
-
Strong understanding of concurrency and parallelism (and the difference between the two).
-
Networking knowledge, particularly with TCP/UDP.
-
Strong software engineering fundamentals, with experience shipping real-world systems.
-
Ability to work across hardware/software boundaries and debug complex system-level issues.
Nice to Have
-
Experience with device drivers and handling interrupts.
-
Knowledge of clocks and clock synchronization.
-
Familiarity with the Linux memory subsystem (VM).
-
Understanding of CPU scheduling.
-
Experience with IPC message passing (e.g. Protocol Buffers).