Hey 👋 this is Luca! Welcome to a 🔒 weekly edition 🔒 of Refactoring.
Every week I write advice on how to become a better engineering leader, backed by my own experience, research and case studies.
You can learn more about Refactoring here.
To receive all the full articles and support Refactoring, consider subscribing 👇
In early August, Github announced they migrated the whole engineering team to Codespaces — their cloud development environment.
That is, Github engineers now write code fully in the browser, as opposed to their local machines.
The blog post got immediately very popular and sparked a heated debate online.
Whenever we read unexpected / controversial engineering stories from big companies we usually react in one of two ways:
"Wow, they can do it because they are so big"
"Wow, they can do it despite being so big"
I argue this case belongs to the latter.
Cloud development solutions have been around for years, but most companies have not looked into them because they seemed to apply only to a handful of cases — e.g. simple frontend projects.
Github, though, is 14 years old and its codebase has 1M+ commits. For those of us who were not paying attention (here I am 🙋♂️) or dismissed this trend in the past, this is our wake up call.
This week I researched how people can write software on the cloud today, and why they should or should not.
Let's dive in! 👇
⚔️ Cloud Development vs Remote Development
Writing code that doesn't live and run on your own machine is a behaviour that has existed forever. People set up remote environments and accessed them via SSH.
Remote development, though, is different from Cloud development.
Cloud development provides tools to do remote development at scale, in a way that is seamless for developers and abstract from the underlying infrastructure.
It applies the benefits of cloud computing to dev environments.
But why should companies go for it?