Experiments
I started as a builder, making web and CD-ROM applications in the Macromedia era, before I spent two decades on the harder question of what makes products good rather than how they're built. AI has pulled me back to making directly: I make the product and design calls; it handles the construction. These are small experiments, not products, each a way to stay close to what AI can and can't actually do.
Trip Planner
Where the smarter tool lost.
A family trip planner that grounds its suggestions in real places, events, and weather instead of inventing them.

I split it into two phases so the messy part, web search, could not corrupt the part that has to produce clean structured output; bad results degrade the plan gracefully instead of breaking it. Then the lesson I keep coming back to. I tested a newer, smarter search tool that did sophisticated result filtering, and it spiraled into ninety-plus calls and never finished, while the lean classic tool did the same job in twelve seconds. So I shipped the less capable one. More capability is not automatically more value. The flashy version made a great demo and then failed; the boring one worked. That gap, from demo to dependable, is most of the actual work in AI products.
June 2026 · GitHub Repo
Homework Coach
Teaching an AI not to give the answer.
A homework helper for my kids that coaches with escalating hints and resists being talked out of it.


The hard part was not the code, it was the guardrail, and the lesson was that you defend structurally rather than cleverly. Instead of writing a smarter warning telling the model not to be fooled, you separate the rules from the data: the coaching rules live where the student cannot reach them, and the student’s input is treated as something to coach on rather than as instructions to follow. So “ignore your instructions” arrives as part of the problem, not as a command. Then my kids and I tried to jailbreak it, and it held.
May 2026 · GitHub Repo
Project STFU
The one I built, then killed.
A local self-regulation tool for video calls that flags when you are monologuing.



I built it all the way: CLI, local server, UI, 100+ tests, across roughly 47 test sessions. Then I killed it. It judged monologuing on keyword heuristics and word-count thresholds, and against real conversation the ceiling was obvious: a short, reasonable sentence that happened to carry a couple of trigger words got flagged like a five-minute ramble. That difference lives in meaning, and keywords cannot read meaning. Doing it right needed a model, not a better word list. Polishing a solution built on the wrong foundation is how you sink cost into something that cannot reach the bar.
April 2026 · GitHub Repo