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:
| Tool | What for |
|---|---|
ripgrep (rg) | Blazing-fast search |
fd | Better find |
bat | Better cat with syntax highlighting |
eza | Modern ls replacement |
delta | Beautiful git diffs |
jq | JSON processing |
lazygit | Terminal Git UI |
zoxide | Smarter 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.