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, a personal imprint of books, 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.
Mathematical volumes typeset under a personal imprint, set in TeX Gyre Pagella with old-style figures and archival PDF/A output. Each volume is a permanent reference, free to download.
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 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.
Two puzzles from Fiddler on the Proof: starting at the centre of a unit square, move in a uniformly random direction until you hit the boundary — what is the expected distance travelled? Same question in a unit cube.
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.
For which n can the integers 1..n^2 be placed in an n x n grid so that the multiset of row products matches the multiset of column products? Includes a prime-counting impossibility bound and an integer-programming formulation.
A Jane Street holiday puzzle: 78 figurines (12 drummers, 11 pipers, 10 lords, … 1 partridge) are shuffled and drawn without replacement until the partridge emerges. What is the expected value of the maximum count of any one figurine type drawn?
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.
A Jane Street geometric-probability puzzle: two random points (red and blue) are drawn uniformly from a unit square. What is the probability that there is a point on the blue-nearest side of the square equidistant from both?
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 geometric-probability puzzle: two random points in a unit square define a circle's diameter. What is the probability that part of the circle lies outside the square?
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.
A Jane Street puzzle: fill each region of a 9×9 irregularly-partitioned grid with the numbers 1 through N (where N is the region size), such that for every cell containing K, the nearest matching K (taxicab distance) is exactly K cells away.
A Jane Street variant of Block Party on a 10×10 grid: fill each region with 1 through N, but with a cleaner taxicab constraint expressed as two implication clauses per cell.
A Jane Street puzzle: fifteen dancers stand in an equilateral-triangle formation, each unit-distant from their nearest neighbours. Each dancer pairs up with one neighbour; all but one are part of a pair. How many distinct sets of seven pairs are possible?
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.
A Jane Street puzzle: a 7×7 well with per-cell depths 1 through 49 is filled at 1 cubic foot per minute from the cell marked 1; water disperses evenly among adjacent lower-depth regions. After how many minutes does the water level in cell 43 start to rise?
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.