Madness Driven Design: Don Quixote, Sancho Panza, and Your AI Copilot

TL;DR: An LLM is like Don Quijote—you can’t cure his madness, it’s stochastic by nature. The solution isn’t to fix the madman but to assign him a deterministic Sancho Panza as a sidekick. MDD consists of two layers: first, you study the errors it makes to design tools that absorb those mistakes, and then you let it loose with those tools to verify you’ve closed any gaps. Design for madness, not against it. ...

March 26, 2026 · Fernando

Why My CLI Output Isn't XML (And How I Ended Up Reinventing TOON Without Knowing It)

TL;DR: When your primary consumer is an LLM, XML and JSON waste tokens by repeating structure in every element. A compact positional format reduces consumption by 50%. Turns out this idea already had a name: TOON (Token-Oriented Object Notation). Same selective pressure — expensive tokens and repeated keys — same solution. Anthropic uses XML for everything. Their system prompts are wrapped in <instructions>, their examples in <example>, their tools in <function>. If you work with Claude, you live surrounded by tags. ...

March 26, 2026 · Fernando

Adversarial Programming: When Your AI Copilot Invents APIs

TL;DR: Your AI will invent API fields that sound perfect but don’t exist. The solution isn’t hoping it gets it right: download the real schema before writing code, capture real responses as fixtures, and separate fetch from processing so you can test without the network. Adversarial programming: code assuming your copilot lies. Have you ever written code against an API where everything compiled, tests passed, the logic made sense… and when you connected to the real API, nothing worked? ...

March 26, 2026 · Fernando

Linear Agent Isn’t What You Need. Your Agent Was Already in the Terminal

TL;DR: Linear just launched an integrated AI agent. Cool, but it doesn’t address the problem developers face when working with coding agents in the terminal. What we actually need isn’t another AI agent but a rock-solid CLI that our existing agents can use seamlessly. And if we’re going to build one, it should be in Rust — which is why lql exists: a CLI for Linear, purpose-built for agents. Yesterday, Linear launched their AI agent. It’s an integrated chatbot that gets your roadmap, your issues, and even your code. You can chat with it on Slack, mention it in a comment, and it’ll synthesize context, suggest actions, and even create issues for you. ...

March 25, 2026 · Fernando

Transform and Conquer: How Google Compresses LLMs 6x by Changing Coordinates

Multiplication is hard. Addition is easy. Any elementary school kid knows this. What they don’t know is that logarithms exist precisely to exploit this asymmetry: you convert multiplication into addition, operate in the simple world, then undo the transformation. The result is correct. The effort, a fraction. This pattern — transform the problem to a space where solving it is trivial, solve it, then transform back — is one of the most powerful in all of engineering. FFT does this with signals. Logarithms do it with products. And now Google just published a paper that does it with language model compression. ...

March 25, 2026 · Fernando

Your AI Writes Code That Compiles but Means Nothing (and a Linter Can Catch It)

Imagine you ask someone to build you a bookshelf. They deliver it. It’s beautiful. It has shelves, screws, everything in place. You lean it against the wall, and it collapses. The screws are fake. They look like screws, but they’re made of plastic. That’s what an LLM does when it abuses the type system. It gives you code that compiles, passes tests, and looks correct. But under the hood, where there should be meaningful types, there are strings. Where there should be explicit state, there’s a nil that means three different things depending on who reads it. And where there should be an enum with two cases, there’s a == "claude" that one day someone will misspell, and no one will notice until production. ...

March 23, 2026 · Fernando

Your plan.md Needs a Devil's Advocate (and Codex Volunteers for the Job)

Have you ever written a technical plan at 11 PM, convinced it was flawless, only to realize the next morning you forgot authentication? Happens to me. More than once. And the worst part isn’t the oversight—it’s that when you use AI to plan things out, the plan sounds so coherent your brain stops looking for flaws. Claude generates a document with sections, dependencies, execution order, and it all checks out. Seems like a senior engineer’s masterpiece. But nobody has challenged it. ...

March 23, 2026 · Fernando

Mole: The Mac Cleanup Tool You Didn’t Know You Needed (But Only Two Commands Matter)

How many gigabytes of junk are sitting on your Mac right now without you even noticing? I’m not talking about duplicate photos from that 2019 barbecue or your Downloads folder looking like a digital landfill. I’m talking about build artifacts. node_modules from projects you haven’t touched since the pandemic. Build caches for frameworks you barely remember installing. Xcode’s derived data piling up like dust under the bed. I spent months with my drive hovering at 85% full, juggling what to delete. Then I found Mole, ran mo purge --dry-run, and the screen spat out a number: 17 GB recoverable. Three hundred and fifty forgotten build artifacts quietly rotting in the dark. ...

March 23, 2026 · Fernando

Working with an AI agent is like living with the protagonist of Memento

Imagine you have a brilliant coworker. Solves complex problems, writes clean code, understands what you ask on the first try. But every morning, when you tell them “open the course project,” they look at you with a poker face and ask: “What course? Where is it?” Every day. Without exception. It’s exactly like living with Leonard Shelby, the protagonist of Memento. The guy who can’t form new memories and has to tattoo important things on his body to remember them. ...

March 14, 2026 · Fernando

A Kalman Filter to Stop Bothering the Server (Or the Guilty Pleasure of Over-Engineering)

I have a menu bar app that needs to know a number. A percentage from 0 to 100. To get it, it calls a server every 30 seconds. Do the math: 30 seconds means 2 calls per minute, 120 per hour, 960 in an 8-hour workday. Almost a thousand HTTP requests per day to read a number that sometimes doesn’t change for 20 minutes. That’s not monitoring. That’s harassment. The real problem isn’t technical. It’s political. When you depend on an API you don’t control — that’s not public, that has no documented rate limits, that belongs to a company that can change their Terms of Service any given Tuesday — every unnecessary request is a risk. Not of timeout. Of getting cut off. ...

March 12, 2026 · Fernando