Software I use, gadgets I love, and other things I recommend.
I get asked a lot about the things I use to build software. After 30 years in tech, I've developed strong opinions about my tools. Here's what I'm currently using.
Workstation
Custom Linux workstation
I run Arch Linux as my daily driver. There's something satisfying about having a system that's exactly what you need and nothing more. Plus, the AUR has pretty much everything.
VPS and Baremetal Cloud Servers
For development and hosting, I use a mix of VPS instances and dedicated baremetal servers. Having real hardware when you need it and elastic resources when you don't is the best of both worlds.
Development tools
Zed, backed by Neovim
Zed is my primary editor these days—fast, minimal, and the vim bindings feel native. When I need to make a quick change, I'll still pop open Neovim. Old habits die hard.
Claude Code
I use Claude Code as my AI pair programmer. It's become an essential part of my workflow for exploring codebases, writing tests, and thinking through architecture decisions.
Ollama
I run open-source LLMs locally for research and experiments. It's great for testing ideas quickly without API costs or privacy concerns.
AutoGluon
When I need to spin up a classic ML model quickly, AutoGluon is my go-to. It handles the tedious parts of model selection and hyperparameter tuning so I can focus on the problem.
Infrastructure
Ansible
For configuration management and deployment automation. I use it to manage my personal servers and client infrastructure.
Terraform
When I need to provision cloud resources, Terraform is my go-to. Infrastructure as code is the only sane way to manage cloud environments.
Incus
For local container and VM management. It's a great alternative to Docker when you need more flexibility or want system containers.
Headscale / Tailscale
I run Headscale as a self-hosted coordination server for my Tailscale mesh network. All my machines are connected securely without the hassle of managing VPNs or firewall rules.
Stalwart
Self-hosted mail server that actually works. Modern, written in Rust, and handles JMAP, IMAP, and SMTP without the typical mail server pain.
Productivity
Obsidian
All my notes live in plain Markdown files synced with Git. Obsidian makes it easy to link ideas together and build a personal knowledge base.
Todoist
I've tried every task management system out there. Todoist strikes the right balance between simplicity and power for how I work.
Atuin
Shell history that syncs across all my machines. The fuzzy search is fast and I never lose a command I ran months ago on a different box.