A personal corner of the internet
MONTRÉAL, QC
A little curiosity.
A lot of
building.
I’m Yohan. I build AI systems, explore how markets work, and follow interesting questions wherever they lead.
Some code. Some experiments. Always a work in progress.
SCROLL TO EXPLORE01 / Selected work
Things I’ve been
figuring out.
A few projects, the questions behind them, and what happens under the hood.
A market,
from the inside.
An order book in C++. The queues, signals, and small decisions that sit underneath every trade.
Explore LOBSimulaterMake every guess count.
GFlowNets, active learning, and the challenge of searching with a limited budget.
Better according to what?
VeroLoop: a common way to ask whether an AI system actually got better.
There’s also graph ML, robotics, a little game theory, and a few detours.
The full project index02 / The lab
Less reading.
More trying.
A small window into the work. Change the input, look at the output, and see what the numbers actually tell you.
EXPERIMENT 02 — THE CONSISTENTLY WRONG ANSWER
Why I’m building VeroLoopExpected: billing · escalate: yes
escalate: true
This message 100%
escalate: false
This message 0%
Repeat each message three times: both candidates are 100% consistent. Being reliably wrong is still being wrong.
Deterministic rules on four synthetic cases. An adaptation of VeroLoop’s offline example; no live AI calls.
EXPERIMENT 03 — YOUR MOVE
A tiny board.
A stubborn robot.
My tic-tac-toe opponent started as a C++ project. Now you can play it right here. You’re X, the robot is O. Aim for a draw.
Its trick is minimax: look through the possible replies, assume you’ll play your best, and choose a move that holds up.
See the original C++A browser adaptation of my C++ minimax opponent. Same move strategy, a new place to play.
Notes from the work.
A few ideas worth opening up.
01A reliable answer can still be the wrong answer.
A system that always returns “other” gives exactly the same answer every time. On the four examples above, that makes it perfectly consistent, but correct on only one category. Correctness, consistency, and valid output structure answer different questions. VeroLoop keeps them separate so one attractive number cannot stand in for the whole picture.
02A limited budget changes the search.
If scoring a candidate is expensive, the interesting question is which candidate deserves the next evaluation. GFN-AL explores this with a Scrabble environment, a Gaussian-process surrogate, and a GFlowNet. The experiments compare methods under an explicit oracle-query budget, while also looking at the diversity of what they find.
03Learning agents don’t automatically learn to cooperate.
The Multi-Agent Liquidity Game report records an awkward result: some agents deteriorate late in training, and the arbitrage agent struggles. Those outcomes make reward design and interactions between agents worth investigating. The useful story includes the failure modes, not just the architecture.
03 / The person behind the tabs
Hi, I’m Yohan.
I’m studying computer science at Université de Montréal. I like the part where an idea becomes something you can run, measure, take apart, and make a little better.
My projects tend to wander between machine learning, software systems, and simulations. The common thread is wanting to understand what’s really happening underneath.
Away from the keyboard, you’ll find me training Brazilian jiu-jitsu.
Along the way: AI & data work at Intact, Desjardins, and BRP.
The CV version ↗