What I build with AI

I don't just teach the tools. I use them until I know where they break.

Everything on this page was built for a real problem I had, not as a portfolio piece. That's the whole method: the only way I know to teach a tool honestly is to have already hit its limits myself — which is also the only way to tell someone what it won't do for them.

I'm not an engineer. What I am is someone who can specify precisely, read what comes back, and keep going until it works.

Graciela, the AI tutor's avatar
Graciela
2024—2025
Shut down
OpenAI API · PHP · inside the LMS · avatar generated in 2024, part of the product

An AI tutor for my own school, grounded in the transcripts of our own recorded classes — roughly 167,000 tokens across twelve modules. It appeared at the end of each unit, answered from what that unit's instructor had actually said, then turned the question around and asked the student how it applied to their own business.

The design decisions were pedagogical, not technical. It attributed answers to the instructor by name rather than replacing them. It refused to produce assignments. If a question went beyond the module, it said so instead of guessing.

What it taught me Students who tried it liked it. I shut it down anyway: on the model I could afford it hallucinated, and the context windows of the time couldn't hold a full module of transcript. A tutor that's confidently wrong about your own course material is worse than no tutor. Knowing when to stop is part of the job.
Finding an apartment in Amsterdam
April 2025
Taught publicly
Custom GPT · listing alerts · Funda / Pararius

Amsterdam's rental market is the first wall an immigrant hits, and you can't register in the country without an address. So I built an assistant trained on our own situation — our paperwork, our budget, our real constraints, down to needing a lift or a ground floor so our mothers could visit. Listings arrived by alert; each one came back with a verdict in seconds, plus a letter to the landlord if it passed.

The whole loop ran in under three minutes, which is the point: we were applying while a listing was still new. Fifteen days, 400 listings assessed, 100 applications, 15 viewings, 2 offers — against the one or two viewings a month most people we met were getting.

What it taught me The interesting part came afterwards. People kept asking how, so I recorded the method and gave it away. Solve it, notice it worked, then teach it — that's the pattern this whole site is about, and here it ran end to end in about three weeks, on a problem that had nothing to do with my job.

The walkthrough, on my own channel — shot, scripted and edited by me. Watch on YouTube ↗

A market-research tool for my own search
2026
In daily use
Next.js · TypeScript · Claude API · SQLite

Same idea as the housing search, aimed at a harder problem: reading a labour market you didn't grow up in. A vacancy goes in, and what comes back is an honest read on it — how the role maps to what I've really done, what the commute costs me, what the culture signals, and where the gaps are.

Its main job is telling me not to apply. Every application I send has already failed to be talked out of by my own tool, which is why I send few of them. The drafting it does afterwards runs off one maintained source document, so nothing gets invented to fit a posting.

It works because that source document is good, and it's good because I spent weeks interrogating my own record to build it. Which points at the actually hard problem: most people can't articulate what they've done. The tool would be worth something to someone else only if it could run that interrogation for them — and designing the questions that pull a real answer out of a person is instructional design, not engineering. That's the version I'm prototyping toward.

What it taught me Most people using AI badly are using it without context — a thin prompt returns generic text, a well-maintained source of truth makes it genuinely useful. But the context has to come out of a human first, and that's the part nobody automates well. Getting someone to say what they actually know is the same skill whether you're briefing an expert for a course or setting up a model.
This site
2026
You're on it
Astro · Vercel · written by hand

Built and deployed by me. More usefully: fact-checked against its own sources before a word of it was written. Nine years of platform exports, production spreadsheets and survey files went through a cleanup that killed several claims I liked — including a few already sitting in earlier drafts.

What survived is here. What didn't reconcile isn't, even where the story was better.

What it taught me Raw platform exports are not analysis. One dataset repeated every row hundreds of times; another number I'd been quoting turned out to rest on nine responses. The discipline AI work actually requires is the willingness to retract.

Advertising, then content, now AI. I've never taught anything I wasn't doing.

Where all of this happened

Outside working hours. On free tiers, and on licenses I paid for myself. None of it was anybody's job to fund — I'd have done it anyway, and I'm not complaining about it.

But it is a ceiling, and I've watched it become one. AI moves faster than any role I've held has had room for, so the exploring happens at night and lands at work later, in whatever form I can smuggle it into a day that already has its own tasks. I've been asked in an interview whether I could hold visual consistency across generative models. The honest answer was that I knew the tool, had studied it closely, and had never held a license long enough to prove it. That answer cost me something, and it was still the right answer.

Give someone with fifteen years of professional creative work real access and real time, and what comes out isn't incremental. That's the trade I'm looking for: a place where the experimenting happens inside the job — licenses, access, and permission to spend a Thursday finding out whether something works.

Direction one
Better stories

Fifteen years of advertising says the constraint on creative work was never ideas. It was what you could afford to produce. That constraint just moved.

Direction two
Solved problems

Translation, hiring, housing, onboarding, a tutor for a course. Unglamorous work where a well-specified tool quietly removes hours from somebody's week.

What I'm not

Not a software engineer, and not looking for a role where I'd be reviewed as one. I build working tools, not production systems — and I know the difference well enough not to oversell it.

What I bring is the layer above: knowing what to build, what it's worth, where it fails, and how to get other people using it.

Keep going