Senior Embedded Systems Software Engineer

Company Details

Vital, On-Demand Delivery for the World

ABOUT ZIPLINE:

Do you want to change the world? Zipline uses drones to deliver critical and life-saving medicine to thousands of hospitals serving millions of people in multiple countries. Our mission is to provide every human on Earth with instant access to vital medical supplies. Join Zipline and help us make this a reality for billions of people.

Zipline is at the forefront of a logistics revolution, using autonomous aircraft to deliver just-in-time, lifesaving medical supplies on multiple continents, 7 days a week. We believe access to medical care should not depend on your GPS coordinates.

ABOUT THE ROLE:

Zipline is looking for experienced Senior Embedded Systems Engineers to create and improve upon a reliable software platform for our autonomous aircraft and ground systems. Engineers come into the office as needed during the pandemic. As public health restrictions are lifted, we are excited to collaborate and innovate together in-person at our office in South San Francisco.

Leading the charge in drone delivery often means exceeding the capabilities of what’s available off the shelf, and as a result we are engineering the majority of our system in-house. Inventing new robots and doubling down on the reliability of our systems is the critical path to serving the next 1 Billion people.

To get there, our team will have to:

  • Refactor and test all the software for our aircraft recovery system
  • Design an online battery state of charge estimation algorithm
  • Select components for next generation systems
  • Run flight controls and perception in real time on embedded linux
  • Upgrade message passing interfaces to support a multi-repo strategy
  • Implement a real-time failover to a backup flight processor
  • Scale our flight software to complete 10,000 life-saving deliveries a day

And much more!

Tackling these challenges takes more than any one individual. Our goal is to hire multiple exceptional embedded engineers to join our team, which means your specific responsibilities will depend on your skills and interests.

WHAT YOU’LL BRING:

You write quality code fast–Code that is correct, easy to read, tested, with friendly APIs. Quality is important because our systems are controlling large amounts of energy in close proximity to people. Quality is also important because many other software engineers at Zipline build software on top of the foundation that the embedded team sets. “Fast” is important because we are impatient to achieve our mission!

You are excited to leverage code to solve problems that exist in the physical world. Our systems interact directly with the physical world and there often won’t be a human nearby to intervene. This means that your software is written with laws of physics and Murphy’s law in mind.

You are familiar with the breadth of tools available to embedded systems engineers and pick the right tool for the problem. These include processors, sensors, operating systems, and software libraries. This is important because many problems have been solved already, and picking the wrong tool leads to hampered development and frustration.

You design software that is part of a system. The engineered artifact created by an embedded systems engineer at Zipline is software, but that software is operating as part of a much larger system, whether it be Unix, a cellular network, or a battery management system.

MUST HAVES:

  • Professional experience building software in RTOS or Embedded Linux
  • Fluency writing embedded systems software in C and C++
  • Confidence writing simple production-ready Python programs
  • Confidence writing peripheral drivers based on an electrical schematic and datasheet
  • A habit of augmenting automated tests to verify embedded software. Engineers at Zipline write their own tests!
  • Excellent communication (written, verbal, and visual). You know how to tailor to your audience with the right level of technical depth

NICE TO HAVES:

  • Experience implementing and simulating controls and estimation algorithms for dynamic systems (e.g., state space, Kalman filters). We have a lot of moving parts!
  • Experience implementing perception on embedded systems
  • Experience using message passing frameworks such as LCM or ROS
  • A habit of using data analysis to verify embedded software.
  • A desire to use (or learn) Rust
  • You’ve deployed safety-critical embedded software

The ideal candidate may not have all of the following skills and experience. If any of these apply, you might be a good fit!

WHAT ELSE YOU NEED TO KNOW:

Zipline is an equal opportunity employer and prohibits discrimination and harassment of any type without regard to race, color, religion, age, sex, national origin, disability status, genetics, protected veteran status, sexual orientation, gender identity or expression, or any other characteristic protected by federal, state or local laws or our own sensibilities.

We value diversity at Zipline and welcome applications from those who are traditionally underrepresented in tech. If you like the sound of this position but are not sure if you are the perfect fit, please apply!

Tagged as: embedded software, python, linux, c/c++, software modelling

Visit us on LinkedInVisit us on FacebookVisit us on Twitter