How to set up a powerful remote development environment that's as comfortable as localhost

Advantages

arrow pointing from laptop to server rack Specialized hardware / flexibility
locked lock Security / intellectual property
three co-located people with laptops Office
three distributed people with co-located servers Remote
laptop connecting to three servers Local environment
laptop connecting to one server connecting to three servers Remote environment

Tradeoffs

sketch of VS Code UI Nascent tooling
boxes with chaotic lines Additional complexity
computer disconnected from the internet Offline development
delta symbol Change is hard

Architecture

Hybrid option

Local

  • Editor
  • Git
  • Repository
  • Synchronization software (unison, rsync, etc.)
  • Browser
  • VPN client

Remote

  • Synchronization software
  • Runtime dependencies (docker, etc.)
  • Build tools

Fully remote option

Local

  • Editor client (VS Code, terminal, etc.)
  • Browser
  • VPN client

Remote

  • Git
  • Repository
  • Runtime dependencies
  • Build tools
computer connecting to private network via VPN VPN configuration

VPN tips

Computer with split internet traffic between VPN and internet

Workflow

  1. Connect to the VPN
  2. Connect to your machine via SSH
  3. Profit

Alternatives

Remote environment lifecycle approaches

Next steps

Come enjoy a comfortable remote development environment at Rivet.

Questions / want to chat? DM or tweet at @mjswensen.

rivethealth.com/careers twitter.com/mjswensen