Mathematics is the second thread of my life. I love it, I write it, and I teach it to teenagers who are ready to fall into it. The work on this page is one ambition in three forms: to make beautiful mathematics accessible to anyone who wants it, set with the typography the subject deserves, and free to read. An open archive of olympiad problems and a growing library of notes.
OlympiadHQ
For the teenager who has just discovered olympiad mathematics.
OlympiadHQ is built for the teenager who wants the material in a form worth keeping, and for the teacher who wants something worth handing them. Twenty thousand attributed problems, openly licensed under CC BY 4.0 or MIT, set with the typography the problems deserve. The same material that AI training datasets are built on, surfaced back to the humans the problems were originally written for. TeX Gyre Pagella for prose, KaTeX for the mathematics, mobile-first, no account required.
On the hunt for beautiful olympiad problems, the indignity of badly typeset mathematics on the web, and a small side project to surface AI training datasets back to the human readers the problems were originally written for.
A 15-second pedestrian signal whose red/green split is itself uniformly random. Closed forms for the probability of red, the expected wait, and the expected total time to cross, each from a one-line integral, with a sample-space picture, an account of length-biasing, and a Monte Carlo check of every result.
A circular billiard puzzle by Xavier Durawa: Charlotte's strands reflect inside a circular frame; how many earlier strands does the n-th strand cross on average? A self-contained walk through the geometry, the modular-arithmetic reformulation, the piecewise integration, the antipode trick, and the telescoping sum that lands the exact closed form.
A puzzle by Xavier Durawa: in a regular polygon, place a circle at the midpoint of each side, tangent to the side and as large as possible without overlap. What fraction of the polygon's area is covered by the n circles?
Constructing the Apollonian gasket fractal from Descartes' Circle Theorem and its complex extension. Includes an elementary algebraic proof, the Lagarias-Mallows-Wilks complex form, and a queue-based Python implementation.
A geometric-probability puzzle by Xavier Durawa: a random chord across a circle intersects a diameter; given that intersection, what is the expected ratio of the shorter segment of the diameter to the longer?
A Sudoku variant by Alf Smith with no number clues, only positional gold cells whose values must equal their row, column, or box position. Solved with Google's CP-SAT.
A puzzle from the Julia Robinson Mathematics Festival: navigate from the top-left corner of a grid to the goal cell at the bottom-right, where each cell's number specifies the exact distance you may jump horizontally or vertically to the next cell.
A Z3 solver for LinkedIn's daily Tango puzzle: fill an n×n grid with suns and moons such that no three adjacent cells in any row or column share a symbol; row and column counts are balanced; and pairs of cells linked by = or × constraints match or oppose.
At what angle should a projectile be launched, under uniform gravity and no air resistance, so that the arc length of its trajectory is maximised? A standard integral and one implicit equation give the answer.
A generating-function argument in which the count is the convolution of Fibonacci numbers; partial fractions over the golden-ratio roots give a closed form involving Fibonacci and Lucas numbers, with f(10) = 235.
LinkedIn's Queens puzzle: place one queen per row, column, and colour region of an n×n board, with the additional constraint that no two queens touch, not even diagonally.
Closed form for the expected distance from the centre of a regular n-gon of unit circumradius, via a Jacobian substitution on one fundamental triangle; three triangle-sampling methods for computational verification.
A white knight and a black knight on diagonally opposite corners of a 3×3 square. What is the expected number of moves until the black knight captures the white one? A clean Markov-chain problem with a closed form.
Inversion in a circle transforms two hard problems about tangent circles into routine ones: a Pappus chain (prove that the height of the n-th circle equals 2n times its radius) and the distance between the circumscribed and inscribed circles of three mutually tangent circles of radii 1, 2, 3.
A computational construction of star patterns from the Islamic tradition: translational units, motifs, rosettes, and the rosette dual, implemented in Python with NumPy.