All work
The full log: every project, case study, and essay — production, research, community, and writing across 29 entries. Filter to narrow the band.
Work entries
Rocky on a Reachy Mini: Built in Sim, Running on the Robot
Rocky from Project Hail Mary, built sim-first behind Protocol seams and tested and working on the physical Reachy Mini Wireless. One 100 Hz thread owns every motion command, a local LLM streams his replies, and a Qwen2.5-7B LoRA shipped only after passing an A/B gate.
Will I Hit My Target? A Monte Carlo Planner with ML Inputs
I built a portfolio planner that feeds four machine-learning models into one Monte Carlo wealth simulation, then asks a concrete question. Given a target and a contribution, what are the odds, and how much more would move them? On the synthetic dataset the median lands just short, and the interesting part is what the simulation is made of.
The QSVM Coin Flip Was an Encoding Artifact: Quantum Kernels on Synthetic ICU Data
In July I blamed chance-level quantum SVM scores on the experiment's small size. A later ablation traced them to an unscaled angle encoding: rescaled on the same 200 rows, the QSVMs reach 0.70 to 0.80 ROC-AUC, and a post-hoc RBF SVM tuned the same way scores 0.810, above each on point estimate. All numbers are from synthetic data.
Raising an Alien in Simulation: Building a Robot's Brain Without the Robot
In July 2026 I built and tested Rocky's software brain in simulation, with no robot, no GPU and no local LLM in the loop, by putting every external dependency behind a Protocol with a Fake. Rocky has since been tested on the physical Reachy Mini and works; this corrected essay keeps the sim-first argument and records what changed.
Decoding the Surface Code: MWPM vs BP+OSD in Simulation
A self-study quantum error correction curriculum whose capstone is a Stim benchmark of two decoders. The fitted thresholds overlap within fit error, the accuracy edge is significant over part of the grid in the committed sweep, and the most useful lessons came from the numbers that later checks took back.
Representation Wins on QA, Not on ML
A paired-data study over 13,800 medication-adherence questions: narrative retrieval wins specialty-med QA, but structured FHIR features win the downstream adherence-prediction task. The representation that wins QA is not the one that wins ML.
Interventional masked-line ablation reveals shortcut learning
An interventional masked-line audit of a 0.926 macro-F1 LightGBM classifier on Gaia-ESO UVES spectra. F and G read textbook diagnostics; K reads a multi-leg shortcut, and the survey pipeline hides a second one in its continuum.
An Anxious Nomad Collective: A Weekly Substack of Book Reviews, Essays, and Long Looks at the Sky
A personal newsletter in the voice the day job does not allow. Book reviews are the entry point. The rest is poetry, personal essay, and slow science writing.
Stellar Spectra with Gradient Origin Networks
The cross-survey data-engineering layer for a Gradient Origin Network project on stellar spectra: survey-specific FITS readers, a ~30,000-star cross-match across APOGEE DR17, GALAH DR3, and Gaia-ESO DR4, and a DVC-tracked HDF5/Parquet store. The generative model itself is upstream; this is the pipeline that feeds it.
FHIR for AI/ML Engineers: What the Spec Gets Right and Where It Bites
A field guide to FHIR for the ML engineer who just received a half-broken CSV export and a tight deadline. What the standard actually solves, and what it hands you as a research problem in disguise.
From Physics PDEs to PyTorch
How knowing why a PDE oscillates helps you debug an over-fitting transformer. An essay on transferable intuition between experimental physics and ML.
Clinical Note Summarizer: MLOps for Healthcare NLP
A FLAN-T5 summarizer fine-tuned on MTS-Dialog, wrapped in a FastAPI service that degrades gracefully, behind CI/CD that authenticates to GCP via Workload Identity Federation.
QML-Essentials: a quantum machine learning curriculum, with classical baselines where they apply
Twenty-seven PennyLane and Qiskit scripts, one per curriculum week and all run on simulators, from a Bell pair to a quantum autoencoder. The tier 2 ledger holds no clear quantum win in its seven rows, and the results that taught me the most were the ones that fell apart under a control.
Firebird Community Cycle
Board service for a Barrie bike co-op (2022 to 2026): grant writing, POS procurement, and a city-partnered bike-diversion program that keeps hundreds of bikes a year out of the landfill.
Tech Titans: Teaching Python and FLL robotics at Barrie Public Library
A 24-session community STEM program for ages 9 to 14. Two introductory Python coding cohorts followed by twelve sessions of FIRST LEGO League SUPERPOWERED robotics. Concluded April 2026.
OPLA Psychological Safety Survey
Designed, deployed, analysed and presented a province-wide survey of Ontario public library staff: 1,236 responses across 60+ library systems, measuring 13 psychosocial factors, presented at the OLA Super Conference.
Dismantled by Design
A data-journalism analysis of how coordinated book-banning campaigns are engineered at the policy level, not the parent level.
Roots of Reality: Volunteer Researcher and Long-Form Writer for a Big History Podcast
Source-vetted research, social-media briefs, and full-length investigative articles for a Big History podcast that ListenNotes ranks in the top 2.5 percent globally. Volunteer role, since September 2025.
Debunking Denialism About Canada's Sixties Scoop Policy
Historical analysis confronting revisionist narratives about the systematic removal of Indigenous children in Canada.
Building Healthcare Software at metricHEALTH
FHIR-compliant integrations, automated test frameworks, and clinical KPI dashboards. The work that earned the team a Research and Innovation award at Barrie's 2024 Mayor's Innovation Awards.
Summoner: A Plan-Execute-Reflect Agent Framework on GCP
An extensible multi-agent scaffold built on Vertex AI, Cloud Storage, Pub/Sub, and Firestore, structured around a plan-execute-reflect loop you can unit test one phase at a time.
Quantum Kernels on Synthetic ICU Data: Tracing a Chance-Level Result to the Encoding
A seeded Qiskit benchmark on synthetic ICU data. Every quantum model sat at chance; rescaling the angle encoding lifted the quantum SVMs to 0.70 to 0.80 ROC-AUC, level at best with logistic regression.
Star-Type Classification: A Pipeline I Trust
A six-class stellar classifier in scikit-learn, wrapped in a ColumnTransformer pipeline and a two-script CLI that a teammate can retrain on a new CSV without reading the code.
CarePal: AI Wellness Companion for Seniors
Proactive AI companion for senior wellness checks and medication adherence. Built with the Cohere API and a retrieval-augmented LLM in 20 hours. 2nd place at the Georgian College GenAI Hackathon.
AutoML vs LSTM: Forecasting Iowa Liquor Sales
What three percentage points of forecast accuracy actually cost, on 19.4 million Iowa liquor transactions.
Divvy Bikes: A Year in 4.3 Million Trips
Behavioral and operational analysis of the full 2023 Divvy bike-share dataset, separating member from casual riders and recommending where the operational levers are.
A Century of Natural Disasters: Trends, Impact, and Response
Analysis of global disaster records from 1900 to 2021. Droughts and epidemics are far less frequent than floods and storms, and killed more people in total.
Real-Time Salary Stream: Scala, Spark Structured Streaming, Kafka, MySQL
Coursework streaming pipeline that ingests employee records over Kafka, classifies them by salary band in Spark Structured Streaming, and sinks the splits to dedicated MySQL tables and downstream Kafka topics. The whole thing runs in Docker Compose.
Neural Networks from First Principles
Backprop with a pencil before backprop in NumPy. A two-layer network for MNIST-shaped inputs, derived from the chain rule and implemented from scratch. The artifact is the math, not the accuracy.