A developer’s tools are precious because that’s how she gets her work done. But what about the development environment? When I was in university, I took the remote Linux servers for granted. I did a lot of development on my laptop. And then my desktop. And then I started using both.
I would eventually find myself tweaking my setup on one device and then mirroring that change on another device. It doesn’t help that I can be very bikesheddy over my computing devices (though I am working on that, thank you very much). My setups were smart, but they should have been dumb.
Besides, what if I wanted to work on a project and I wasn’t home? Or the changes hadn’t been pushed from my desktop? Tough tuba.
The itch finally became too much to bear and so I purchased a used Dell Optiplex 7010 off eBay for $100 and set it up in my home office. I installed Ubuntu Server 18.04, assigned it a static IP address, and added an SSH key.
Now my personal computers are just thin clients and so long as I am able to supply an SSH key to the device that my server knows about, I’m in business. It feels so liberating!
It’s also quite a bit of fun to be the administrator of my own local server and that’s spinning out into another side hobby in and of itself. I’m also considering the possibility of using DynDNS for those times when I leave my home.
You don’t have to buy your own server hardware if you want to move over to a remote development workflow! You can rent some virtual machine instance from your favorite cloud provider. I wanted to buy my own hardware since I do like building computers and I know the time will come for when I want to save up and upgrade to a machine with a ridiculous amount of cores and RAM.