notes
Notes on software engineering, web performance, and the things I learn while building. Every post lives on my blog.
A cache keyed only by URL served one user another user's dashboard. Here is the production cache bug that taught me to respect the cache key.
Perceived speed often matters more than real speed. Here's how skeletons, optimistic UI, and honest progress make a wait feel shorter than it is.
Dumping every file into an AI prompt makes its answers worse, not better. Here is how curated context gets you faster, more accurate code.
An AI agent is just a loop - a model, a few tools, and a stop condition. Here is how I built my first one with Claude and when it is worth it.
AI made me feel 20% faster while I was actually slower. Here is the workflow change that turned generated code into real shipping speed.
Most rate-limiting tutorials lead with algorithms. The useful part - what to return when a client hits the limit and how to avoid a retry storm - comes later.