Skydio
Software Engineer - Embedded
About this role
Skydio seeks an experienced embedded software engineer to develop firmware and drivers for autonomous drones, working across microcontrollers, embedded Linux, and Android platforms. You'll architect complex systems, integrate sensors and subsystems, and lead hardware bring-up in a fast-paced environment.
What you'll do
- Design and implement embedded software for drone vehicles and accessories
- Provide technical direction and system architecture for complex embedded systems
- Characterize, integrate, and validate key subsystems like cameras and radio components
- Write device drivers and interfaces for sensors and peripherals
- Perform hardware bring-up, debugging, and code optimization
- Develop and maintain embedded Linux kernel and userspace code
What they're looking for
- Modern C++ in real-time embedded environments
- Python development
- Embedded Linux kernel and userspace development
- ARM assembly-level debugging
- Microcontroller firmware (STM32)
- SOC development (Qualcomm/Nvidia)
- Embedded security and cryptographic firmware
- Hardware bring-up and system debugging
Benefits
- Competitive base salary and equity (stock options)
- Group health insurance plans
- Paid vacation, sick leave, and holiday pay
- 401(k) savings plan
- Relocation assistance (eligible roles)
- Diverse, inclusive multidisciplinary work environment
Opens the application — the Jobs AI extension fills it for you. Set up autofill
Opens the official application on the employer’s site. No login required.
Skydio
Skydio builds autonomous drone technology powered by sophisticated RF, electrical, and embedded systems. The company is hiring RF engineers, electrical engineers, embedded software engineers, cloud platform engineers, and deployment engineers to develop and support its connected drone products.
- Website
- skydio.com
Likely interview questions
- Describe your experience bringing up new hardware from scratch and the debugging techniques you used to identify firmware issues.
- Walk us through a complex embedded system you've architected—how did you handle the abstraction boundaries between firmware, drivers, and higher-level software?