Systems engineering, under load
Fix a running system while it's failing.
Crucible drops you into a running distributed system that is misbehaving under load. Read the metrics, change the code and config, ship the fix, and let a hidden judge decide whether it held. When you want something shorter, the same workspace runs coding tracks in algorithms, machine learning, networking, frontend, backend, security and SQL.
- real
- containers, not mocks
- 8 tracks
- systems, algorithms, ML, networking, frontend, backend, security, SQL
- hidden
- tests judge every submit
- p99 latency
- 1.8 s
- Error rate
- 4.2%
- Cache hit
- 0%
How it works
Read, write, run, submit
Read
Every problem opens with a brief: the symptom, architecture and logs of a scenario, or the statement, examples and limits of a coding problem.
Write
Change the service code and configuration, or write a solution in Python, C++, Java, C, TypeScript or SQL, in the same editor in your browser.
Run tests
A scenario starts as real containers, with a real database when it has one, while you drive load; a coding problem runs against its examples.
Submit
Hidden tests decide. The judge runs its checks against a scenario and runs unseen cases for a coding problem, and a pass counts on your profile.
Example scenario
Journey apps are refused at the morning rush
Journey apps that ask for bus times about once a second are told "too many requests" at the morning rush.
- rate-limiting
- nodejs
- nginx
- security
Ready to fix something that is actually broken?
No setup, no local cluster. Pick a scenario and your environment comes up in the browser, or pick a coding track and start writing.