01 // projects

Projects

Things I've built. Each one has a short write-up here and the full code on GitHub.

Career stripes: one coloured stripe for each of Max Verstappen's Grands Prix

33 → 1 → 3

Max Verstappen's Formula 1 career as a data story, told through his three car numbers. Charts, not predictions.

He lost the 2025 title by 2 points, two years after winning 19 of 22 races.

data visualization python plotly
The F1 Race Predictor app comparing predicted and actual finishing positions

F1 Race Predictor

Predicts the finishing order of a Grand Prix from qualifying and form. Machine learning, not a story.

Got the exact podium in 42% of 2025 races, against 33% for "finish where you start".

machine learning scikit-learn
Replay of the trained agent and a fixed-time signal running the same traffic

Adaptive Traffic Signal

A Q-learning agent that runs a traffic light in the SUMO simulator, deciding every 5 seconds whether to switch.

63.7% less queuing than a fixed-time signal, on traffic it never trained on.

reinforcement learning sumo
Draw a Digit app reading a hand-drawn 8

Neural Network from Scratch

A 784 → 128 → 10 network in plain NumPy that reads handwritten digits. Every gradient written by hand.

Read my own badly drawn 8 with 99.0% confidence.

numpy deep learning