Nineteen days in December. The last one took until September 2024.
The early puzzles fit in an evening. The back half did not. Two days survived into a second and a third year before they were finished. What follows is grouped by when each day was finished — not by how long it took, which the commit history genuinely cannot tell you.
The December sprint
Days 1–15 · solved same-day or close to it
The early days went down before bed. Day 3 was committed at 12:39am. Somewhere in here a Haskell experiment started, produced two solutions, and quietly stopped.
“My first Haskell program :)”commit, day 1
By day 8 the code was getting deliberately clever, and Alex knew it well enough to leave a warning at the top of the file.
“NOTE: Was trying to abuse higher-order functions. Obscure code below.”day-8.py
The wall
Days 17–25 · finished over the following weeks
The back half stopped fitting in an evening. Several days were parked in December and picked back up in January — cube folding, cycle detection, and one problem whose wording never quite made sense. Day 22 was worked out on paper before any code was written.
“Massive speedup by caching blizzard movements :D”commit, day 24
The long tail
Days 16 and 19 · finished in 2024
Two days survived the year. Day 19 took 40 commits across three separate sittings — the next-highest day has 10 — and was abandoned twice before a rewrite finally landed.
- Jan 2024 Saving progress. In broken state, running too slowly.
- Feb 2024 Continuing debugging efforts.
- Aug 2024 Picking back up. Improving console output formatting.
- Sep 2024 Still so slow for part 1.
- Sep 2024 Completed day 19.