What I’ve shipped with AI.

Some of it is work my teams did at Exclusive Resorts; the rest I designed, built and deployed myself.

AI inside a luxury travel club.

AI product work at Exclusive Resorts: trip recommendations and itinerary building for Members, and assistive tools for the Ambassador team. The hard part was never what a model could do; it was deciding which calls we’d let it make for a Member, and what happens when it gets one wrong.

Tappet

An auto-ownership consultant, built for a problem I have myself: nothing keeps a car’s record in one place. What it’s had done, what fails on that model and when, what it needs next. Tappet reads the invoices, anchors the maintenance intervals, watches the recalls, and answers questions with all of it already in hand.

Add a car by year, make and trim and Tappet researches the model: what fails and when, the factory schedule, fluid specs, open recalls. Every screen reads from that record, and the record grows with each invoice it’s shown. The standing rule is ranges over verdicts and “unknown” over a guessed default. Recalls are matched by model, not by VIN, and the screen says so rather than telling an owner their car is clear.

tappet · Garage
Tappet — the garage: three cars with their health scores, mileage and open recalls

What it does

The health score
One number, with every input behind it on the page: maintenance against the schedule, recalls, mileage load. Where two inputs disagree, the score says so instead of picking a side.
The advisor
A conversation that opens with the car’s full record in hand, and can act on it mid-reply: add a job to the plan, close an issue, mark a modification done.
Invoices in, history out
Photograph a shop invoice and the line items become service records: vendor, date, mileage, parts and labor. The schedule counts from them and the advisor cites them.
The plan
Everything the car needs in one list with cost and labor estimates, bundled by shared access so one shop visit does the work of three, and written up as a quote request a shop can price.
Under the hood
Next.js on Supabase. Gemini tiered by job: a small model with schema-checked output for the structured work, the large one for conversation, vision for invoices. Every call is rate-limited and cost-capped, so running out degrades a feature rather than breaking it.
The dashboard. The score over the car, and the recalls under it, labelled with how they were matched: by year, make and model, not by VIN.
The advisor. Asked what to prepare for at 67,000 miles, it answers from this car’s records, and bundles the jobs that share labor.

Lumière

A personal proof of concept in image pipelines. The bet: someone without a profile photo they like just leaves, and doesn’t come back. Upload or capture a portrait, get four professionally styled variations in under sixty seconds: four parallel Gemini 2.5 Flash calls behind a Deno edge proxy that holds the key and runs safety validation server-side. A working build.

Source Live app →
Lumière · Atelier
Lumière — The Portrait Atelier

AI as a working environment.

This is harder to show than a shipped product, but it’s closer to how I actually work.

I use Claude across most of my working week, and what I’ve built around it is closer to a working environment than a prompt library. Each product I directly PM gets its own project, carrying system instructions, role context and shared skills, so a teammate picking it up gets the context without a handoff meeting.

The skills are where the leverage is: ticket writing, release notes, standup prep and interview synthesis, shared across the team so everyone drafts from the same structure and tone rather than from scratch. It’s the only reason a four-person panel produces notes that can actually be compared. Scheduled jobs handle the recurring work, and connections into Jira, Confluence and Figma mean a ticket gets written or a design note captured straight out of the conversation.

The practical effect is that the first draft of almost anything takes minutes instead of starting from a blank page. None of it is exotic. The work is in checking what comes back before it goes anywhere.