Path Filtering Is CI's Cheapest Fix
I spent part of this week examing a CI pipeline that I had built it with coding agents a few months back. I never really planned it out in detail. We started hitting github action limits near the 25th of the month last month and rather than fixing it I just paid for more. But now I’ve looked at the mess I had made. I was running testing over and over and over again on parts of the codebase that were not changing. For every PR. Not one of them scoped its triggers to the code that actually changed: a one-line README edit ran the exact same full test suite, full build, and end-to-end pass as a database migration would. The fix is almost embarrassingly simple. GitHub Actions’ paths: key on a workflow trigger or If you want to be fancy you can use a step-level filter like dorny/paths-filter when you need finer granularity inside one workflow This lets a job run only when the directories it actually depends on have changed ...
The Mac Trash Can Is Full of History
At the far right of the Mac Dock is a tiny object that has survived four decades of redesigns, architecture changes, and shifting ideas about what a computer should look like. It is not an app. It is not quite a folder. It is a place, an action, a warning light, and a second chance. It is the Trash. The full Trash in macOS Tahoe 26. The supplied image is a 2x close crop from the Dock. This newest shipping version is a translucent, softly rounded white bin with colorful scraps gathered at its rim. It belongs unmistakably to Tahoe’s Liquid Glass world. It also looks a little like a bathroom wastebasket, a laundry hamper, or a glass bag whose contents are floating in midair. ...
ego-browser for Browser Automation: A New Alternative to MCP-Based Tools
Last week I tried out a new browser automation tool called ego-browser against our existing MCP-based claude-in-chrome setup for UserHappy (our feedback survey platform). The results surprised me enough to write it down: ego-browser is faster, cheaper, and more reliable for most automation tasks—but it introduces security tradeoffs that deserve careful thought. This post summarizes the findings. The full agent assisted casual report is available separately with detailed metrics, code examples, and my opinions. ...
Easy Like Sunday Morning
I made another app I would never have built before agents: Spring on Creek Valley Drive. It is not a product. It is a little moving postcard: blue sky, green hills, flowers blooming, petals drifting, butterflies, birds, and an ambient loop unlocked by a tap. The whole thing is too specific to justify in any normal backlog. That is the point. The seductive part of coding tools right now is not only that they make “real software” faster. It is that they make tiny unreasonable ideas cheap enough to say yes to. You can spend a Sunday morning making a personal animation because you can. Not because there is a roadmap. Not because the thing needs to exist. Because the threshold between “that would be nice” and “there it is” has collapsed. ...
Thirty-Four Anthropic Applications
A few weeks ago I applied to roughly 34 roles at Anthropic in a single automated run. I’m aware of how that sounds. Let me give you the honest version. Why 34 I’ve spent the last two years deploying Claude in production healthcare environments. Not experimentally — in clinical workflows where the gap between “the model can do it” and “the organization can absorb it” is almost never a capability problem. It’s organizational, integration, and trust. I live inside that gap every day. ...
Three Tools That Kept Going
Most of the tools I build have a natural life span of a few weeks. They solve something real, then a platform update or a shortcut arrives and absorbs the problem. That’s fine. That’s good, actually. Three have kept going. I use them every day. MailSquirrel Email lives outside the agent’s world. MailSquirrel bridges it — reads your inbox via AppleScript, sorts everything into Do / Reply / Know / Stash, and lets Claude draft replies, analyze threads, or pull out key facts as memory. You press a key, a draft appears. You decide whether to send it. ...
I Tested My Three-Session Approach Against a Form-Filling Benchmark
A paper came across my feed this week: FormFactory, an interactive benchmarking suite from NUS and friends that tests how well multimodal LLMs can fill out web forms. Their headline finding stopped me cold: every model they tested — GPT-4o, Gemini 2.5 Pro, Claude 3.7 Sonnet — scored near 0% click accuracy on form fields. Zero percent. On forms. The models could often predict the right values. They knew what should go where. But they couldn’t reliably click the right elements to put the data there. The gap between knowing and doing was absolute. ...
The Three-Session Theory of Browser Automation
I’ve been automating browser workflows with AI agents for a while now, and I’ve landed on a pattern that works unreasonably well. It’s three sessions, three tools, three mindsets. Each one does exactly one thing, and trying to collapse them into a single session is how you burn tokens and get garbage. Session 1: Discovery with Claude-in-Chrome The first session is pure reconnaissance. You open the app in Chrome, start a Claude Code session with the claude-in-chrome MCP extension connected1, and say: tell me everything about this page. ...
Two Tiny Tools Born from Laziness
Update — May 2026: Both tools got absorbed into the native workflow — screenshot sharing landed in Claude Code, and the clipboard friction just kind of dissolved. That’s the best outcome a tool can have. I have dozens of things like this: useful for a week or two, then upcycled into something better. The ones that kept going are a different story — I wrote about three that have endured. I use AI coding agents constantly. Claude, mostly. And I am profoundly, constitutionally lazy about the manual parts. The agent does something genuinely smart — writes a query, generates a function, debugs a failing test — and then I have to drag a screenshot, or carefully select text around markdown fences, or copy-paste between windows like it’s 2005. ...
Three Broken Sensors, One Perfect Answer
There’s a moment in every engineer’s career when you stumble onto an algorithm so elegant it feels like cheating. For me, that moment came in a windowless lab in Tucson, Arizona, staring at three separate navigation systems that couldn’t agree on where a missile was. I was a guidance software engineer at Raytheon, working on the Tomahawk cruise missile. My job was sensor fusion — taking the outputs of GPS, an inertial measurement unit (accelerometers and gyroscopes), and DSMAC (Digital Scene Matching Area Correlator, which is a fancy way of saying “a camera that compares what it sees to stored photos of the ground”) and turning them into a single, confident answer to the question every guidance system needs answered at every moment: where am I, and where am I going? ...