Challenges
- Up to a week to onboard a new developer
- Burst demand for cloud resources for AI/ML training and release branches
- High cloud computing costs
Outcomes
- 90% reduction in cloud computing costs for development environments
- Drop in time to first commit to production to as little as an hour
- Faster, simpler issue resolution for dev environments
Industry
Skydio builds the world’s most advanced autonomous drones to solve some of the 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 and 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.
Challenge: Controlling costs while keeping developers productive
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.
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.
Because of this, the onboarding process for a developer at Skydio was complex and time-consuming. 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. 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. However, physical, on-premise hardware is wasteful for these kinds of development, so the cloud's burst capabilities became quite appealing.
To control costs while keeping developers productive, Skydio developed a homegrown virtual desktop system that provisioned VMs for developers. However, with no activity management, it was difficult to determine if the VMs were being actively used daily, and no automation was set up to shut them down routinely. The result: VMs ran 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. Skydio’s mission is to build the world’s most powerful drone, and burning valuable time maintaining in-house VM tooling wasn’t worth it.
Elliot is especially familiar with these challenges. Before joining Skydio, he 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, what started as an exciting software project became a maintenance burden needing constant attention.
Solution: Transitioning to the cloud with Coder
The team began searching for a workspace solution that could handle the diverse nature of drone development. 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.
Enter Coder, a reliable platform designed to shift development from local workstations to the cloud. Coder was an easy choice for Skydio because it’s:
- Multi-cloud, so Skydio could keep their preferred cloud provider.
- Flexible and robust, using Terraform to define workspaces, ensuring that developers were pre-authorized with the tools, databases, and codebases they needed.
- Cost-effective, with a management layer for automatically shutting down under-utilized VMs, allowing Skydio to run 10 Coder workspaces for the cost of a single workspace in their homegrown solution.
- Feature complete, handling the complexities of execution, management, visualization, logging, and authentication.
To support their developers, Skydio built 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.
Result: Efficiency and cost-savings with Coder
Coder has enabled Skydio to navigate their development hurdles and boost their productivity. Coder was enthusiastically adopted across teams:
- 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.
The benefits of implementing Coder included:
- Reduced costs: Compared to manual lifecycle management, Elliot estimates that Skydio reduced its cloud computing costs for development environments by an astounding 90% by automating the shutdown of unused VMs and GPUs, making those resources available to other teams.
- Rapid onboarding: The time to set up a new workstation and make the first commit to production dropped from a week to just an hour. This boost in productivity also created a positive experience for new employees.
- Organic support: Due to the standardization of environments, Coder users can get their build issues fixed faster in internal help forums.
- Improved productivity: Coder template parameters streamline workspace configurations so developers don’t need to be experts in the many services and features of AWS.
- Flexible and easy updates: Skydio can make incremental improvements, such as making new datasets available and pushing updates to every workspace.
What’s next for Skydio
Skydio 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.
Subscribe to our Newsletter
Want to stay up to date on all things Coder? Subscribe to our monthly newsletter and be the first to know when we release new things!
Challenges
- Up to a week to onboard a new developer
- Burst demand for cloud resources for AI/ML training and release branches
- High cloud computing costs
Outcomes
- 90% reduction in cloud computing costs for development environments
- Drop in time to first commit to production to as little as an hour
- Faster, simpler issue resolution for dev environments