About the Role
As an Embedded Firmware Engineer at Zipline, you will be responsible for developing and maintaining C++ firmware for aircraft microcontrollers that are critical to flight and safety functions. You will collaborate with various engineering teams to ensure reliable performance and communication across systems, while also optimizing real-time behavior and developing tools for testing and validation.
About Zipline
Zipline is the world’s largest and most experienced drone delivery service. We are on a mission to serve all humans equally by ensuring access to food, medicine and essential goods anytime, anywhere. We design, build, and operate the world’s largest autonomous logistics system, delivering critical supplies quickly and reliably. Today, Zipline operates on four continents, makes a delivery somewhere in the world every 30 seconds, and has completed millions of deliveries to date, including blood, vaccines, medical supplies, food, and retail products.
Our customers include the world’s largest and most prominent healthcare systems, governments, retailers, restaurants and global businesses who rely on us to save lives, reduce emissions, increase economic opportunity, and provide delivery from point A to point B as fast as possible. The drone is only 15% of what we’ve built to enable seamless, reliable, global operations.
Our system strengthens supply chains, reduces congestion, and gives people time back. With more than 140 million commercial autonomous miles safely flown, Zipline is redefining access to healthcare, consumer products, and food across the globe.
What You'll Do
- Design and build C++ firmware for a distributed system of aircraft microcontrollers.
- Develop reliable Ethernet, serial, and other microcontroller communication interfaces.
- Define platform-level interfaces and reusable firmware components that support multiple aircraft subsystems.
- Own the predictable and reliable performance of our microcontroller systems and the communication buses that connect them, across startup, real-time operation, fault handling, and recovery.
- Optimize real-time behavior, including CPU utilization, memory usage, scheduling latency, timing jitter, and resource contention.
- Develop metrics, monitoring and troubleshooting capabilities to prepare the system for field deployment at scale.
- Develop Rust-based tooling and software-in-the-loop simulations to test and validate firmware behavior.
What You'll Bring
- Strong software engineering skills and production experience writing C++ for embedded or resource-constrained systems.
- Experience with embedded communications, such as Ethernet, serial interfaces, or other hardware communication protocols.
- Experience designing and debugging real-time firmware, including task scheduling, interrupts, concurrency, synchronization, and memory constraints.
- Experience building and maintaining real-world deployed embedded systems, and handling the long tail of edge cases to ensure consistent safety, reliability, and high performance.
- A systems mindset and intuition for debugging; when anything could be wrong, you know how to narrow down the possibilities.
- Fluency in implementing peripheral drivers based on electrical schematics and datasheets.
Requirements
C++ programming
Strong software engineering skills and production experience writing C++ for embedded or resource-constrained systems.
Embedded communications
Experience with embedded communications, such as Ethernet, serial interfaces, or other hardware communication protocols.
Real-time firmware design
Experience designing and debugging real-time firmware, including task scheduling, interrupts, concurrency, synchronization, and memory constraints.
Deployed systems experience
Experience building and maintaining real-world deployed embedded systems, ensuring consistent safety and reliability.
Nice to Have
A systems mindset and intuition for debugging complex issues.
Fluency in implementing peripheral drivers based on electrical schematics and datasheets.