Skip to content
Katabench
Try free
← All docs

The seven tracks

5 min read

A track groups puzzles by the kind of engineering judgment they train. Tracks are different from learning paths: a track is the full open catalog for a discipline, while a path selects and orders exercises into a curriculum. The same solved puzzle can count in both.

Use the quality scorecard and detailed result rows to see which dimensions apply to the current track. Not every puzzle uses every kind of gate.

⚡ 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.

Start with the five free C# architecture exercises, or follow the 13-step Architecture Boundaries path when you want an ordered route through policy ownership, ports and adapters, module contracts, and dependency cycles.

Available on Pro.

🛡️ Secure Coding

Each puzzle starts from code that is functionally correct and quietly exploitable, a file download open to path traversal, a lookup that builds SQL by string concatenation, 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 exercise representative hostile inputs. The result panel reports them separately: exploits blocked and behavior preserved, or no pass.

Start with the free C# secure coding exercises, then use this track guide as the reference for what the grader is checking.

Available on Pro.

💡 Design Principles

Short, focused katas on the ideas the design patterns are made of. Make a Money type a real value object (immutable by construction, not just a private set), seal an aggregate so its invariants can't be bypassed, invert a dependency so the core stops reaching into infrastructure.

Graded like the architecture track: the behavioral tests must stay green and structural rules (immutability, sealing, dependency direction, role placement) must hold. A fix that half-solves the smell, the reflexive private set that leaves the backing field writable, fails the rule that was watching for exactly that.

Browse all 14 free C# SOLID principles exercises, including Strategy, Decorator, Null Object, value-object, interface-segregation, and dependency-inversion katas.

Currently available on all plans while the track is new.

✍️ Test Writing

The track that inverts the model: you write the tests. You get a correct implementation and a set of planted-bug mutants, and your suite passes only when it catches enough of them, so a test that asserts nothing earns nothing.

Grading runs your suite against the reference (it must go green) and against each mutant (it must go red for at least the required number). It measures the one thing coverage numbers never do: whether your tests would actually detect a regression.

Browse all 24 C# unit testing exercises, from boundary-value warm-ups through caches, rate limiters, tax bands, and calendar rollovers.

Currently available on all plans while the track is new.


See Pricing for exactly what each plan includes.

Get new puzzles and .NET tips in your inbox

A short note when fresh kata land, plus the C# and performance tricks behind the grading. No spam, unsubscribe anytime.