This is about the software tools that I use.
Code Editing
Visual Studio Code is my primary development environment. I have the configuration synched across all my computers using settings sync built into VSCode.
Theme: HackTheBox I love this, obviously as you can tell from the design of my website. I’m using [a fork of it] where I’ve made a few minor changes, including increasing the contrast between inactive items and the background (line numbers, tab titles) and added colors for the scroll thumb.
Notable Extensions:
- Astro - language support for Astro
- eslint - learn to code by making the squiggles go away
- prettier - formatting everything consistently
- Live Preview - good for viewing simple projects that don’t create their own http server
- colorize- is a really cool extension that shows you the colors of css variables inline in your code
- indent rainbow - makes a rainbow out of your indents. this is really useful for deeply nested files (like terrible html email templates)
- indent rainbow palettes - a set of jazzy palettes for indent rainbow
- peacock - changes the color of some of the chrome of VSCode. i find this super useful to have different colors for different projects, so when i have multiple windows open i can quickly figure out where each project is located.
here’s a quick screenshot of my VSCode window:

Terminal
My terminal of choice on a Mac is iTerm2, it’s brilliant and the creator/maintainer has ways to support them including a Patreon that I gladly contribute to.
When it comes to the shell inside, on my Mac I use z shell, and oh-my-zsh, with the powerlevel10k theme. Oh-my-zsh has plugins available to support a lot of different languages/environments, but I only load plugins for git and macos.
On my Windows computers I use Windows Terminal which is also excellent and makes working on Windows feel more ‘normal’ to me. The HackTheBox theme that I use has been extended with a HackTheBox colorscheme for vim which also provides a settings theme for Windows Terminal. Inside of Windows Terminal I use git-bash which is provided by Git for Windows. (my employer’s client does not allow the Windows Subsystem for Linux, or else I would probably use that)
Version Control
Nearly all of my projects use git for version control (most hosted either at github or Azure Devops), and I do all of my interaction with git via a terminal. The git plugin for oh-my-zsh provides a lot of handy aliases for git, but I have some of my own that I’ve been using for years and built up a lot of muscle-memory around. You can find those in my somewhat-neglected dotfiles repository.
Knowledge Management
I’m a heavy user of Obsidian to keep track of projects and references for everything in my life. I even wrote an MCP server to make this info available to AI assistants.
Assistants
I use Claude desktop and Claude Code for a lot of things now. While I’m not at the “let it churn in the background all day while I go do other stuff” stage, I am using desktop to organize and plan projects, while letting Claude Code do rote tasks or give me a first draft at things I’ve not built with yet.
I have Claude desktop integrated with a few MCP Servers I’ve written, including my publicly available Obsidian MCP server, and a custom server I wrote for my Social feed website.
Besides Claude, I also use Ollama to run local LLMs. Currently, I have qwen2.5:14b running in Ollama, connected to Continue.dev for coding questions.
Deployment and Hosting
My professional work often involves large applications that are deployed at enterprise-scale. At one time or another I’ve worked on an app deployed at almost all of the major cloud providers: AWS, IBM Cloud, Azure DevOps.
Building and deploying Apps has varied also, my teams have used Jenkins, Travis ci, and Azure Pipelines. I’m usually not the deployment engineer, but I’ve looked under the hood and gotten to understand how these work and are configured.
For my personal projects, I previously used Netlify for hosting javascript-based projects and/or sites built with javascript-based static site generators.
But now this site and many others are sourced in github, built and deployed using Coolify, onto a VPS from Linode. I think I have 20-ish sites serving from Coolify now.
Recently I’ve been doing more advanced stuff in Coolify, like persistent storage volumes and scheduled tasks. It makes it easy to do stuff that would formerly require, e.g. writing custom docker yaml files or editing crontabs.
Browsers
In short, I use and test in all modern browsers (and a few not-so-modern ones). I believe that only testing your code in Chrome is a disservice to your users. Each has a specific purpose in my day-to-day work.
- Chrome for development as I’ve come to enjoy the debugging and developer tools
- Firefox is the browser I use for work
- Edge is my primary browser on my personal PC
- Safari I use for all my personal browsing on Mac/iPadOS/iOS
I will occasionally, as a minimum-common-denominator test, use lynx to make sure my sites still work in a text-based browser. This isn’t a requirement for any of my professional work, but I like to know that my personal sites are usable in as many scenarios as possible.
In addition to the built-in developer tools and things like Lighthouse, my employer produces the IBM Equal Access Toolkit which you should check out.
—
As I think of other things I will update. Last update: March, 2026.