My Mac Setup Is Infrastructure as Code for One Person
A field note on using Homebrew, mise, and chezmoi to make a Mac reproducible without sanding off the human parts.
Read moreTheory is easy. Prod is hard.
Building software that survives production.
Practical notes on AI engineering, architecture, testing, observability, developer experience, and the awkward bits that only show up after something ships.
Vibe-posted. Fact-checked. Mostly.
Start Here
A field note on using Homebrew, mise, and chezmoi to make a Mac reproducible without sanding off the human parts.
Read moreThis is a post-mortem on five weeks of infrastructure work that ended with git rm and 1,452 lines deleted from the lockfile alone.
Read moreThe first time I set an agent loose on a real codebase, it ran out of context before it had done anything useful. That's a clarifying experience.
Read moreBrowse by theme
LLM systems, agent-readable code, and the limits that show up in production.
Boundaries, diagrams, constraints, and decisions that outlive the sprint.
Feedback loops, architecture tests, TDD, and keeping drift visible.
Traces, metrics, latency, and making opaque systems explain themselves.
Tooling and workflows that make setup, review, and delivery less theatrical.
Pragmatic delivery notes for teams trying to ship without lying to themselves.
Current focus
Building
Learning
Community
Reading
Latest notes
A field note on using Homebrew, mise, and chezmoi to make a Mac reproducible without sanding off the human parts.
Read moreThere's a version of this story where we made a mistake and fixed it. That's true but incomplete. The fuller version is about what a structured evaluation process gets right, what it misses, and how the ground can shift under you even when you've done the work.
Read moreThis is a post-mortem on five weeks of infrastructure work that ended with git rm and 1,452 lines deleted from the lockfile alone.
Read moreThere's a particular type of diagram that engineers love producing and nobody can read. It has boxes for every service, arrows for every dependency, labels on each arrow explaining the protocol, and a legend in the corner that requires its own legend. It is, technically speaking, accurate. It is also completely useless.
Read moreThere's a particular kind of meeting that happens on mixed teams. Someone's opened a pull request, and two engineers are staring at the same diff with completely different facial expressions. One is confused. The other is quietly furious. Neither is wrong, exactly — they just have entirely different mental models of what the codebase is supposed to look like.
Read moreThere's a particular kind of hell reserved for debugging LLM-backed systems that nobody bothered to instrument. You've got a request that took twelve seconds and you don't know if the slow part was your retrieval pipeline, the prompt construction, the Bedrock call itself, or the post-processing that turned the model's output into something you'd actually show a user. You have logs. You have vibes. You have, essentially, nothing.
Read moreThe first time I set an agent loose on a real codebase, it ran out of context before it had done anything useful. That's a clarifying experience.
Read moreI wrote a post back in 2021 about walking skeletons — the idea that before you go deep on features, you ship something thin and deployable end-to-end. Not because it's useful to users, but because it flushes out the real blockers while the cost of finding them is still low. Permissions. Pipelines. Infrastructure assumptions that looked fine on a whiteboard.
Read moreWorking on a streaming chat product taught me something: the standard latency metrics don't really describe what users experience. They're not waiting for a page to load or an API to return a JSON blob. They're watching tokens appear — and what they feel before anything appears is the thing most teams aren't measuring.
Read moreProject setup should be boring. Not in a "this is beneath me" way — in a "this takes thirty seconds and I never think about it" way.
Read more