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
Sample readingsIllustration
p99 latency
1.8 s
Error rate
4.2%
Cache hit
0%
Illustrative telemetry · not a live environment

How it works

Read, write, run, submit

  1. 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.

  2. 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.

  3. 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.

  4. 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

case-file://bus-times-apiMedium

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.