“Structured Outputs” are a false promise: Lessons about AI reliability
Last week, my AI coding assistant confidently generated a perfectly-structured API response handler. The code was immaculate, following every best practice. It destructured the response object correctly, handled all the standard HTTP errors, and even included retry logic.
There was just one problem: it was silently swallowing application-specific errors our team had carefully crafted, replacing them with generic error messages. The code was structurally perfect but fundamentally wrong about our application’s error handling philosophy.
Meta analysis from 6 hours on HN's Front Page
“Every developer has that one post they almost didn’t write…”
For 2025, I decided to get back into technical writing.
I’ve been obsessing over getting AI to actually understand production code. Not just generate it, but really grok what’s happening in a mature codebase.
After countless nights exploring this rabbit hole, I wrote about a breakthrough I had.
Sunday morning, I posted it on HackerNews. “Why not,” I thought, “maybe someone will find it interesting.”
Then I went back to my weekend.
The day I taught AI to read code like a Senior Developer
A messy experiment that changed how we think about AI code analysis
Last week, I watched our AI choke on a React codebase - again. As timeout errors flooded my terminal, something clicked. We’d been teaching AI to read code like a fresh bootcamp grad, not a senior developer.
Here’s what I mean.
When perfect code isn’t enough: My journey with AI IDEs
Last month, I asked Claude to help refactor a React component. The code it wrote was beautiful - clean, well-documented, following all the best practices.
It also quietly broke our error tracking system, removed a crucial race condition check (that admittedly looked like a bug), and duplicated three utility functions with slightly different implementations.
Sound familiar?
The AI coding space is exploding right now. Cursor hit $50M ARR, Lovable.ai reached $4M in 4 weeks, and every day there’s a new “AI-powered IDE” on Product Hunt. Clearly, developers want AI assistance.
Yet despite these impressive numbers, I believe current AI coding tools are fundamentally solving the wrong problem. That’s why I’m building another one.
Hacked WordPress, Lost Rankings: My Jekyll Redemption Story
I’ve been running multiple WordPress blogs for my friends and family on my own VPS since ~2012. I didn’t bother checking them for updates, and surprise surprise they all got hacked.
This is my journey of how I fixed it and how the latest version of my blog was born.
Resumable Tests Save & Load State for Jest and NodeJS
At Metric, my latest accounting AI automation startup, we’ve built complex interconnected pipelines that query an LLM with multiple transactions and invoices.
Simple “Search” with LIKE in MySQL Sequelize
A simple way to implement a “search” feature into your node app is using the database engine to check for presence of tokenized search query. In my case, I’m using MySQL with the Sequelize ORM and needed to add a e-commerce like search form with product results for a client.