Real-world debugging practiceDebug code. Build skill. Prove it.Practice real-world debugging by fixing intentionally broken code, passing hidden tests, and building a developer profile that shows what you can actually debug.

Find the bug. Fix the code. Prove the fix.

Off by One: Cart Total

JavaScript · Easy · Algorithms

index.js

function cartTotal(items) {  let total = 0;  for (let i = 0; i <= items.length; i++) {    total += items[i].price;  }  return total;}

Visible tests

2/3

  • sums two itemsexpected 35 · got 35
  • single itemexpected 12 · got 12
  • empty cart returns 0TypeError: Cannot read properties
8 hidden tests locked until submit

How Nox works

Broken code in. Proven skill out.A tight loop built for debugging — read, fix, run, and submit against tests you can't see.

01

Discover a broken build

Pick a challenge by language, category, and difficulty. Every challenge ships with real starter code — not a blank file.

02

Read the failure

Inspect the implementation, run the visible tests, and trace the root cause from actual output — the way on-call work feels.

03

Fix and iterate

Edit in Monaco, re-run tests instantly, and watch failures turn green. Reset to starter code any time without penalty.

04

Submit and prove it

Hidden tests judge the fix. Pass them all to earn score, XP, and rating — correctness first, always.

Example challenge

Start from failure, not a blank fileEvery challenge pairs buggy starter code with visible tests for iteration — and hidden tests that decide the verdict.
Bug FixJavaScriptEasy~15 min

Off by One: Cart Total

The cart sums correctly — until it doesn't. An empty cart crashes, and the loop bound hides the cause. Find it, fix it, and keep every existing test green.

Visible
3 tests
Hidden
8 tests
Time limit
2.0s

How a submission is scored

Hidden tests are the source of truth. No pass, no accept — however high the score.

  • Base correctness

    All required hidden tests pass

    70 pts
  • Efficiency

    Time and memory under limits

    15 pts
  • Completion speed

    Faster clean solves score more

    10 pts
  • Code quality

    Minimal, readable Nox

    5 pts

Accepted · 18/18 tests · 42ms · 18MB+125 XP · +21 rating

Competitive progression

Correctness first. Status follows.Rating measures skill, XP measures momentum — and neither rewards a fix that doesn't actually pass.

Rating and XP, separated

Start at 1000 rating. Climb with an Elo-like system weighted by difficulty — while XP tracks solves, streaks, and daily challenges.

Rating
1,647
XP
42,850
Solved
187
Streak
14 days

Seven ranks to chase

Thresholds are configurable, progress is permanent on your profile.

  1. 01Bronze
  2. 02Silver
  3. 03Gold
  4. 04Platinum
  5. 05DiamondYou
  6. 06Master
  7. 07Grandmaster

Weekly leaderboard

Global boards rank by rating; weekly boards reward momentum.

  1. 1@mira_d2,140+32
  2. 2@ayush1,647+21
  3. 3@kaito_dev1,602+18
  4. 4@lena_ships1,588-6

Developer profiles

A profile that proves debuggingEvery solve updates rating, rank, streaks, and skill breakdowns — a public record of what you can fix.

Ayush

Full Stack Developer · Nox.synax.me/u/ayush

Rating
1,647
Rank
Diamond III
XP
42,850
  • Debugging95%
  • JavaScript92%
  • Backend88%
  • Security81%

Verified by hidden tests

Solved counts only move on accepted submissions — no partial credit, no inflated stats.

Streaks without the pressure cult

Current and longest streaks track consistency. They complement skill — they never replace it.

Skills by evidence

Category breakdowns reflect completed challenges across debugging, backend, security, and more.

Community solutions

Solved it? Teach it.Accepted solvers can publish explanations. Locked until you pass — open knowledge after.
JavaScriptOff by One: Cart Total

Why <= breaks on empty arrays

The loop reads one past the end. Guard the bound and the TypeError disappears — plus a note on testing empty inputs first.

48likes12commentsAfter solve
JavaScriptFloating Promises: Batch Usernames

Await inside map: collecting usernames

map returns promises, not values. Promise.all over the mapped array restores order and keeps failures isolated.

36likes9commentsAfter solve
TypeScriptReference Trap: Dedupe Users

Reference equality vs value equality

Objects never equal by reference. Key on user.id in a Set and dedupe becomes O(n) instead of broken.

29likes7commentsAfter solve

Like, comment, and bookmark — with reporting and moderation keeping shared solutions worth reading.

Supported languages

Start with JS, TS, and PythonA modular execution architecture means new runtimes arrive without rewriting the platform.
  • JavaScriptAvailable now
  • TypeScriptAvailable now
  • PythonAvailable now
C++JavaGoRustC#PHPKotlinSwift

On the roadmap — each runtime ships with isolated sandboxing, quotas, and timeouts.

FAQ

Questions, answeredThe short version of everything new debuggers ask before their first fix.

Most platforms ask you to write a solution from scratch. Nox hands you intentionally broken code and asks you to do the everyday engineering job: read it, find the root cause, fix it, and prove the fix against hidden tests.

No. Every challenge starts with a working-shaped codebase that fails in specific ways. You edit the starter files in Monaco, run the visible tests to iterate, then submit for hidden-test judging.

JavaScript, TypeScript, and Python at launch. Language execution is modular, so new runtimes (Go, Rust, Java, and more) can be added without rewriting the platform.

They are separate. XP rewards activity and progression — solves, streaks, achievements. Rating measures competitive debugging skill starting at 1000 and moves with an Elo-like system weighted by difficulty and performance.

No. Solutions stay hidden until you pass a challenge, which protects challenge integrity. After a successful submission you can publish your own explanation and learn from others.

Frequently asked questions

Ready when you are

Your first bug is waiting.Create an account, open a challenge, and ship your first accepted fix in minutes.

Free to startPublic profilesRating + XP from solve one