New
The Gartner Hype Cycle Emerging Technologies Report is out!

Download now

Skydio Takes Development to the (Literal) Clouds

author avatar
Marc Paquette
 on September 18th, 2023

Skydio builds the world’s most advanced autonomous drones for solving some of the world’s most difficult, time-consuming, and dangerous tasks. Skydio drones work across various enterprise and public sector use cases including infrastructure management, public safety and defense. For example, Skydio drones are used to inspect the Sydney Harbour Bridge, giving inspectors streamlined planning and highly accurate images.

We talked to Elliot Graebert, Skydio’s Director of Engineering, Infrastructure. He oversees the teams supporting core functionality for the SaaS drone management platform, site reliability engineering (SRE), and developer productivity. Elliot is also an adviser for Coder, sharing his expertise from 13 years in developer productivity engineering.

The challenges of building autonomous drones

Skydio designs and manufactures its products from top to bottom. That includes the drone hardware, the onboard software that controls it, the planning software, and the SaaS platform.

"Building an autonomous flying robot that semantically understands the world around it is incredibly difficult."

One example of the challenges faced by the Skydio development teams: Deployment gets complicated. Software releases range from deploying to the cloud for the SaaS platform to installing on the drones themselves. Each type of release has its own cadence and scale. Deploying an update to thousands of drones also includes drones that are remote and periodically offline.

Skydio had typical costs and complications for onboarding a developer. The IT team provided a sufficiently powerful workstation with a base OS and tools. Then the developer took over, setting up the workstation for a specific project’s requirements, code bases, data, dependencies, and versions.

Before Coder, setting all this up was time-consuming. And in some cases, it could take as much as a week for a developer to prepare a workstation for actual development work, requiring significant back and forth with IT.

Beyond the standard development workflows, Skydio developers also need burst capabilities for AI/ML training and temporary workstations for release branches. But physical, on-premise hardware is wasteful for these kinds of development. The burst capabilities of the cloud became quite appealing.

To control costs while keeping developers productive, Skydio developed a homegrown virtual desktop system that provisioned VMs for developers. But with no activity management, it was difficult to determine if the VMs were being actively used daily, and no automation was set up to routinely shut them down. The result: VMs were running 24 hours/day, running up costs. Even beyond simple provisioning and deprovisioning difficulties, the myriad of other features needed for an optimum environment was beyond reach. When your goal is to build the world’s most powerful drone, time spent building in-house VM tooling isn’t worth it.

"The fun problem is asking 'How can I make you a better developer today?' That is the reason why you take a developer productivity job."

Elliot is especially familiar with these challenges. Before joining Skydio, Elliot was Head of Internal Infrastructure at Palantir where his team developed an in-house web portal for virtualized desktop environments in 2012. This project took 3 developers to build, and it was in use for years. In his experience, “while it started off as an exciting software project, it turned into a maintenance burden that needed constant attention.”

The search for a solution

Elliot mentioned other solutions like GitHub Codespaces and Azure Virtual Desktop Infrastructure (VDI). GitHub Codespaces doesn’t offer the flexibility needed for the drone product, and Azure VDI would require changing cloud providers. But his primary issue with them is their lack of flexibility to be heavily customized for the diverse nature of drone development. On the other hand, Coder uses Terraform for its workspace definitions, and it also runs inside any cloud provider of your choosing.

While Terraform is a recent hot topic, it remains a proven, robust, and flexible open source tool that developers can continue to rely on, including Coder users.

"The experience I want a developer to have is a big shiny green button that says 'Give me my computer'."

That made Coder an easy choice for Skydio: it was low-risk and low-cost. Elliot could specify templates in Terraform while Coder provided a reliable, feature-complete platform to handle the complexities of execution, management, visualization, logging, and authentication.

The decision for Coder was easy

Coder was easy for Elliot to pitch to Skydio: Coder could be both cost-effective and more efficient.

From a cost perspective, Coder already had a big advantage over the in-house virtual desktop environments. For the cost of a single workspace in their homegrown solution, Skydio could run 10 Coder workspaces, thanks to Coder’s activity monitoring and auto-shutdown.

From an efficiency perspective, Elliot described two ways to approach the adoption of a solution like Coder: make it either mandatory or supplemental. Pitching a solution as mandatory means also proving that it is quantifiably better for every development workflow. If you are wrong about the improvements, you run the risk of hurting productivity.

The alternative is to pitch a solution like Coder as supplemental to existing Skydio development workflows. Developers are free to use or not use Coder at Skydio, which means that adoption of Coder is a high signal that it is a productivity win. And Coder let Elliot move quickly and experiment.

Getting developers up to speed

To support their developers, Skydio uses a variety of Coder templates:

  • Simplest template: A bare bones VM with the most common OS, ready for developers to customize themselves.
  • A template optimized for Skydio code bases: It includes databases, pre-cloned code bases, and configuration with helper scripts to make routine tasks easy.
  • Templates for specific developer workflows. Examples: A desktop template for GUI-based workflows like automated browser testing or 3D rendering. A GPU template with preconfigured Jupyter notebooks and easy access to training datasets.

The gains were immediate:

  • Developers for the Skydio SaaS can now work in a Coder workspace with dependencies baked into the VM, cloud services authenticated and running, repositories checked out, and sanitized internal datasets unpacked and ready to use.
  • The machine learning team can develop in a workspace with cloud GPU and storage, with no need to configure and connect to these resources each time they’re needed.

Elliot is a strong believer in improving the developer onboarding experience. Any experienced software engineering mentor has a story where some poor intern runs into a series of unfortunate events where their onboarding experiences takes weeks instead of hours. Elliot had examples ranging from faulty hardware, to out of date documentation, to just raw complexity. All these mean that someone’s first day is a stressful experience. With Coder, Elliot has seen onboarding time drop from a week down to as little as an hour.

"Writing code on your first day that goes to production is a velocity that gets engineers excited."

Incremental improvements are possible now. For example, if a team would benefit from a dataset existing on every workstation, then adding it to the Coder template is fast. Keeping it up to date is even easier.

The developer experience is simpler. For example, AWS can be overwhelming for developers who aren’t familiar with its many services and features. Coder template parameters simplify how the template configures the workspace for the developer’s requirements.

Outcomes

  • Reduced costs: Compared to manual lifecycle management, Elliot estimates that Skydio reduced its cloud computing costs for development environments by an astounding 90% simply by automating the shutdown of unused VMs.

  • Rapid onboarding: The time from setting up a new workstation to the first commit to production plummeted from a week to as little as an hour.

  • Enthusiastic adoption: With voluntary adoption only, Coder is already used by a third of Skydio developers.

  • Organic support: In internal help forums, Coder users are able to get their build issues fixed faster, due to the standardization of environments.

Doing more with Coder

Elliot continues to see more opportunities to get value from Coder.

From streamlining the deep learning teams, to simplifying the setup of virtual drones, Coder continues to simplify more and more developer workflows. Moving the complexity of setting up and managing cloud environments into a Coder template lets Skydio teams focus on what they do best: building the world’s best drones.

And Coder has been helpful in improving productivity, ahead of Skydio’s first conference: Ascend, where they plan on announcing several significant advancements in their technology. Developing the most cutting edge drone technology in the world requires the most cutting edge development tooling, and Coder is here to support Skydio on their journey to the (quite literal) clouds. We are looking forward to seeing what Skydio has to demo at Ascend. Register for the virtual keynote and come check it out.

After 13 years as a developer productivity engineer, Elliot sees cloud-based development as the right model for where developers should be going. Coder simplifies cloud-based development so that developers can focus on their work.

Do you have a tool that you can always rely on to be productive in building code?