2026 – present
CherryPicked
Fitting a week together, one section at a time.
- Role
- Sole engineer, design to deployment
- Hardest problem
- Searching millions of section combinations fast enough to feel instant in a browser.
- Result
- Grouping interchangeable sections shrinks the search by orders of magnitude, so results arrive as you type.
The question
Registration week turns a simple wish, “the classes I need, at times I can manage”, into a puzzle with an absurd number of pieces. Each course has several sections, each section has its own meeting pattern, and a single clash ruins the whole arrangement. Students usually solve it by hand, in a spreadsheet, late at night.
CherryPicked answers it properly: given the courses you need and the times you’d rather avoid, which timetables actually work?
The approach
At its core is a constraint-search engine. Trying every combination would take far too long, so it first groups sections that are interchangeable for scheduling (same meeting times, same constraints) and searches over the groups. That shrinks an enormous search space into one small enough to enumerate quickly, and each result can still be expanded back into every valid schedule it stands for.
Pruning happens early and often: as soon as a partial timetable breaks a hard rule, the whole branch beneath it is discarded.
- Calculus
- Data Structures
- Statistics
- Physics lab
- Writing
- Combinations of sections
- 7,776
- Combinations of groups
- 72
Shipping it
Because it’s a live product, the operational side mattered as much as the algorithm:
- a CI/CD pipeline and a separate alpha environment for trying changes safely,
- tests for memory usage, generation timings, and interactions,
- secure payments through Stripe (currently archived),
- an admin dashboard for monitoring and for loading each new term’s data.
Go check it out
It’s live right now, and I think it’s a lot of fun.