Remote Development at Slack

This post details the inception and implementation of Slack's Remote Development Environments project. It describes the transition from local development with HHVM and Docker to a cloud-based solution using AWS EC2 instances. Key technical contributions include the development of a `slack remote-dev` CLI command for provisioning environments, integration with AWS Auto Scaling Groups for maintaining a fleet of ready instances, and the use of VSCode Remote SSH for a seamless development experience. The post also covers strategies for environment customization via `~/.remote-dev-home`, short-lived instance management for cost-effectiveness, and the ability to easily scale instance specifications (e.g., from C5.2xlarge to C5.4xlarge) to accommodate evolving needs like frontend builds. It presents adoption metrics and qualitative feedback from engineers.