Software Engineer - Embedded Firmware

ZiplineSouth San Francisco, CA
5h$155,000 - $210,000Hybrid

About The Position

As an embedded firmware engineer at Zipline, you will be responsible for building the lowest level and most safety-critical software on our aircraft. You will work closely with a range of other disciplines, including electrical, mechanical, embedded Linux, and systems engineers, to ensure each aircraft seamlessly transitions from our manufacturing lines to being a participant in the largest drone delivery network in the world. We use C++ in our firmware development, with Rust and Python for tooling that will be deployed to our production systems in the field. Our aircraft are deployed to locations around the world, many not easily accessible, even over a network. You will help build re-usable firmware infrastructure that will level up our systems’ observability and reliability, without requiring an equal scaling of our engineering team.

Requirements

  • Strong software engineering skills, with proficiency in at least one strongly typed language. We use C++, Rust, and Python.
  • Curiosity and a willingness to learn and work in a variety of embedded environments, from running on bare metal, to using and RTOS and integrating with embedded Linux
  • 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, and debugging at this boundary in order to support prototype hardware evaluation
  • Our team uses a hybrid in-office and distributed work environment, centered around our headquarters in South San Francisco, CA. You must be able to work from the office on a regular basis.

Responsibilities

  • Design and build the software necessary to run critical flight and safety processes on a network of microcontrollers, in cooperation with embedded Linux edge computers
  • Understand and improve the reliability of the flight software system as a whole, working with hardware and systems engineers to develop comprehensive fault management strategies and hardware-in-the-loop tests
  • Analyze the runtime characteristics of our avionics software in flight to build confidence in its performance, focusing on re-usable, maintainable software and optimizing where required
  • Develop metrics, monitoring and troubleshooting capabilities to prepare the system for field deployment at scale
  • Design and build data collection and testing tools to support early stage evaluation of new sensors, communications systems, and microcontroller platforms
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service