Autonomy Engineer Intern
Skydio
About the Role
- Contribute to the development of next-generation autonomy algorithms and push them into real products.
- Work on a team with researchers who have pushed the state of the art in academia and industry.
- Assume direct ownership of a project that meaningfully advances the capabilities of the team and products.
Areas Of Responsibility
- Core Simulator Architecture: Design, implement, and evolve the foundational architecture of the Skydio Simulator.
- Physics and Dynamics: Improve and extend physics models governing vehicle motion, interactions with the environment, and dynamic agents.
- Sensor and Hardware Simulation: Build high-fidelity simulations of cameras, IMUs, and other onboard components.
- Autonomy Stack Integration: Run and validate the full Skydio autonomy stack in simulation.
- Feature Development on Top of the Core: Implement simulator capabilities to unlock new workflows.
- Performance and Fidelity: Profile, optimize, and improve simulator performance, pushing realism and accuracy.
What You’ll Do
- Develop core simulator components in C++ and Python, working close to real-time constraints.
- Collaborate with autonomy, perception, and controls engineers to align simulation behavior with real-world systems.
- Debug complex interactions between physics, sensors, autonomy logic, and rendering.
- Help shape the long-term technical direction of the simulator.
- Contribute to documentation and shared understanding of how the simulator works internally.
Requirements & Tech Stack
- Strong software engineering experience with C++ and Python.
- Experience building complex systems where performance, determinism, or correctness matter.
- Comfort reasoning about time-synchronized systems, state machines, or real-time execution.
- Ability to work in a large, evolving codebase with multiple stakeholders.
- Interest in robotics, simulation, or physical systems.
Bonus Experience
- Robotics, simulation, game engines, or real-time systems.
- Physics engines, sensor modeling, or hardware abstraction layers.
- Multithreaded or low-latency system design.
- Experience debugging systems that span software and physical behavior.