Portfolio · An AI music teacher
I had a practice tool that listened to me play — highlighted where the timing drifted, where a note was wrong, where I was getting stronger. When it was removed, so was my progression. I wanted a teacher who could see my score, hear me play, and know me well enough to push where I was ready and back off where I wasn't. No product does this. So I'm building one.
§ Two — Today
Tom is running. I practise with him every day.
Beat 01
Tom runs the lesson — he doesn't just talk about it. Tom lives inside the practice app, not beside it. When I talk to him he doesn't only answer, he acts: opens the right drill, sets the scale visualiser to the key I need, lays out the week's plan, moves me to the next screen. He drives the same app I do, through a set of typed tools — the same way I'd tap the buttons myself.
A real practice app — here's what Tom drives.
Beat 02
He remembers me — and he keeps working when I've stopped. What's hard, what's clicking, the pieces I'm on — it all lives in a memory Tom reads before he says a word, so he never starts from scratch. And every night, while I'm not practising, he reviews the day and adjusts tomorrow: nudges a tempo, swaps a drill, rewrites the plan around what actually happened.
Beat 03
Underneath is a map of everything there is to learn. Tom builds a graph of skills and the prerequisites between them, and grows it as I progress. A node only lights up when I've actually demonstrated the skill — not just practised it. Effort and mastery are deliberately separate currencies, so "progress" means I'm genuinely better, not that I simply turned up.
Tom adapts to the pieces I'm actually working on, and runs quietly on my own server, every day.
§ Three — Tomorrow
What Tom is today is a foundation. What he becomes is a teacher who can see the score, hear the performance, and close the loop between the two.
AppFactory
This is a large build — larger than I would attempt alone. AppFactory is what makes it feasible — the agent-system that turns architecture decisions into shipped software. Tom is the first real demonstration of what one engineer can build with AppFactory behind them.
The stack
Every way in, one teacher — and a widening library to teach from.
Asymmetry
One subtle call: piano and guitar need different pipelines. Piano emits MIDI natively — a clean, millisecond-accurate signal. Guitar emits audio through a pickup — messier, polyphonic, needs inference. Same teacher, two capture paths. The architecture mirrors the instruments rather than flattening them into one pipeline.
Score-Match
At the end of that pipeline: a score-aligned playback diff. Record a take, compare it to the score, colour each note as I played it — green correct, amber timing off, red wrong note, grey missed. The capability whose removal stalled my own progress — rebuilt, and this time it lives inside a teacher who knows me.