Principal Product Manager at Microsoft. I build in the open: AI agents, local models on my own hardware, evals and receipts. Subscribe to my YouTube.

Trust the Model the Least. I've Been Building That at Home for Months.
BLUF (bottom line up front): This weekend Satya Nadella published Models as Insider Risks in the Super Intelligence Era. His line: “The most trustworthy Super Intelligence system will not be the one with the model we trust most. It will be the one that enables us to trust the model the least.” I agree, and I didn’t have to start this weekend. On my own hardware and my own time I’ve been running that architecture for months, and I’ve been writing it up in public as I went. ...

Don't Worry About the Terminator. Worry About David.
BLUF (bottom line up front): I’m just starting too. My data has lived in my Obsidian vault, my 2nd brain, for a while, but the practices around it were fragmented. They’re now coming together as a whole, and that whole complements, and at times runs ahead of, what I focus on at work: observability, accountability, governance and ownership. My rule for all of it: if you can’t see it, you can’t observe it; if you can’t observe it, you can’t measure it; if you can’t measure it, you can’t improve on it; and if you can’t improve on it, you get left behind. Qui non proficit deficit. This post is that rule applied to AI: worry less about the Terminator and more about what we teach the machines, share the responsibility with the labs, and own your data. ...

Limen: I Put a Camera at My Window and Asked Who Owns What It Sees
This week is Fix, Hack, Learn (FHL) at work (Microsoft), our internal week to chase a build we care about. Last FHL I worked on my agents and agentic loops, helping me scale myself and my work as a product manager. This time my project is personal, and it starts with a question I could not stop turning over: when a camera watches the front of my house, who owns what it sees? ...

What Happened When My Ducati Monster 821 Fell Off a Dealership Lift
TL;DR I brought my 2015 Ducati Monster 821 to Bob’s BMW for an ABS and traction-control (DTC) diagnostic. While it was in their care it fell off a service lift from about 3 feet, landed on its right side, petrol tank got damaged, along with the front wheel on the way down plus broken rear break pedal, etc. etc.. The written estimate for the damage came to $7,268.88. I looked at trading the bike instead of repairing it, but the trade number worked out to roughly $3,000 after the dealer’s service and inspection deductions, so I declined, BTW the trade for that bike and blue book is between $5K and $6K. The current path is a dealer-paid repair. This post is a factual record of what happened (happening), what the dealership did well so far, and what I am watching going forward. It is not written to bash anyone but to educate others in similar situation and also to ask for advice. ...

My Agents Were Passing Notes Through a 313KB Text File. So I Built Them a Message Board.
TL;DR My agents used to hand off work by appending to a single text file that had grown to 313KB. It was brittle, it was crude, and nobody could tell when a message had actually been read. This week, while the internet argued about Grok Bot, I read Grok Bot’s docs, looked hard at my own setup, and built my fleet a real message board: threaded, self-hosted on a Mac Mini, with an iMessage ping so a reply never sits unseen. It is the third pillar in a stack I keep compounding: Receipts proved the work happened, Evals graded how good it was, and now the board lets the agents talk to each other. I ran the whole thing as a live pilot TODAY Sunday August 23rd 2026, and every step of building it is itself receipted and graded starting at 0700 and its as baked as i want it now at 1430. ...

Doug Was Right: I Swapped In The MoE, And The Concurrency Math Changed
Two days ago I posted 36 barrier-synchronized loads against 1 local model and let the numbers answer a question Reddit handed me. That post ended with a promise. A reader named Doug Ware, who builds applied AI systems for a living, had replied with the one caveat I had not tested, and I said out loud that measuring it was the next thing I would do. This is that measurement. I did not wait, I did not hand-wave it, and I kept every honest asterisk in. ...

You Asked, So I Measured: What Concurrency Actually Costs On One Local Model
Over last week and these last 2 days in this week I posted measured answers to readers both in Twitter and Reddit who asked whether my experiments of 2 local agents on 1 Mac run in parallel or take turns. The answers was that they share one continuous batch, batching is real, and 3 quiet choices collapse it. I thought that was the end of it. It was not. The comments were better than my post, WHICH IS AWESOME, becaue this is the crowdsourcing of brain power I love. I not trying to be a KNOW IT ALL Im trying to be a LEARN IT ALL! ...

I Added a Second Local Agent This Week. Here Is the Receipt for Every Human Decision Behind It.
This week I trialed a second local coding agent, Hermes from Nous Research, on my own MacBook Pro M3 Max, pointed at the same local Qwen 3.8 model I already run. I installed it additively, so nothing already working could break, governed it with manual approvals, and did not stop until it proved it behaves. Here is the trial, in tables and screenshots. One housekeeping note before the story. Last week’s post got called AI slop on Reddit. My full answer to that, and the standing standard I now hold my writing to, lives on its own page: On Slop, And Who Gets To Call It That. It is not the point of this post, so I moved it out of the way. Back to Hermes. ...

Two Agents, One Local Model: Do They Run in Parallel, or Take Turns? I Measured It.
A reader on Reddit asked me a sharp question about my last post. I had trialed a second local coding agent, Hermes, pointed at the same local Qwen 3.8 model my other agent already uses. His question was simple. Did I ever run both agents at the same time, two separate harnesses hammering one model on one Mac at once. And what about Hermes spawning its own sub-agents against that same endpoint. Is any of that predictable. ...

I Swapped My Local Coding Model Overnight From a Hotel. The Agent Graded the Upgrade Itself.
TL;DR Local models are how I run my community work, my volunteer projects, my side hustles, and my musings. Two reasons, both simple: Cost. None of this work should bill against a frontier account. Trust. Client and customer data stays on my own disk, away from the labs. Bottom line up front: I am running Qwen3.8-27B (4-bit) on my MacBook Pro M3 Max, 128 GB of unified memory and a 40-core GPU, my personal dev rig, driven by an OpenCode harness. ...