Practise by debugging skill.
Each track maps ready incidents and planned Debugging 50 patterns by topic. Planned entries are roadmap only — not playable.
Open Source Debugging
Repo navigation, failing test reproduction, minimal patch reasoning, and PR explanation — trained on real public bug-fix history.
Config & Environment
Debug missing environment variables, config drift, filesystem assumptions, and tenant-specific runtime settings.
HTTP/API
Practice request contracts, headers, pagination, parsing, CORS behavior, and API edge cases.
Secrets & Auth
Investigate auth headers, IAM failures, rotated secrets, webhook signatures, and authorization regressions.
Network & Connectivity
Debug timeouts, ports, routing, service health, and retry behavior across service boundaries.
Caching & Performance
Find stale keys, stampedes, tenant cache bleed, feature flag drift, and performance regressions.
Database
Work through query behavior, serialization issues, transactions, soft deletes, and consistency failures.
CI/CD & Pipelines
Practice deploy locks, migrations, artifacts, poisoned caches, and release-pipeline regressions.
Testing & Reliability
Debug flaky checks, retries, hidden validation failures, test isolation, and incident recovery patterns.
Date/Time
Fix timezone, DST, expiry, unit mismatch, and time-window bugs that only appear at boundaries.
Concurrency
Practice stale locks, duplicate workers, race conditions, async cleanup, and atomicity failures.
Deployment
Debug broken health checks, missing container env, target-port mismatches, and rollout regressions.
Debug by stack
The full guide library and playable labs, grouped by the language and framework you actually work in.
React & Next.js
Debug the failure modes that actually bite React apps: stale closures, re-render storms, hydration mismatches, Server Component boundaries, and broken data fetching.
Node.js & Backend JS
Server-side JavaScript debugging — event-loop lag, stream backpressure, ESM/CommonJS interop, Express/Fastify middleware, and the runtime errors that only show up under load.
TypeScript
Make the type system work for you instead of against you: generic constraints, discriminated unions, declaration files, path aliases, and the errors that hide real bugs.
Python & Data
From circular imports and the GIL to Django ORM N+1s, FastAPI validation, asyncio, and pandas/PyTorch shape and memory traps.
Go
Goroutine leaks, channel deadlocks, nil-interface gotchas, data races, and context cancellation that doesn't propagate.
Java & Spring
The enterprise stack held together by Spring Boot and YAML: autoconfiguration, transaction rollbacks, JPA lazy-loading, GC pauses, and thread deadlocks.
.NET & C#
Async deadlocks, EF Core change-tracking, captive dependencies, configuration binding, and the memory leaks that creep into long-running services.
Vue & Nuxt
Reactivity that won't update, watcher loops, Pinia persistence, provide/inject, and Nuxt SSR hydration mismatches.
Angular
Change detection that won't fire, RxJS subscription leaks, DI injector errors, zone.js performance, and standalone-component wiring.
Databases & SQL
Deadlocks, unused indexes, connection-pool exhaustion, N+1 queries, replication lag, and ORM drift across Postgres, MySQL, Mongo, and Redis.
Kubernetes & Docker
CrashLoopBackOff, OOMKilled pods, pending scheduling, service/DNS resolution, volume mounts, and multi-stage build and cache traps.
Cloud & Serverless
Lambda cold starts and timeouts, IAM denials, API Gateway 5xx, SQS visibility, and Terraform state drift across AWS, GCP, and Azure.
Auth & Security
JWT signatures, OAuth2/PKCE flows, CORS, CSRF, cookie SameSite, session handling, and the auth regressions that lock everyone out.
Mobile
React Native, Flutter, iOS/Swift, and Android/Kotlin failure modes — retain cycles, recomposition storms, ANRs, and state that won't update.