Blog
Thoughts on software, AI, and more
Software Development30th July, 2026
Login fails if the user has a broken arm
The mystery of a Ministry login page that only works if you click fast enough - solved by my mum's broken wrist
693 words4 min.
Advent of Code 202512th December, 2025
Fitting Shapes into Regions
Advent of Code 2025: Day 12 – checkerboard parity and knapsack DP for tetromino region fitting
487 words3 min.
Advent of Code 202511th December, 2025
Counting Paths Through a Graph
Advent of Code 2025: Day 11 – DFS path counting with cycle detection and bitmask waypoints
457 words3 min.
Advent of Code 202510th December, 2025
Bit-Flip Machines and Joltage Equations
Advent of Code 2025: Day 10 – meet-in-the-middle bitmasks and Gaussian elimination
479 words3 min.
Advent of Code 20259th December, 2025
Largest Rectangle in a Polygon
Advent of Code 2025: Day 9 – finding the largest axis-aligned rectangle inside a polygon
446 words3 min.
Advent of Code 20258th December, 2025
3D Circuit Boxes and Union-Find
Advent of Code 2025: Day 8 – clustering 3D boxes by Euclidean distance with Union-Find
397 words2 min.
Advent of Code 20257th December, 2025
Bean Plant Splits and Timelines
Advent of Code 2025: Day 7 – BFS splits and memoized timeline counting on a stalk grid
408 words3 min.
Advent of Code 20256th December, 2025
Grant Calculations in Two Formats
Advent of Code 2025: Day 6 – applying column operators to number grids, with a cephalopod twist
502 words3 min.
Advent of Code 20255th December, 2025
Fresh Ingredients by the Range
Advent of Code 2025: Day 5 – counting and merging ID ranges for fresh ingredients
338 words2 min.
Advent of Code 20254th December, 2025
Unrolling the Paper Rolls
Advent of Code 2025: Day 4 – removing accessible paper rolls from a grid iteratively
312 words2 min.
Advent of Code 20253rd December, 2025
Battery Banks and Joltage
Advent of Code 2025: Day 3 – extracting maximum joltage from digit sequences
415 words3 min.
Advent of Code 20252nd December, 2025
Repeated ID Patterns
Advent of Code 2025: Day 2 – finding IDs with repeating digit chunks in a range
472 words3 min.

