Skill Challenges

3-minute drills that sharpen the developer skills you actually use.

Runs locally in your browser No login. No backend. Daily & practice modes

Your progress, streaks, and badges are stored locally in this browser. They are not uploaded.

Skill of the day

All challenges

  • Regex Rescue — Build or choose the right regex to match valid strings and reject invalid ones.
  • API Detective — Find the bug in an API request/response: status codes, headers, JWT, CORS, and more.
  • Payload Patch — Pick the right transformation to fix a broken JSON payload.
  • JSONPath Quest — Pick the JSONPath expression that returns the target output.
  • Diff Detective — Spot the meaningful change between two snippets that may break consumers.
  • JWT Heist — Identify what's wrong with a JWT — alg=none, expired, aud mismatch, RS↔HS confusion, and more.
  • Cron TimeLock — Pick the cron that matches the intent, or spot the bug in the given cron.
  • CSV Sleuth — Find the missing or duplicated row between two CSV snapshots.
  • Dockerfile Watch — Pick the dangerous or non-reproducible line in a Dockerfile snippet.
  • SQL Join Maze — Pick the SQL join that produces the target result set.
  • Secret Hunter — Spot the leaked secret in a config or code snippet.
  • Signature Forensics — Pick the reason this webhook signature verification failed.

Your local progress

How to practice effectively

Pick one challenge that matches the artifact you are already working with: JSONPath for API responses, Diff Detective for regressions, Secret Hunter for config review, or Cron TimeLock for scheduled jobs. Solve the prompt first, then open the matching tool and repeat the same reasoning on a safe sample from your own workflow.

What each result means

  • Correct: you identified the important signal and can apply the same check in the related tool.
  • Close: review the explanation and compare the candidate outputs again; most misses are caused by one overlooked field or header.
  • Needs practice: replay the challenge with a different seed, then use the linked tool to inspect a real example locally.

All challenge progress is stored in this browser. Use sanitized examples when moving from a challenge into a real tool.