
· 3 min · Tech
Finding an Infinite Loop in Scikit-Learn’s K-Means
An input that makes scikit-learn’s K-means loop forever: the bug in its empty-cluster handling, the report I filed, and the fix.
Senior Software Developer at Zebra Technologies · machine vision and machine learning in C++ · Montréal
I’ve written production C++ for seven years, at Matrox Imaging and then Zebra. I developed 2D vision and machine learning algorithms for the Aurora Imaging Library, Zebra’s machine vision SDK, evaluated deep learning models for object and text detection, and fitted the algorithms to smart cameras. Today I also work on generative AI.


· 3 min · Tech
An input that makes scikit-learn’s K-means loop forever: the bug in its empty-cluster handling, the report I filed, and the fix.

· Tech
Thirty days of Montréal forecasts graded against the station next door. Temperature is 1.3 °C off a day ahead; seven in ten rain calls were false alarms.

· Tech
Two months of Hydro-Québec’s public outage feed, graded: regional reliability, Montréal boroughs, ETA accuracy and causes. Interactive charts and map.

· Tech
Why barcode readers need a foreground-colour setting, and what happens at an airport gate when they don’t have one.

2025 · Shipped · Projects
A numbered queue on a waiting-room screen for small clinics, so patients stop asking who is next.

2024 · Shipped · Projects
A C++ library that records where a Windows process’s memory goes over time (stack, DLLs, mapped files, private data) and writes it to CSV.