Embedded Software Engineer - Powertrain
About You and The Role
The Powertrain team is a multi-disciplinary hardware and software team responsible for designing the electric drivetrain at the heart of our life-saving drone delivery service, operating in some of the harshest environments on earth.
We are looking for an experienced firmware engineer who has worked in high-performing hardware/software systems to develop flight-code for power electronics and battery systems. If you're a self-starter with a strong background in software development, microcontrollers and a passion for shipping code to the real world, we want to hear from you!
What You'll Do
- Develop software architectures and microcontroller firmware necessary for a fully functioning battery and power distribution subsystem on our flight vehicles.
- Develop low-level microcontroller drivers for production and prototype sensors, and refine sensor data APIs for use cases like energy management, battery health, and power distribution.
- Analyze the runtime characteristics of our software in flight to build confidence in its performance, focusing on re-usable, maintainable software and optimizing where required.
- Understand and improve the reliability of the battery and power subsystems as a whole, working with hardware and systems engineers to develop comprehensive fault management strategies and hardware-in-the-loop tests.
- 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 energy systems.
What You'll Bring
- Strong software engineering skills, with proficiency in at least one strongly typed language. We use Rust, C++ and Python.
- Curiosity and a willingness to learn and work in a variety of software environments, from microcontrollers to hardware test frameworks to fleet-scale data analysis notebooks. We use FreeRTOS on our microcontrollers, and Linux as our primary development environment.
- An interest in becoming a domain expert in battery and energy subsystems. Previous experience with this domain is not required.
- Experience building and maintaining real-world deployed embedded systems, and handling the long tail of edge cases to ensure consistently high performance and reliability.
- A systems mindset and intuition for debugging; when anything could be wrong, you know how to narrow down the possibilities.
- A 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.