New writing every week
Code, AI, and the craft of building software.
Long-form articles and hands-on tutorials on AI engineering, systems design, and the unglamorous decisions that keep codebases alive. No hype, no listicles — just the working notes of people shipping real things.
- Articles
- 06
- Tutorials
- 05
- Topics
- 19
A publication for engineers who build with AI, and want to understand what they are building. Topics: AI engineering, systems, and craft. Principles: ship small, measure honestly, read the source.
Latest
Fresh off the branch
Tracks
Tutorials that build on each other
Archive
More from the blog
Write the eval first
Prompt engineering without an eval is just vibes with extra steps. Here's how to build a scoring harness in an afternoon, and why twenty examples beat two thousand.
The cache you think you have
Your hit rate is 4% and you can't see why. A field guide to the invalidations nobody writes down — in HTTP caches, in Postgres, and in LLM prompt prefixes.
Types that earn their keep
Most TypeScript adds ceremony without removing bugs. Four patterns that make illegal states unrepresentable instead of merely annotated.
Streaming is a state machine, not a string
The token loop is the easy part. Reconnects, partial JSON, backpressure, and the abandoned-request problem are where streaming implementations actually break.
Postgres is probably enough
Before you add Redis, Elasticsearch, a vector database, and a queue: Postgres does all four adequately, and 'adequately' is the correct target until it isn't.
Free, forever, no signup