Invest in your developer experience!

Publish date: July 10, 2025

Tags: software engineering, developer experience

The more effort you require to start an activity, the more likely you will put it off.

How long does it take you to open up your personal project?

My experience

I had the idea of exploring how HTTP works, so I thought I would write a simple Chat Server/Client without using any HTTP or Websocket libraries. To bootstrap the project, I thought I’d write a Kotlin SpringBoot server, using a PostgreSQL Database via Docker, and an Android Client.

Naturally, this meant that my workflow consisted of the following:

Roughtly 30-60 seconds of wasted time.

I see many Engineers accepting to perform coumbersome workflows day in and day out, and often wonder, “Does this not sap your energy each time?”. It certainly saps my energy.

Solution

After investing ~10 minutes of effort, I got this workflow down to a single terminal command: pwork, by doing the following:

  1. Create a bash script with all the steps:
1
2
3
open -a Docker
open -a "/Applications/IntelliJ IDEA.app" /Users/zkovacs/Work/Personal/Projects/Chat/Server/api
open -a "/Applications/Android Studio.app" /Users/zkovacs/Work/Personal/Projects/Chat/Client
  1. Create an alias in my .zshrc to run the script with sudo, ensuring I don’t get interrupted by something requiring my password:
1
alias pwork='sudo /Users/zkovacs/bin/pworker'
  1. Modify the sudoers file, allowing me to run the command without requiring my password:
1
zkovacs ALL=(ALL) NOPASSWD: /Users/zkovacs/bin/pworker *

By reducing the barrier to get started, at the end of the day when I’m tired after my workday, I’m far more likely to do something useful, rather than binge-watch something on YouTube.

Putting it into practice

Automation Comic

  1. Identify comment steps you need to regularly perform to get started working
  2. Invest effort once into automating it
  3. Enjoy