Zipline logo

Software Engineer (Embedded Firmware)

Zipline

HybridSan Francisco, CAmid$160k–$250kPosted 7h ago

Job description

  • 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

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

  • 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

  • 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

  • Strong software engineering skills, with proficiency in at least one strongly typed language. We use C++, Rust, and Python

  • This role requires a minimum of 3 years of working experience at a business developing hardware. If you are a new graduate or currently in school, this is not an appropriate role to apply for