Blog
Thoughts on software, AI, and more
Fitting Shapes into Regions
Advent of Code 2025: Day 12 – checkerboard parity and knapsack DP for tetromino region fitting
Counting Paths Through a Graph
Advent of Code 2025: Day 11 – DFS path counting with cycle detection and bitmask waypoints
Bit-Flip Machines and Joltage Equations
Advent of Code 2025: Day 10 – meet-in-the-middle bitmasks and Gaussian elimination
Largest Rectangle in a Polygon
Advent of Code 2025: Day 9 – finding the largest axis-aligned rectangle inside a polygon
3D Circuit Boxes and Union-Find
Advent of Code 2025: Day 8 – clustering 3D boxes by Euclidean distance with Union-Find
Bean Plant Splits and Timelines
Advent of Code 2025: Day 7 – BFS splits and memoized timeline counting on a stalk grid
Grant Calculations in Two Formats
Advent of Code 2025: Day 6 – applying column operators to number grids, with a cephalopod twist
Fresh Ingredients by the Range
Advent of Code 2025: Day 5 – counting and merging ID ranges for fresh ingredients
Unrolling the Paper Rolls
Advent of Code 2025: Day 4 – removing accessible paper rolls from a grid iteratively
Battery Banks and Joltage
Advent of Code 2025: Day 3 – extracting maximum joltage from digit sequences
Repeated ID Patterns
Advent of Code 2025: Day 2 – finding IDs with repeating digit chunks in a range
Spinning the Circular Dial
Advent of Code 2025: Day 1 – navigating a 0–99 dial and counting zero crossings
Mario Kart: 100 Picoseconds Edition
Advent of Code 2024: Day 20
The Matrix strikes back, I guess
Advent of Code 2024: Day 18
Make the printing queue ordered again
Advent of Code 2024: Day 5
Advent of Code 2024: Day 1
Kickstarting Advent of Code 2024 with Day 1! 🛠️ Helping the elves solve puzzles as we embark on the road to 500 stars. ✨🎄
There's a hiring process in this sea of red flags
The tragic story of a recruitment process that started badly and ended worse
(In)Sanity
A hands-on comparison of two well-known CMSs, Sanity and Strapi - and why I picked Strapi in the end