senior loop

Broken code. Failing tests. Fix it.

10 bugs · 5 languages

10 available

Production bugs with the artifacts you'd see on call — failing test, log excerpt, broken code. Pick the language you think in.

Easiest free bug · start here

Order pagination returns duplicate rows

free
mid·api·12 min · 5 languages

The /orders endpoint returns the same order on two consecutive pages. Find the off-by-one and fix it.

Start →

Ledger drift after refund retry

free
senior·payments

A refund retry occasionally produces a ledger entry where the refund is recorded twice but the wallet was credited once. Find the bug and fix it.

18 min · 5 langs
Start →

Click-tracking counter drops events under load

free
senior·distributed

Click-tracking endpoint occasionally undercounts events. Some events vanish, others crash the concurrent handler that increments. Find the bug and fix it.

22 min · 5 langs
Start →

Validation endpoint p99 climbs under load

🔒
mid·performance

The /validate endpoint's p99 latency climbs from 8ms to 280ms once traffic crosses 500 RPS. Find the hot-path waste and fix it.

14 min · 5 langs
Start →

Daily summary email arrives on the wrong day

🔒
senior·ops

Users complain that their "yesterday's activity" email shows today's data, or skips a day entirely. Find the timezone bug.

18 min · 5 langs
Start →

JWT verification accepts forged tokens

🔒
senior·security

Security team filed a P1: an attacker can forge admin tokens against the auth middleware. Find the verification flaw and fix it.

18 min · 5 langs
Start →

Worker pool leaks background workers on shutdown

🔒
senior·distributed

A worker pool that processes background jobs leaks background workers on every service restart. Find what's wrong with the lifecycle.

20 min · 5 langs
Start →

User profile endpoint accepts privilege escalation

🔒
senior·api

PATCH /users/me lets a regular user upgrade themselves to admin by sending `{"role": "admin"}` in the body. Find the mass-assignment flaw and fix it.

20 min · 5 langs
Start →

Background-task spans become orphans in tracing

🔒
senior·observability

Distributed traces show order-creation as a clean parent span, but the email-send and audit-log operations dispatched after the order appear as detached root spans with no parent. Find the propagation bug.

22 min · 5 langs
Start →

Idempotency cache returns the wrong customer's response

🔒
senior·payments

Customer A submits a charge. Customer B submits a charge a few minutes later and gets back Customer A's payment confirmation. Find the cross-tenant leak in the idempotency layer.

24 min · 5 langs
Start →