The five tracks
⚡ Algorithms
The classic format with a sharper edge. Each puzzle ships visible sample cases plus a hidden suite with large-input performance tests. Correctness gets you halfway; the hidden gate checks that your solution scales. Expect to learn the standard toolkit — hashing, two pointers, sliding windows, Kadane — by needing it, not by being told about it.
Some puzzles also set an allocation budget: bytes allocated on the managed heap are measured during your run, and a solution that builds throwaway copies fails where the in-place one passes — even when both are fast enough.
Available in full on the Free plan.
🗄️ Database / EF
You write LINQ over an EF Core model; we run it against a real database, with enough data that inefficiency shows up in the timings. The grader shows you:
- every SQL query your code generated (expand a test to read it),
- what each one cost, and
- on plan-graded puzzles, the execution plan the database actually chose — full-table reads flagged in red, index usage in green, with pass/fail rules on the plan itself.
The starter code is usually a working N+1 that times out at scale. Your job is to make the database do the work — and on the plan-graded puzzles, to make it do the work the right way.
Free plan: preview puzzles only. Full track on Pro.
🧹 Refactoring
You inherit code that works — every test passes — and that you’d hate to maintain: tangled conditionals, god methods, copy-paste blocks, arrow code. The famous Gilded Rose is here. Your job is to clean it up without changing what it does.
Grading is two gates at once: the behavioral tests must stay green, and structural metrics measured from your source — method length, cyclomatic complexity, nesting depth, duplicate blocks — must come in under the puzzle’s limits.
Available on Pro.
🏛️ Architecture
Multi-file refactoring katas. You get a small, working, badly structured project and a goal — “decouple the notifier”, “hide the database behind a repository”, “keep the domain pure”. Grading runs the behavioral tests and checks the kata’s design rules automatically: dependency direction, layering, abstraction boundaries, naming conventions.
Passing tests with the wrong structure fails, exactly like production code review — except the feedback arrives in seconds.
Available on Pro.
🛡️ Secure Coding
Each puzzle starts from code that is functionally correct and quietly exploitable — a file download open to path traversal, an email regex with catastrophic backtracking, a logger that lets users forge log lines. You fix the hole.
Two suites grade every submission: functional tests prove the feature still works, and adversarial tests throw real attack payloads at it — traversal strings, ReDoS inputs under a hard time limit, decompression bombs under a memory cap. The result panel reports them separately: exploits blocked and behavior preserved, or no pass.
Available on Pro.
See Pricing for exactly what each plan includes.