Stack
Tools I use, with opinions. Updated when something earns or loses a spot.
Runtime & language
-
Bun
Fast enough that I stopped checking benchmarks. Node compatibility is good enough that I haven't hit a wall.
-
TypeScript
Strict mode, every project, no exceptions. If you're writing agentic code, you want every type-level guarantee you can get.
-
Python
Still where the ML ecosystem lives. I use it for evals and ad-hoc data work, less for production glue.
AI tools
-
Claude Code
My primary coding agent. Long-context, good at staying inside the project, doesn't over-edit.
-
Cursor
For the inline-edit cases where I want a faster loop. Works alongside Claude Code, not instead of it.
-
Claude (Opus + Sonnet)
Opus for hard reasoning, Sonnet for everything else. Default to Sonnet, escalate when it stalls.
-
GPT-4 / GPT-5 family
I keep one of these wired in as a second opinion. They diverge often enough to be useful.
Editor & local setup
-
VS Code
Boring default. Vim mode on, extensions off. The agent does most of the editing now anyway.
-
Ghostty
The terminal I default to. Fast, sane defaults, GPU-rendered.
-
Zed
On the rotation when I want a leaner editor for writing. Not my daily driver yet.
Infrastructure
-
Cloudflare Pages + Workers
Default for static sites and edge functions. The cold-start argument died years ago — this is where I host.
-
Supabase
Postgres I don't have to babysit. Auth + storage + vector all in one. Good default for prototypes that survive.
-
Cloudflare R2
S3-compatible object storage with no egress fees. Where I dump evals, datasets, model artifacts.
Writing & publishing
-
Substack
For the field notes. I don't love the on-platform discovery, but the writing-and-sending workflow is unbeaten.
-
Notion
Atlas drafts live here. The export pipeline isn't great, but the editing flow makes up for it.
-
Gumroad
For selling the paid tier of Atlas. Simple, low-overhead, doesn't demand a separate checkout to maintain.