Uses

The things on my machine right now, and what I'd say about them if you asked. Inspired by uses.tech.

Last updated .

Editor

Spent ten years bouncing between editors. Modal editing won; LazyVim's batteries-included setup spared me another six months of yak-shaving my own config.

  • Neovim · LazyVim distribution

    Bound to caps lock. About 600 lines of Lua on top of LazyVim — mostly LSP wiring, a handful of keymaps that ate Vimium's lunch, and a treesitter playground I refuse to remove. Configs versioned in dotfiles.

  • VS Code · pair-programming only

    Stays installed because Live Share is unmatched for synchronous pair-programming. Otherwise dormant — open it maybe twice a month.

Terminal

Ghostty replaced Alacritty mid-2025 — same speed, less config friction. Everything else is rote: fish for ergonomics, tmux for sessions that outlive the SSH connection.

  • Ghostty

    Switched from Alacritty when I needed proper accessibility support and tabs that don't lag. The Mitchell-Hashimoto pedigree helped, but it earned the slot on merit.

  • fish · shell
  • tmux · long-running sessions
  • starship · prompt

Languages

Five years of Python, four of Go, three of TypeScript — in that order. Rust is the slow burn; reading more than writing for now.

  • TypeScript
  • Go
  • Python
  • Rust · learning

    Working through "Programming Rust" (2nd ed) on weekends. Borrow checker still wins more arguments than I do; the patterns are starting to feel less like fighting the compiler and more like a conversation.

  • SQL · Postgres dialect

Frameworks

Astro for content-first sites, SvelteKit for app-shaped things, FastAPI for backend prototypes. The common thread is ship-by-default with an escape hatch when you need it.

Cloud

Cloudflare is the default for anything serverless. AWS Lightsail handles the few workloads that genuinely need a long-running process. Fly.io for the rare regional-edge case.

  • Cloudflare · Pages, Workers, R2, D1

    Pages for static. Workers for the contact form and anything edge-y. R2 for blob storage that doesn't bleed me dry on egress. D1 for small projects where Postgres would be overkill.

  • AWS Lightsail · stateful workloads
  • Fly.io · regional edge

Database

Postgres unless there's a specific reason not to. SQLite for sidecars and embedded use. DuckDB has earned permanent residency in my analytics workflow.

  • Postgres

    Self-hosted on the bigger projects, Neon for prototypes, Supabase when I want auth bundled. The query planner is the single most useful thing to learn deeply if you do backend work — it's how I find the half of my mistakes that survive code review.

  • SQLite · embedded
  • Redis
  • DuckDB · analytics

CLI

Most of these were brew installs from a Wes Bos talk in 2018 and never left. fzf is the best $0 upgrade most engineers haven't made yet.

  • fzf

    Bound to ctrl-r for shell history, ctrl-t for file search, and a custom binding that fuzz-finds across my projects directory. Saved me probably 200 hours of tab-completion fatigue.

Hardware

M3 Pro after years of x86. The HHKB is the only piece of gear I've owned for over five years; I'd buy three if my keyboard travel changed.

  • MacBook Pro · M3 Pro, 36 GB
  • LG UltraFine 5K · 27"
  • HHKB Professional Hybrid · Type-S

    Type-S silenced sliders, 60% layout. Two USB modes paired with my work iMac and personal Mac. Sublimely consistent feel after seven years. I've stopped trying to convince other people.

  • Logitech MX Master 3