The duality of software production

· erock's devlog

How the I develop software

My ideal setup is shockingly similar to a web application itself: I have a front- and back-end computer for all personal software development. As I reflect on this, I find it humorous that I've aligned myself with a setup that resembles so closely to how I write web apps.

My back-end "server" is an old gaming rig that I have repurposed. It sits in my basement with an ethernet connection placed right next to my home network. It is connected to a UPC so brownouts don't interrupt development. I have also changed a BIOS setting so my server will turn back on automatically whenever I lose power. All of this hardware helps keep my server online and always available.

The benefits of having a server for software development is multi-faceted:

The other really amazing feature of this setup is since I have a server to host my dev environment, it doesn't matter what front-end I use, I'll always pick up exactly where I left off.

It also makes long-running tasks easier to handle since I don't have to worry about my computer going to sleep while it's processing. For example, I can have a full ethereum node running in a tmux session and I don't have to worry about it getting interrupted.

My front-end clients consist of a few machines. I have a framework laptop that I purchased late last year. It is a fantastic ultra thin laptop that I would highly recommend to anyone interested in a similar setup. I have my primary gaming rig that I'll sometimes use when I don't want to switch computers. I also have an iPad that I can be perfectly productive using with this setup.

In order to make this workflow feasible, I need to move as much of my software tools into the terminal.

I accomplish this goal with a couple of tools:

These tools are essentially all I need to be productive. The only thing missing is the browser which I have to run on my client machines.

Overall this setup has served me well for years and its benefits outweigh the initial setup.


I have no idea what I'm doing. Subscribe to my rss feed to read more posts.