Writing
Incidents
How to handle a production incident without making it worse
When something breaks in production the instinct is to dive into the code. The right first moves are calmer than that. Stabilize, communicate, then find the cause.
Read →
Applied AI
Stop parsing LLM text. Use tool calls.
Asking a model for JSON and parsing the text breaks in production. Define a typed tool, force the model to call it, and get validated structured data back.
Read →
Applied AI
Cut your LLM bill with prompt caching
Most AI features resend the same large prompt every call and pay full price for it. Cache the stable prefix and pay a fraction on every reuse.
Read →
Stack
The Supabase mistake that exposes your data
Filtering data in your queries and hiding it in the UI feels secure. Without Row Level Security, anyone with your public anon key can read the whole table.
Read →
Building
I almost listed a product I never built
A fake-door landing page is a great way to test demand. It is not a product. Calling it one costs the trust that building in public runs on.
Read →
Building
I audited my own online presence. It was a mess.
Three profiles, three different people, none of them the one actually building. Your profiles are your storefront, and mine contradicted each other.
Read →