Software Engineer - Motor Firmware
About Zipline
Do you want to change the world? Zipline is on a mission to transform the way goods move. Our aim is to solve the world’s most urgent and complex access challenges by building, manufacturing and operating the first instant delivery and logistics system that serves all humans equally, wherever they are. From powering Rwanda’s national blood delivery network and Ghana’s COVID-19 vaccine distribution, to providing on-demand home delivery for Walmart, to enabling healthcare providers to bring care directly to U.S. homes, we are transforming the way things move for businesses, governments and consumers. The technology is complex but the idea is simple: a teleportation service that delivers what you need, when you need it. Through our technology that includes robotics and autonomy, we are decarbonizing delivery, decreasing road congestion, and reducing fossil fuel consumption and air pollution, while providing equitable access to billions of people and building a more resilient global supply chain.
Join Zipline and help us to make good on our promise to build an equitable and more resilient global supply chain for billions of people.
About You and The Role
As a Motor Firmware engineer at Zipline, you’ll be responsible for shipping high-performance motor controller firmware for Zipline’s family of proprietary motor controllers. Expect to work closely with electrical engineers, structures and mechanism designers, flight software developers, and test-site operations teams. Our close-knit engineering culture presents a unique opportunity to learn from a strong multi-disciplinary team, and lets you swiftly ship features that are clearly linked to the delivery experience.
We use C++ in our firmware development, with Rust and Python for tooling that will be deployed to our production systems in the field. The team uses hardware- and software-in-the-loop test infrastructure to validate new features and regression test existing functionality. You’ll often be querying large data-sets from our test operations to make high-quality data-driven engineering decisions and build prototypes of new algorithms. You’ll build analyses in Matlab, Julia, or Python to prove the performance of your controls designs, and execute Monte-Carlo simulations to validate complex dynamics.
What You'll Do
- Design estimators and controllers for propulsion motors and actuators, in close collaboration with the vehicle controls team.
- Implement these controllers in C++, targeting a bare-metal ARM microcontroller.
- 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.
- Build vehicle simulations in Rust to validate and regression test high-risk features.
- Collaborate with electrical engineers to bring-up and validate new inverter designs.
- Build and maintain automated systems to monitor the performance of our fleet and direct maintenance activity.
What You'll Bring
- Fluency in C++, and excitement about writing code in Rust and Python.
- Eagerness to learn, no prior experience with motors is required.
- Curiosity and a willingness to work in a variety of embedded environments, from running on bare metal, to using a RTOS and integrating with embedded Linux.
- Experience supporting robotic systems in the real-world, in particular addressing the long-tail of edge-cases and rare events to guarantee safety, reliability, and performance.
- A systems-engineering mindset, and an eye for finding efficient solutions to problems that may lie outside your core competencies.
- Strong executive communication skills, to efficiently communicate about your work with folk who are not firmware or control systems experts.
- You must be able to work on-site in South San Francisco, CA.
- A background in electronics design would be appreciated, but is not required.
What Else You Need to Know
The starting cash range for this role is $160,000 - $215,000. Please note that this is a target, starting cash range for a candidate who meets the minimum qualifications for this role. The final cash pay for this role will depend on a variety of factors, including a specific candidate's experience, qualifications, skills, working location, and projected impact. The total compensation package for this role may also include: equity compensation; discretionary annual or performance bonuses; sales incentives; benefits such as medical, dental and vision insurance; paid time off; and more.
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!
Please Note
We have received reports stating that certain individuals are reaching out to people under false pretenses, claiming to be Zipline employees, affiliates, agents, or representatives. They may seek to gain access to your personal information or to acquire money from you by offering fictitious employment opportunities or by claiming that they are contacting you on Zipline’s behalf.
Genuine Zipline employees or representatives will never ask you for money or payment in exchange for employment opportunities or other related services. Any such offer of employment or any other service in exchange for fees that claims to be from us is deceitful and part of a fraud.
If you believe you have been targeted by a fraudulent party, we ask that you immediately get in touch with us via email at security@flyzipline.com upon receiving a suspicious offer or claim.