Self-improving AI products.And the teams that build them.

First we agentified our own daily work. Then we baked AI into the products and put it in the hands of users. Now we can build the feedback loop into the product itself: every user action, evaluation result and outcome is traced back to the prompts, skills, thresholds and weights that shaped the result, and the next version takes shape while we sleep.

Back-propagation, for products

Self-improving by design

Each AI product below lets its signals flow back through the engine and change it. This is the pillar I would bring to your team.

Forward pass: produceInputa user ask, a triggerDatarecords, sources, contextPrompts, tools, skillsversioned, tracedModelchosen, benchmarkedRules and weightsthresholds, playbooksagentic loop: tool call, more context, run again, until doneOutputa stamped resultUsers,marketoutcome, user action,review verdict,outside dataVerify and attributeself-reports checked against the logjoined to the result that caused itBackward passCount and rebuildmore records, more matchesautomatic, on a scheduleOutcome per versionusage and lift, per stampthe winner is the next versionBenchmark the candidateagainst a reference setswapped in only if it winsPropose, shadow, approvesmall change, held-out testa person approveseach layer has its own gate: automatic where a wrong change is cheap to undo, a person where it is noteach change bumps that layer version, so the next result carries a new stamp and its signal can be compared with the last versionRoadmap, curated by a personself-reflections, verified and rankedbecome new tools, data and rulesOutside the automated loopthe model’s own account of what it lacked goes to people who decide what to build next, not to the gate
The forward pass is what every product has: retrieve, prompt, generate, apply the rules. The backward pass is what makes it self-improving: each signal is verified, joined to the result that caused it, and then changes one layer, which ships as a new version. The model’s self-reflection takes a separate path, into a roadmap that people curate.

Let the product be its own product manager for what can be measured, and free the people for what has to be judged. Every product built this way carries a flywheel: a versioned unit of output, a signal from outside the model, attribution back to whatever produced the output, a score for each source that shaped it, and a change to one layer that ships as a new version.

The page behind each product shows how its loop is built: what is captured, how it is attributed to the thing that produced it, and how a change ships.

Read the pattern

Four of the products below run this loop. The pattern page shows how, one part at a time.

Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Sep Mon Wed Fri 28 Sep 2025 29 Sep 2025 30 Sep 2025 01 Oct 2025 02 Oct 2025 03 Oct 2025 04 Oct 2025 05 Oct 2025 06 Oct 2025 07 Oct 2025 08 Oct 2025 09 Oct 2025 10 Oct 2025 11 Oct 2025 12 Oct 2025 13 Oct 2025 14 Oct 2025 15 Oct 2025 16 Oct 2025 17 Oct 2025 18 Oct 2025 19 Oct 2025 20 Oct 2025 21 Oct 2025 22 Oct 2025 23 Oct 2025 24 Oct 2025 25 Oct 2025 26 Oct 2025 27 Oct 2025 28 Oct 2025 29 Oct 2025 30 Oct 2025 31 Oct 2025 01 Nov 2025 02 Nov 2025 03 Nov 2025 04 Nov 2025 05 Nov 2025 06 Nov 2025 07 Nov 2025 08 Nov 2025 09 Nov 2025 10 Nov 2025 11 Nov 2025 12 Nov 2025 13 Nov 2025 14 Nov 2025 15 Nov 2025 16 Nov 2025: SPINES 17 Nov 2025: SPINES 18 Nov 2025 19 Nov 2025 20 Nov 2025: SPINES 21 Nov 2025: SPINES 22 Nov 2025: SPINES 23 Nov 2025: SPINES 24 Nov 2025 25 Nov 2025: SPINES 26 Nov 2025: SPINES 27 Nov 2025: SPINES 28 Nov 2025: SPINES 29 Nov 2025: SPINES 30 Nov 2025: SPINES 01 Dec 2025: SPINES 02 Dec 2025 03 Dec 2025: SPINES 04 Dec 2025: SPINES 05 Dec 2025: SPINES 06 Dec 2025: SPINES 07 Dec 2025: SPINES 08 Dec 2025 09 Dec 2025: SPINES 10 Dec 2025: SPINES 11 Dec 2025: SPINES 12 Dec 2025: SPINES 13 Dec 2025: SPINES 14 Dec 2025: SPINES 15 Dec 2025: SPINES 16 Dec 2025: SPINES 17 Dec 2025: SPINES 18 Dec 2025: SPINES 19 Dec 2025: SPINES 20 Dec 2025: SPINES 21 Dec 2025: SPINES 22 Dec 2025: SPINES 23 Dec 2025: SPINES 24 Dec 2025 25 Dec 2025: SPINES 26 Dec 2025: SPINES 27 Dec 2025: SPINES 28 Dec 2025: SPINES 29 Dec 2025: SPINES 30 Dec 2025: SPINES 31 Dec 2025: SPINES 01 Jan 2026: SPINES 02 Jan 2026: SPINES 03 Jan 2026: SPINES 04 Jan 2026: SPINES 05 Jan 2026: SPINES 06 Jan 2026: SPINES 07 Jan 2026: SPINES 08 Jan 2026: SPINES 09 Jan 2026 10 Jan 2026: SPINES 11 Jan 2026: SPINES 12 Jan 2026 13 Jan 2026 14 Jan 2026: SPINES 15 Jan 2026 16 Jan 2026: SPINES 17 Jan 2026 18 Jan 2026: SPINES 19 Jan 2026: SPINES 20 Jan 2026: SPINES 21 Jan 2026 22 Jan 2026: SPINES 23 Jan 2026 24 Jan 2026 25 Jan 2026: SPINES 26 Jan 2026: SPINES 27 Jan 2026: SPINES 28 Jan 2026: SPINES 29 Jan 2026: SPINES 30 Jan 2026 31 Jan 2026 01 Feb 2026: SPINES 02 Feb 2026: SPINES 03 Feb 2026: SPINES 04 Feb 2026 05 Feb 2026 06 Feb 2026 07 Feb 2026: SPINES 08 Feb 2026 09 Feb 2026: SPINES 10 Feb 2026: SuperAgentiChat 11 Feb 2026: SuperAgentiChat 12 Feb 2026: SuperAgentiChat 13 Feb 2026: SuperAgentiChat 14 Feb 2026: SuperAgentiChat 15 Feb 2026: SuperAgentiChat 16 Feb 2026: SuperAgentiChat 17 Feb 2026: SuperAgentiChat 18 Feb 2026: SuperAgentiChat 19 Feb 2026: SuperAgentiChat 20 Feb 2026 21 Feb 2026 22 Feb 2026: SuperAgentiChat 23 Feb 2026: SuperAgentiChat 24 Feb 2026: SuperAgentiChat 25 Feb 2026: SuperAgentiChat 26 Feb 2026: SuperAgentiChat 27 Feb 2026: SPINES, SuperAgentiChat 28 Feb 2026: SuperAgentiChat 01 Mar 2026 02 Mar 2026 03 Mar 2026: SuperAgentiChat 04 Mar 2026: SuperAgentiChat 05 Mar 2026: SuperAgentiChat 06 Mar 2026: SuperAgentiChat 07 Mar 2026: SuperAgentiChat 08 Mar 2026 09 Mar 2026: SuperAgentiChat 10 Mar 2026 11 Mar 2026: SuperAgentiChat 12 Mar 2026: SuperAgentiChat 13 Mar 2026 14 Mar 2026: SuperAgentiChat 15 Mar 2026 16 Mar 2026: SPINES, SuperAgentiChat 17 Mar 2026: SPINES, SuperAgentiChat 18 Mar 2026: SPINES 19 Mar 2026: SPINES, SuperAgentiChat 20 Mar 2026: SPINES, SuperAgentiChat 21 Mar 2026: SPINES, SuperAgentiChat 22 Mar 2026: SPINES, SuperAgentiChat 23 Mar 2026: SuperAgentiChat 24 Mar 2026: SPINES, SuperAgentiChat 25 Mar 2026: SuperAgentiChat 26 Mar 2026: SPINES, SuperAgentiChat 27 Mar 2026: SuperAgentiChat, SPINES 28 Mar 2026 29 Mar 2026 30 Mar 2026: SuperAgentiChat, SPINES 31 Mar 2026: SPINES, SuperAgentiChat 01 Apr 2026: SuperAgentiChat 02 Apr 2026: SPINES, SuperAgentiChat 03 Apr 2026: SuperAgentiChat 04 Apr 2026: SuperAgentiChat 05 Apr 2026: SuperAgentiChat 06 Apr 2026: SuperAgentiChat 07 Apr 2026: SPINES, SuperAgentiChat 08 Apr 2026: SPINES, SuperAgentiChat 09 Apr 2026: SuperAgentiChat 10 Apr 2026: SuperAgentiChat 11 Apr 2026: SPINES 12 Apr 2026: SPINES, SuperAgentiChat 13 Apr 2026: SPINES, SuperAgentiChat 14 Apr 2026: SPINES 15 Apr 2026 16 Apr 2026: SPINES 17 Apr 2026: SPINES 18 Apr 2026: SPINES 19 Apr 2026 20 Apr 2026: SPINES 21 Apr 2026: SPINES 22 Apr 2026: SPINES 23 Apr 2026: SPINES 24 Apr 2026: SPINES 25 Apr 2026: SPINES, SuperAgentiChat 26 Apr 2026: SuperAgentiChat, SPINES 27 Apr 2026: SPINES 28 Apr 2026: SPINES 29 Apr 2026: SPINES 30 Apr 2026 01 May 2026 02 May 2026: SDC101, SPINES 03 May 2026: SDC101, SPINES 04 May 2026: SPINES 05 May 2026 06 May 2026: DropRenew, SDC101 07 May 2026: SDC101, DropRenew 08 May 2026: DropRenew 09 May 2026: DropRenew, SDC101 10 May 2026: SDC101, DropRenew 11 May 2026: DropRenew, SDC101 12 May 2026: SDC101, DropRenew 13 May 2026: SDC101, DropRenew 14 May 2026: DropRenew 15 May 2026: SDC101, DropRenew 16 May 2026: SDC101, DropRenew 17 May 2026: SDC101, DropRenew 18 May 2026: SDC101, DropRenew 19 May 2026: SPINES, SDC101, DropRenew 20 May 2026: DropRenew, SPINES, SDC101 21 May 2026: DropRenew, OPERATIVY, SDC101 22 May 2026: SPINES, SDC101 23 May 2026: OPERATIVY, DropRenew, SDC101 24 May 2026: OPERATIVY 25 May 2026: OPERATIVY, DropRenew, SPINES, SDC101 26 May 2026: OPERATIVY, DropRenew 27 May 2026: SDC101, DropRenew, OPERATIVY 28 May 2026: DropRenew, SuperAgentiChat, OPERATIVY, SPINES 29 May 2026: OPERATIVY, SuperAgentiChat, DropRenew, SPINES 30 May 2026: DropRenew 31 May 2026: DropRenew, OPERATIVY, SuperAgentiChat, SDC101 01 Jun 2026: DropRenew, SPINES 02 Jun 2026: DropRenew, SDC101 03 Jun 2026: DropRenew, SDC101 04 Jun 2026: SDC101, DropRenew, SPINES, OPERATIVY 05 Jun 2026: OPERATIVY, SDC101, SPINES, DropRenew 06 Jun 2026: OPERATIVY, DropRenew 07 Jun 2026: DropRenew, OPERATIVY 08 Jun 2026: DropRenew, OPERATIVY 09 Jun 2026: SDC101 10 Jun 2026: SPINES, SDC101, OPERATIVY, DropRenew, SuperAgentiChat 11 Jun 2026: SPINES 12 Jun 2026: DropRenew, OPERATIVY 13 Jun 2026 14 Jun 2026: SPINES, OPERATIVY 15 Jun 2026: SPINES 16 Jun 2026: SPINES, OPERATIVY, DropRenew 17 Jun 2026: OPERATIVY, DropRenew 18 Jun 2026: DropRenew, OPERATIVY 19 Jun 2026 20 Jun 2026: DropRenew 21 Jun 2026 22 Jun 2026: DropRenew 23 Jun 2026: OPERATIVY, DropRenew 24 Jun 2026: OPERATIVY 25 Jun 2026: OPERATIVY, DropRenew 26 Jun 2026: OPERATIVY, DropRenew 27 Jun 2026: DropRenew 28 Jun 2026 29 Jun 2026 30 Jun 2026 01 Jul 2026 02 Jul 2026 03 Jul 2026 04 Jul 2026 05 Jul 2026 06 Jul 2026 07 Jul 2026 08 Jul 2026 09 Jul 2026 10 Jul 2026 11 Jul 2026 12 Jul 2026: SPINES, OPERATIVY, DropRenew 13 Jul 2026: SuperAgentiChat 14 Jul 2026 15 Jul 2026 16 Jul 2026: DropRenew, SuperAgentiChat, OPERATIVY 17 Jul 2026: DropRenew, OPERATIVY 18 Jul 2026: DropRenew, SDC101 19 Jul 2026: SPINES, DropRenew 20 Jul 2026: SPINES, DropRenew 21 Jul 2026: SPINES 22 Jul 2026: OPERATIVY, SuperAgentiChat 23 Jul 2026: OPERATIVY, SDC101 24 Jul 2026: OPERATIVY 25 Jul 2026: SDC101, OPERATIVY 26 Jul 2026: DropRenew 27 Jul 2026: DropRenew 28 Jul 2026: DropRenew, SPINES 29 Jul 2026: DropRenew 30 Jul 2026: DropRenew, SDC101 31 Jul 2026: DropRenew 01 Aug 2026: DropRenew, SDC101 02 Aug 2026 03 Aug 2026: OPERATIVY, DropRenew, SPINES 04 Aug 2026: DropRenew 05 Aug 2026: DropRenew, OPERATIVY 06 Aug 2026: DropRenew, SPINES 07 Aug 2026: SPINES 08 Aug 2026: SDC101 09 Aug 2026 10 Aug 2026: DropRenew, SDC101 11 Aug 2026: SPINES, OPERATIVY 12 Aug 2026: DropRenew, OPERATIVY, SPINES 13 Aug 2026: DropRenew 14 Aug 2026 15 Aug 2026 16 Aug 2026: SPINES, DropRenew, SDC101 17 Aug 2026: SPINES, DropRenew, OPERATIVY 18 Aug 2026: SDC101, DropRenew, OPERATIVY 19 Aug 2026: DropRenew, SPINES, SDC101 20 Aug 2026: DropRenew, SPINES 21 Aug 2026: DropRenew, OPERATIVY 22 Aug 2026: DropRenew 23 Aug 2026: DropRenew 24 Aug 2026: DropRenew, SPINES 25 Aug 2026: DropRenew, SPINES 26 Aug 2026: DropRenew, SPINES 27 Aug 2026 28 Aug 2026: DropRenew 29 Aug 2026 30 Aug 2026 31 Aug 2026: SPINES, DropRenew 01 Sep 2026: DropRenew 02 Sep 2026: SPINES, DropRenew 03 Sep 2026: DropRenew 04 Sep 2026: DropRenew, SDC101 05 Sep 2026: DropRenew, SDC101 06 Sep 2026: DropRenew 07 Sep 2026: DropRenew 08 Sep 2026: DropRenew, SPINES 09 Sep 2026: DropRenew 10 Sep 2026: DropRenew 11 Sep 2026: DropRenew, SPINES 12 Sep 2026: SPINES, DropRenew 13 Sep 2026: DropRenew, SDC101 14 Sep 2026: DropRenew 15 Sep 2026: SuperAgentiChat, DropRenew 16 Sep 2026: SPINES, SuperAgentiChat, DropRenew 17 Sep 2026: SPINES, DropRenew 18 Sep 2026 19 Sep 2026: DropRenew 20 Sep 2026 21 Sep 2026 22 Sep 2026: SPINES, DropRenew 23 Sep 2026 24 Sep 2026: SPINES 25 Sep 2026 26 Sep 2026: SDC101, SPINES 27 Sep 2026: SDC101, SPINES, DropRenew, SuperAgentiChat 28 Sep 2026: SPINES 29 Sep 2026: SPINES, DropRenew
Commits to my own products, updated daily. Client work is not included. Hover a square to see which products each day went to.

Tales from the loop

Work

All in production since 2024, each designed, built and run end to end with Claude Code. Four of them run the loop.

SuperAgentiChat superagentichat.comFinancial research agent A financial research agent that turns a question into a professional-grade analysis report. An agentic loop with dynamic context management works across 40+ tools, numerous data sources and 70+ built-in skills. It reads your files, runs code, charts the data and writes output files, with proprietary OSINT analysis and bias detection built in. Vercel AI SDK, Next.js, Neon Postgres, Paddle billing Live
My role

Everything from the research loop to the checkout flow.

Learns from use. Every answer is judged and voted on, and the winners become the next version of the prompts and tools.

DropRenew droprenew.comDecision system An operating system for a domain portfolio. A weekly AI renewal committee weighs the evidence on every expiring name and shows its reasoning before you renew or drop. Around it: an AI wizard that sorts the portfolio into investment themes, a weekly market-intelligence issue matched to those themes, pricing strategy tools, and a post-mortem on every name you let go. TypeScript, Supabase, Replicate, Inngest jobs, registrar APIs Live
My role

What started as a personal project to manage my own domain portfolio grew into a consumer product. A scouting mechanism harvests publicly shared knowledge from the domain-investing world and distils it into market consensus and opinions that feed the roadmap.

  • Portfolio tracking across registrars: costs, valuations, traffic and listings in one table
  • Weekly market intelligence: comparable sales, trademark radar and emerging vocabulary, matched to your themes
  • Post-mortem on drops: who re-registered the name, what they built, and whether the call was right
  • How it learns: measured against real sales
  • Open droprenew.com

Learns from use. Every override, and every real sale or drop, is scored against the engine that made the call. A change ships only if it beats it.

OPERATIVYOperations engine A marketing engine for an owner-operator running several brands. It feeds on market news and a corpus of marketing knowledge to produce content for multiple channels, aimed at the specific goals of each brand. The work happens overnight, and the operator's morning is an hour or two of yes, no or edit calls on prepared drafts. Remix, TypeScript, Neon Postgres, Graphile Worker, Railway Internal
My role

The tool I use to run my own brands, so I am its first and most demanding operator. Every morning's yes, no or edit is mine, and so is the cost of a weak post.

  • Overnight pipeline: news ingest, idea synthesis, drafts and reconciliation
  • Morning triage across every brand, each with its own thesis and voice
  • A browser helper fills the LinkedIn composer with an approved draft, and you click Post
  • How it learns: plays judged by their drafts
  • Ask about it

Learns from use. Two loops. Every post carries a tracking link, so what it brings back is traced to the plays that shaped it, and plays that lose more than they win are retired. And the engine drafts more candidates than get published, so each clearance teaches it the operator's preferences.

SPINES getspines.comBook discovery A new kind of book discovery for serious readers. Point a camera at a bookshelf and every spine becomes a known book. SPINES then shows which books keep appearing together on real shelves, and leads you to the one at the edge of what you know instead of the most popular one. Shelfology, its analysis layer, reads your own shelf back to you: what you collect, which spines are rare, and whose library resembles yours. Other agents can read shelves too, through a public API, an SDK and an MCP server. TypeScript, Roboflow, vision models, MCP, Node SDK Live
My role

A passion project, born of being an avid non-fiction reader. I am building a first-of-its-kind database of how people's reading choices are reflected in their home libraries, one shelf at a time.

Learns from use. Today the text on each spine is read to identify the book. Every approved shelf turns those readings into labelled spine images, the training set for tomorrow's vision classifier that knows a book by its spine alone. The shared catalogue grows with each shelf too, so the next photo matches faster.

Self Driving Cars 101 selfdrivingcars101.comPhysical AI community A global, open community and network of meetup groups for everything about autonomous vehicles: the technology, the business, the debate and the impact. Volunteer-run since 2016, 6,000+ members, and no paid sponsors steering the agenda. The website is the community's hub: its resources, learning material, weekly newsletter and a locator for the ten local meetup groups. Next.js, Postgres, Resend, Playwright Live, growing
My role

Founder and general manager. I started it in 2016 as a home for the people building physical AI on the road, and I still run it.

  • Weekly Briefing with double opt-in, an archive, and an admin studio to assemble each issue
  • Learn hub: thirteen lessons and a glossary, with a generated llms.txt so agents can read them too
  • Open selfdrivingcars101.com

Old, new, borrowed, blue

How I work

Every item below lives in the code of the products above.

Something old

Good engineering

The discipline I asked of engineering teams, applied to myself and to the agents I direct.

  • Decisions before code. Architecture decision records in every AI product, and a hard gate: design, approval, plan, then code. docs/adr/
  • Tests first. Model providers are mocked, so a feature fails loudly without spending a token. test-utils/mocks/llm
  • Every lesson becomes a check. Repeated incidents turn into lint rules that block the commit. Made mechanical, not memorised. no-unoptimized-cover-img
  • Known issues, written down. Living known-issues and lessons-learned files, with IDs, in every AI product. KNOWN_ISSUES.md
  • Jobs that watch themselves. Scheduled health checks, backups and alert digests that stay silent when all is well. alert_sentinel
  • A dated reason to stop. Kill criteria with a number and a date, written into the spec before the build starts.

Something new

Managing intelligence

Models are powerful and unreliable. The system around them decides which one you get.

  • The model never does the math. Calculations run in code. The model scores or referees only where judgment is needed. forces.ts
  • Deterministic judges first. Code checks such as the balance-sheet identity run beside the LLM judges, and the judges are calibrated against real outcomes. code-checks.ts
  • Evals on a golden set. A prompt version ships only after a paired A/B run against curated real cases. eval_runs
  • Every prompt versioned, every call traced. Prompt ID and version stamped on each call, with the full request trace kept. prompt-registry.ts
  • Cost is a metric. Budgets, a cost stamp on every call, and a weekly check for provider price drift. pricing-drift-checker.ts
  • Models earn their place. Candidate models are benchmarked against a hand-built reference before routing allows them in. benchmark-dense-shelf.ts

Something borrowed

Learning from others

Most hard problems were half-solved somewhere else first. Find where before building.

  • Research before design. A written research note comes before each major design decision. docs/research/
  • Scouting sprints. Outside agents from several labs get the same brief, without seeing the system's internals, and hunt for tools, skills and methods. Every proposal is scored and deduplicated, and every agent is graded on a scorecard. ResourceScout
  • Best of breed. For a chosen capability, several agents research it in depth. The design takes the best formula, threshold and code from each, and one convergence pass decides what ships. playscout/CONVERGENCE.md
  • Outside agents as reviewers. The same design question goes to several models from other labs, and their answers are merged into one synthesis. adr-003-synthesis.md
  • Proofs of concept before commitments. A scripted spike settles the choice between approaches. poc-two-pass.ts
  • Reviews with receipts. Multi-agent code reviews where every finding gets a severity, a status, and a written reason if it is not fixed. CODE_REVIEW

Something blue

AI security

Anything the model reads can be an attack. Defend like a blue team.

  • A written threat model. Prompt injection is designed for up front, not patched after. ADR-011
  • Untrusted content is neutralised. Web pages and outside data are cleaned before they reach a prompt. untrusted.ts
  • Guarded output. Responses are checked for data exfiltration and system-prompt leaks before they leave. output-guard.ts
  • Abuse limits. Rate limits and automatic blocking of misbehaving API keys. api-abuse.ts
  • Hostile tests. Tenant isolation is attacked by dedicated fixtures in CI. hostile-fixtures

Set your team up to work this way: Claude Code for product teams, under Work with me.

Four ways in

Work with me

For founders, product teams and anyone with an AI product that needs to exist.

  • Self-improving AI productsDesign the loop that turns usage into a better product: what to capture, how to attribute it, and where a human gates the change. See the pattern.
  • Zero to liveAn idea becomes a deployed product: scope, architecture decisions, build, tests, billing, launch. Weeks, not quarters.
  • Fractional product leadOwn discovery and the roadmap for an early-stage team a few days a week, or step in to lead product when the problem is bigger than that.
  • Claude Code for product teamsSet your team up to work the way I do: decision records, test-first, agent workflows, custom lint rules. Hands-on, not slides.
Start a conversation

Built by one person, twenty-two years in: chips, then hardware, then devices, then AI software, then agents. About me

Build the hard part.

Send a paragraph about what you're building and where you are with it. I'll reply within a working day with whether I can help, a rough shape, and what I'd want to know first.