Philosophy

My setup philosophy is simple: fewer tools, mastered deeply. I'd rather know 10 tools inside-out than have 50 installed and barely configured.

Here's what I use daily in 2026.

Editor

I use VS Code with a minimal set of extensions:

  • Error Lens — inline error highlighting
  • GitLens — powerful Git annotations
  • Prettier — code formatting on save
  • GitHub Copilot — AI pair programming

My font is JetBrains Mono with ligatures enabled. Theme: One Dark Pro (yes, still).

{
  "editor.fontSize": 14,
  "editor.fontFamily": "JetBrains Mono",
  "editor.fontLigatures": true,
  "editor.minimap.enabled": false,
  "editor.formatOnSave": true,
  "editor.bracketPairColorization.enabled": true,
  "workbench.colorTheme": "One Dark Pro"
}

Terminal

I use WezTerm with a custom configuration. Shell: zsh with a minimal prompt powered by Starship.

Key CLI tools:

ToolWhat for
ripgrep (rg)Blazing-fast search
fdBetter find
batBetter cat with syntax highlighting
ezaModern ls replacement
deltaBeautiful git diffs
jqJSON processing
lazygitTerminal Git UI
zoxideSmarter cd

Git workflow

I use trunk-based development with short-lived feature branches:

# Start a feature
git checkout -b feat/add-caching

# Small, atomic commits
git add -p
git commit -m "feat: add Redis cache layer for user lookups"

# Rebase before merging
git fetch origin
git rebase origin/main

# Merge via PR
gh pr create --fill

Docker

Every project gets a docker-compose.yml for local development. I don't install databases or services directly on my machine — everything runs in containers.

services:
  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: myapp
      POSTGRES_PASSWORD: dev
    ports:
      - "5432:5432"
  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

Final thoughts

The best setup is the one you actually maintain. Don't chase every new tool — pick what works, learn it deeply, and iterate slowly.

What does your setup look like? I'd love to hear about it.