Diagnose and Fix a Deadlock in a Multi-Threaded Payments Service
Overview
What this challenge is about.
Receive the service source (Java 21 + Spring Boot, around 30,000 lines), 4 thread dumps from production deadlocks, and a load harness that reproduces the bug roughly 1 in 50 runs. Analyze the thread dumps to identify the cycle of locks. Reproduce the deadlock reliably in a local harness (target: >50 percent reproduction rate). Fix the root cause with a documented lock-ordering convention (or by eliminating one of the locks via a lock-free alternative or single-mutex coarse-grained lock). Add a runtime guardrail: a thread-dump-aware test that fails CI if a deadlock is reproducible, plus a code-review checklist. Deliver the patched source, the reproduction harness, the runtime guardrail, the analysis of the 4 production thread dumps, and a 4-page postmortem for the engineering team.
The Brief
What you'll do, and what you'll demonstrate.
Reproduce, diagnose, and fix a production deadlock in a multi-threaded Java service; add a CI guardrail that prevents the regression.
Earning criteria — what you'll demonstrate
- Read thread dumps to identify lock-ordering cycles
- Reproduce intermittent concurrency bugs reliably
- Choose between lock-ordering, lock-stripping, or lock-free fixes
- Build CI guardrails that catch regressions
Program Fit
Where this fits in your program.
Sharpens the same skills your degree expects you to demonstrate.
Skills
Skills you'll demonstrate.
Each one shows up on your verified credential.
Careers
Roles this prepares you for.
Real titles. Real skill bridges. Pick the one closest to your trajectory.
Career mappings coming soon.