I design and build AI systems that listen, speak and remember.
Software architect and team lead in Waterloo, Canada.
θn = n × 137.508°rn = c√n
Helianthus annuus, after Vogel (1979)
Hover a seed · double-click to countTap a seed · double-tap to count
Work
A machine that asks the second question
The best part of a life story usually comes after a good follow-up question. MeMovie asks it. An animated host interviews you on camera, in English or French. It listens while you speak, follows up on your exact words and remembers what you told it last week. Your answers become a film you keep, or leave to the people you choose.
I designed it end to end and lead its development: the conversation engine, the iPhone and Android apps, the backend, and the platform it runs on.
IListening
Your words appear as you say them.
Speech streams to recognition over a live connection, with a second provider ready if the first one fails. Names the system already knows travel with the audio, so it spells your grandmother’s name right the first time.
Pl. ISpeech becomes words as it is spoken. Yellow: a name it already knew.
IIAsking
Every follow-up has to quote you.
The model proposes a question together with the exact words it rests on. Checks in English and French turn away anything that leads, assumes or invents a name. The question is prepared while you review your answer, so it is ready the moment you are.
Pl. IIThe question quotes the answer, and must pass three checks in English and French before it is asked.
IIISpeaking
A face that moves with every syllable.
The host speaks with a neural voice and moves its face on 55 channels at 60 frames a second, from a timeline compiled for each line and stored by its content, so no sentence is ever synthesized twice.
Pl. IIIA line becomes a voice, the mouth shapes it needs, and 55 channels of face, compiled once and played at 60 frames a second.
IVRemembering
A memory you can correct.
Tell it a fact is wrong, or ask it to forget, and the fact leaves every place it travelled: saved context, search embeddings, prepared questions, recorded audio. One transaction, fenced so that no older work can bring it back.
Pl. IVForget a fact and it leaves every place it went, in one transaction. Nothing older can bring it back.
VKeeping
Nothing you say is lost.
The phone journals every recording in five-second segments, so a crash or a lost signal costs seconds, not stories. On the server an answer, the progress it makes and the work it starts commit together in one PostgreSQL transaction, or not at all.
Pl. VFive-second segments survive a crash on the phone; on the server, an answer and its work commit together or not at all.
VIRunning
A platform rebuilt from the ground up.
Every release is a Git commit pinned to signed images, so rolling back is a revert. Every database and storage migration was rehearsed on a copy of production first. Every firewall change is armed with an automatic rollback.
Pl. VIAfter Leonardo’s solids for Pacioli, 1509. Twelve faces, each one a frame: what holds it up is all on view.
tables
412
API routes
521
state machines
24
strings in each of two languages
2,348
production releases
25
MeMovie on 16 October 2026
For five months I led three engineers through it. I wrote the design documents and interface prototypes they built from, divided the system between them, reviewed their code, and handled the conversations with stakeholders and the client.
Earlier
Before that
VIIRouting
Fuel for the North.
Northern ports are supplied by tanker. I designed the scheduler that fits each new order into the fleet: it checks every ship’s draft and length against every harbour, shifts earlier and later stops inside their delivery windows, scores the variations and keeps the three best plans. 150 stored procedures in MySQL.
Pl. VIIA portolan chart of a northern coast. The scheduler kept the blue voyage; two others stay grey. Depths in metres.
VIIIFoundations
Eight systems, one foundation.
CRM and operations platforms for clients in utilities, construction, logistics and project funding. I rebuilt the starter kit they all stand on, with shared authentication, permissions and graceful shutdown, and carried every upgrade into the projects already running.
Pl. VIIIAfter Dürer’s nets, 1525. Eight systems drawn flat, folding into one solid: they share a single foundation.
About
How I got here
2016
I found programming through school olympiads and stayed for the feeling of a hard problem giving way. By the end of high school I had six city podiums in programming and IT, a three-year software engineering diploma earned alongside my classes, and a gold medal, with full marks in mathematics, physics, informatics and astronomy.
2020
That spring I won the national Cisco cybersecurity competition. That autumn I began Computer Programming and Analysis at Conestoga College, and the next year I moved to Canada. I graduated with a 3.97 GPA and High Honours, won three monthly coding challenges and a hackathon podium with Google Developer Student Clubs, and published my first project: sorting algorithms, animated. See it sort.
2023
I joined REA as a full-stack developer. Two years later I was leading the architecture of its conversational AI.
Outside of work: eight years of boxing, five of swimming.
Contact
Write to me.
About work, a collaboration, or a problem worth solving.