My essential tools

A common theme across the tools I use frequently is that they all let me do work faster or with less repetition. I thought I’d list the tools I use a lot and wouldn’t want to go without when doing software development.

I’ve spent a lot of time installing, configuring, and managing my toolkit — probably more time than I’ve saved! However, even if I’ve not saved any time, I find it a lot easier to both focus and get things right when I can automate something. It’s very easy to make mistakes with repetitive tasks, especially if you have to remember a lot of details that aren’t relevant to your current goal.


These are the tools I use constantly when working on code.


I spend a lot of time working in a terminal, so it’s important to me that it’s nice to use. Several of the tools here simply make it easier to do something I could otherwise do by typing out a longer command.

Configuration management

I generally prefer to have all the tools I need installed on my local development machine. I tend to avoid using Docker or Podman for local development, which helps avoid conflicts when using someone else’s workflow that does.

Cloud systems

These are tools that mostly make a different tool easier to use.