How I build with AI
This is not a resume. It's a show-and-tell: the systems running on my hardware right now, the tools that earned a permanent seat, the opinions I've paid for with my own time, and the experiments that didn't survive contact with me. Everything on this page is real, and most of it is running while you read this.
Running right now
wade-wiki
A personal wiki that maintains itself.
Two layers: raw captures that are never edited, and a wiki layer an LLM maintains on top — filing, linking, and compounding every thought I throw at it. The schema is a markdown file that works like a system prompt for my life. An always-on Mac Mini auto-commits the whole thing to a private repo every two hours and syncs it across three devices. I say something out loud on a walk; by the time I'm home it's filed, linked to five related ideas, and versioned.
It exists to fix what I call the graveyard problem: ideas that get captured and never linked, revisited, or built on. The wiki finds the connections I'd forget to make.
Burpee Counter
Voice counting designed around the AI's failure mode.
Speech recognition mishears a man gasping through rep 70 — that's a given, not a bug to file. So spoken numbers set the count rather than increment it: a missed detection heals itself the next time I say a number, and a sanity guard filters the nonsense. Designing around the model's weakness instead of pretending it isn't there is most of what "AI engineering" actually is.
AI Usage Meter
A menubar app that tracks how much AI I have left.
When you run this many models, quota is a household utility. This sits in the macOS menubar and shows where Claude, GPT, and Gemini stand so I stop finding out the hard way at 11pm.
The bench — tools in rotation, with verdicts
Opinions I've earned
-
Design around the failure mode, not the demo.
Every AI feature I've shipped got better the moment I stopped assuming the model would behave. Voice counting that self-heals beats voice counting that's occasionally perfect.
-
Raw stays raw.
The model never edits originals. It maintains a layer on top that cites them. That one rule is why I trust a machine to run my personal knowledge base: I can always check its work against an untouched source.
-
Files are the treasure. Tools are rentals.
Everything I care about lives in plain markdown and git. If my whole AI stack disappeared tomorrow, the knowledge survives in any text editor. I audit this on purpose, and I'd swap any vendor without ceremony.
-
Autonomy is a dial, not a switch.
Greenfield project at midnight? Full permissions, see you in the morning. Anything touching data I care about? Short leash, tight review. Knowing where to set the dial per task is the actual skill.
-
$0 marginal cost is a design constraint that makes you smarter.
Refusing to add a metered API forced local transcription, forced the always-on Mac Mini, forced better architecture. The bill stayed flat and the system got more interesting.
-
Specificity beats generality.
Small, sharp tools for one person with one real problem — built in an evening, used every day — beat the platform nobody asked for. Every AI company is building general. The opportunity is specific.
Didn't survive contact
LifeOS
b. January 2026 † superseded May 2026My first attempt at an AI life system: dump raw thoughts in, get insights out. The processing worked; the ritual didn't stick. Lesson: the system has to meet you where you already are — so the rebuild started from capture (talking while walking) instead of from reports. That rebuild became the wiki, and the wiki stuck.
The tutorial-following era
a kanban board and a project-management app that shall live in private reposBuilt other people's apps by following their prompts. Learned the tools, shipped nothing that mattered. Lesson: tutorials teach the tool; only your own problems teach the craft. Everything since has started from a problem I actually have.
An AI note-taking app
b. and † 2026, quicklyHalfway through building it I realized notes apps are where notes go to die — capture was never the hard part. The hard parts are resurfacing and connection, and that realization split into two things that shipped: Resurfacer and the wiki. Lesson: the graveyard is a fine place to find out what the real problem was.
The best way to evaluate any of this is to poke it. The counter is live, the code is on GitHub, and the wiki is running on a Mac Mini in a theatre in Manhattan as we speak. If you'd like the extended tour — get in touch. And yes, this page was drafted in a Claude Code session running inside my own wiki. Of course it was.