Software Engineer - Embedded Firmware

ZiplineSouth San Francisco, CA
Hybrid

About The Position

Zipline is the world's largest and most experienced drone delivery service, dedicated to providing access to food, medicine, and essential goods globally. They design, build, and operate an autonomous logistics system, having completed millions of deliveries across four continents. Zipline's system strengthens supply chains, reduces congestion, and aims to redefine access to healthcare and consumer products. They seek problem solvers motivated by building systems with meaningful impact and scaling the future of logistics. As an embedded firmware engineer, you will be responsible for developing the lowest level and most safety-critical software for Zipline's aircraft. This role involves close collaboration with electrical, mechanical, embedded Linux, and systems engineers to ensure seamless aircraft transitions from manufacturing to global deployment. The firmware development primarily uses C++, with Rust and Python for tooling deployed to production systems in the field. You will contribute to building reusable firmware infrastructure to enhance system observability and reliability, especially for aircraft deployed in remote locations.

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
  • Ability 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

Benefits

  • equity compensation
  • discretionary annual or performance bonuses
  • sales incentives
  • medical, dental and vision insurance
  • paid time off
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service