Experiments
Building is cheap now. Judgment is the expensive part.
It's never been a better time to be a builder. Innovation, foundation, and production all happen simultaneously. Below you'll find some works inspired by intellectual curiosity, a kids' coach request and a friend's story of unemployment.
Multi-agent debate
The AI Symposium
What would Ray Kurzweil and Shoshana Zuboff make of your question? The Symposium is a room where AI versions of the field's sharpest thinkers actually disagree, and you can put a live question to them.
The hard part wasn't the models. It was writing personas sharp enough to disagree the way the real people would.
Fourteen thinkers, each a persona prompt. Haiku screens the question and picks the matchup, Sonnet argues the turns.

Project confidence
Daylight
A room usually knows more than it says out loud. Daylight asks everyone the same three numbers privately before the work starts, then shows the team the spread. You see where the room actually disagrees on day one instead of month four, while it is still cheap to change course — and nobody had to be the one to say it.
In pre-launch now. 5 day project.
The five-answer floor is a Postgres view with security_invoker off, so no surface can show a spread early. The votes table has no primary key and no created_at.


Head-to-head voting
AI Face-off
Every day there is a new AI tool hitting the market and remarkable claims of quality and velocity. Face-off turns that into a game: two tools enter, you call the winner, the crowd builds a live scoreboard.
The judgment call: let the crowd be wrong. No expert override, just taste, recorded honestly.
Votes go from the browser straight to Supabase, no API route. If the database is unreachable the game still runs and the vote is dropped.
Shared vocabulary
Zones
Designing with Claude pays a translation tax: I'm looking at pixels, it's reading a DOM. Zones gives every region of a page a short id and a one-line job, kept in one markdown table, so z3 means the same region in the table, in the stylesheet, and out loud.
It's open in every build session now. Most of the tuning since has been deciding what not to add.
Press Z on localhost. The ids paint onto the page.Dev-only, so there is no link.


Anonymous testimony
Still Looking
The job market's human cost never gets counted. Still Looking is an anonymous, collective record of what it takes from the people moving through it: a witness project, not a job board.
This was a good branding and design exercise for working with AI.
Submissions arrive through Resend and land in Supabase. I read every one before it shows.
Verifiable credibility
Ask this site
Everything about you gets measured except whether you are any good at your job. Ask turns the claims on this site into something checkable: click one, and it answers from a knowledge base of real work, then names the people who will vouch for it and offers to introduce you.
A model will always find a way to say yes. Getting it to admit a gap took the longest.
No embeddings. Twelve markdown files indexed by lens and company at build time, then handed to Sonnet. Who vouches is chosen by rule, not by the model.

Consumer app
AccountaBALL
Kids' sports apps reward showing up, not getting better. AccountaBALL logs real reps, challenges, and keeps the coach and athlete grounded by reps.
The voice feature and court reps are getting the most positive feedback.
Voice counting is the browser's own speech API, so it works with nothing installed. Reps save on the device first; Supabase syncs them when it's there.

Designing an AI product means holding the whole system at once: the model's behavior, the interface's promise, and the person on the other side deciding whether to trust it.
These experiments are where I work that out. The tech is the agentic tooling, but it keeps coming back to communication and constraints: how do you tell a system, AI or human, what to build, why, and for whom?
That's the design leadership I bring to every product I work on, and how I fold AI into a team's craft.