Roadmaps, Libraries, and a Larger Problem Bank
A product note on turning a growing challenge catalog into searchable practice, structured roadmaps, and shared material for classrooms and assessments.
A practice platform only works if the next problem is worth doing. This phase focused on making the library larger, easier to browse, and more useful across the product.
What changed
We invested in the problem bank, catalog search, and roadmaps that put problems in order. Beyond adding questions, the goal was better ways to choose the right one, by topic, difficulty, and learning objective.
That matters across the whole platform. Compete needs fair, fast rounds. Classroom needs problems that fit a lesson. Assessments need questions that can support evidence, variation, and review. A larger library is only valuable if it is structured enough to serve all three.
Fourteen tracks
The roadmap sorts the library into fourteen topic tracks. Each track is built from the topic tags already on the problems, so a problem tagged with both greedy and graphs shows up in both tracks.
On the practice page the tracks form a tree. Arrays & Hashing sits at the top and splits into Stacks & Queues and Binary Search. Those branches meet again at Trees, which opens onto Graphs and Shortest Paths & Flows. Dynamic programming, Union Find, and the string tracks come after that, with Divide & Conquer and Math & Number Theory at the bottom. Each node shows how many of its problems the learner has solved so far.
The lines between nodes show a suggested order, and no track is locked behind another. Someone who already knows arrays and trees can open Graphs on the first day.
What to do next
The roadmap also answers the question a learner faces after every solve. For a signed-in learner, the page compares solved counts across the tracks and suggests the one where they have solved the smallest share of problems, skipping any track they have finished. The suggestion appears as a Continue button with the track's name and the learner's progress toward a recommended number of problems for that track. The recommended number is far smaller than the track itself, and the progress bars in the list view fill against it. A learner who has only ever solved array problems gets pointed at a topic they have not touched.
Opening a track, from the tree or from the button, drops the learner into the library filtered to that topic, where the difficulty filter can narrow it further.
Why it matters
Students can grind random problems forever and still miss the one pattern they needed. Educators burn hours hunting for a good example. Recruiters end up measuring the wrong thing because they picked a convenient question over a diagnostic one.
A roadmap gives the library an order. A learner can see the path from arrays to graphs to dynamic programming, and a teacher can pull from the same source without rebuilding the curriculum from scratch.
Where it points
The larger library is the base layer for Compete, Classroom, and Assessments. It grew again in April and now holds 8,500+ problems. Over time, the same catalog should power practice, live teaching, and evaluation tied to benchmarks, without each lane inventing its own content world.
