Chops

Practice the coding test before it counts.

Timed coding tests: four tasks in 70 minutes, or one project built over four levels in 90. Hidden tests run when you submit, and the report shows where your points went. Every question is original.

Sign-up needs an invite code for now.

Sprint

Four tasks in 70 minutes, easiest first: basics, arrays and strings, heavy implementation, and an algorithm. Each attempt draws them from a pool of 227, in Python or C++. Sample tests run when you ask; hidden tests run when you submit.

Each task is worth 100 points in proportion to the tests it passes. The report opens every task on your code and its failing tests, plays back how you wrote it, and lists large pastes and time spent away from the window.

  1. Task 1Basics100
  2. Task 2Arrays and strings100
  3. Task 3Heavy implementation50
  4. Task 4Algorithms10
  5. Score260
An example report: 260 of 400, with tasks 1 and 2 fully solved.

Build

One project in 90 minutes, built over four levels. Each level adds requirements to the same code, and the next one opens only when every test of the current level passes on Submit. Python or C++.

12 projects: API Rate Limiter, Auction House, Bike Share, Chat Service, Contest Judge, Event Ticketing, Hotel Booking, Library System, Order Book, Parking Garage, Ride Dispatch and Warehouse Inventory.

Bike ShareLevel 2 of 4
  1. Level 1Stations, bikes and rentalsPassed
  2. Level 2Station and rider reports7 of 8, hidden tests on Submit
  3. Level 3Trip fares and passesOpens when level 2 passes
  4. Level 4Breakdowns and rebalancingLocked
Bike Share, one of the projects, at level 2.

Drills

Practice on the same 227 tasks, scheduled by topic. Each topic has a strength that moves with every result and a date for its next review, so the weakest and most overdue topics come first. A task you fail comes back 3 to 7 days later, to solve again from a blank file.

Sprints count too: every task you work on under the clock moves its topic's strength.

TopicStrengthNext review
hash table1468due now
sliding window1532in 2 days
simulation1611in 5 days
two pointers1704in 12 days
An example schedule. Hash table comes up next.

C++ Mastery

A 29-unit course with 64 lessons, from the C++ a coding interview needs to the language in depth, ending in a capstone. Its 26 exercises are judged with AddressSanitizer and UndefinedBehaviorSanitizer (ThreadSanitizer for the concurrency ones), so a dangling reference fails instead of passing by luck.

solution.cpp
int main() {    std::vector<int> v = {1, 2, 3};    int& first = v[0];    v.push_back(4);     // may reallocate    std::cout << first; // dangling}
AddressSanitizer: use after free (a pointer, reference or iterator to freed memory), 9 ms, ASan + UBSan
An exercise run with the sanitizers on.

Insights

One page reads your sprints and drills together: where your sprint points go, which task eats the clock, your weakest topics and what to practice next, each with the numbers behind it.

Your data

Your code, attempts and progress belong to your account. The account page downloads all of it as a zip file, or deletes the account and everything in it.