Computer Engineering at McGill, minor in Applied AI. I work on backend systems, machine learning, and automation that quietly takes a chore off somebody's week. I live in Montréal.
I interned at FlightHub on web and AI, and at Loto-Québec on data engineering.
I'm open to software/backend and AI/ML roles right now. If you're hiring, say hello.
- Local Model testing: I test the newest and hottest models on my local desktop. What's the worse that could happen...
- Agentic coding workflows: I ship with a model in the loop most days, and I try to be straight about the parts where that falls apart.
- Skating projects: I am currently working on some projects for my coaching. Mostly, a billing system for my team and a CanSkate tracking system for the club I work at.
I coach at a figure skating club in my neighbourhood. Fifteen years on the ice, and these days I'm responsible for 60+ skaters, STAR assessments, and a billing system I wrote myself because the spreadsheet was winning.
That job showed me how much software can do in places that aren't tech at all. Rinks run on spreadsheets, clipboards and goodwill, and all of it is automation nobody has written yet. It happens to be my favourite kind of problem.
Three McGameJams. It's the best format I know for building something ridiculous in 48 hours with people you like:
- McGameJam 2026, A Job Hunts — the premise writes itself and I refuse to spoil it.
- McGameJam 2024, Beyond Light — you're stuck inside a contraption with a companion who looks quite familiar. I wonder where I know him from.
- McGameJam 2023, D-10 — a space horror escape game in Unity/C#, team of 7. Space and horror, which is roughly my whole personality in one repository.
Thirteen containers on a NAS. Self-hosting pays you back in uptime and charges you in weekends:
| Media | Jellyfin · Jellystat · Kavita · Calibre-Web |
| Photos | Immich |
| Documents | Stirling-PDF · ConvertX |
| Utilities | IT-Tools · Omni-Tools |
| Network | Pi-hole · Nginx Proxy Manager · Tailscale |
| Operations | Portainer |
It's down right now. The SSDs died while I was on vacation, and I'll replace them when the AI boom lets prices come back down.
- Playing the whole Resident Evil run, currently on RE9. It's awesome.
- Bouldering, badly but with real commitment.
- Losing to a games backlog, very badly.
- Testing Hermes and local LLMs to automate my daily tasks.
| Languages | Python · Java · C · C# · TypeScript · JavaScript · SQL |
| AI/ML | PyTorch · ML-Agents · Ollama / llama.cpp |
| Backend | Spring Boot · REST · PostgreSQL · Supabase |
| Infra | Docker · Docker Compose · Kafka · Linux · Git · GitHub Actions |
- sportcenter: full-stack sports centre management, 69 REST endpoints, 8 JPA entities, 19 test classes. It taught me that "it compiles" and "it's correct" are two different claims.
- gpt2-syntax-circuits: mechanistic interpretability of subject-verb agreement in gpt2-small, using ablation, ACDC circuit discovery and causal scrubbing. Faithfulness 90.67%, completeness 44.40%. The second number is the interesting one.
- walker-soccer-twos: humanoid ragdoll agents that learn to walk, then play 3v3 soccer. They scored zero goals in 530,000 training steps, and the write-up says so.
- os-simulator: an operating system in C, with a shell, a multithreaded scheduler and demand paging. I published it with the known bugs listed, because an interviewer finding them beats me hiding them.
CanSkate System (in progress): evaluation and progression tracking for skating clubs. The source stays private because it runs on real skaters, so the demo is public, read-only, and it resets every night.
📫 LinkedIn · Montréal, Canada


