📏 Grading Rubric (self-grade every assignment)

Score each dimension 0–4. Pass = ≥ 20/28 with no zeros. Below that, redo the weakest part before moving on. Log it in the assignment’s “Score” line.

Dimension024
CorrectnessDoesn’t workHappy path worksAll acceptance criteria + edge cases
TestsNoneUnit testsUnit + integration (Testcontainers) + concurrency/failure tests
Failure handlingCrashes/hangsSome errors handledTimeouts, retries, idempotency, and cancellation all proven by tests
Performance evidenceNoneA number without contextBenchmark/load test with setup, percentiles, and a bottleneck analysis
Code qualityHard to readReasonableClear boundaries, idiomatic Java/Go, patterns used deliberately
DocumentationNoneREADMEREADME + ADR + diagram + “what I’d do next”
ExplanationCan’t explainCan explain with notes5-minute teach-back without notes, including trade-offs

The "explain it" gate is the most important one. Record a 5-minute voice memo explaining the assignment. Listen back. Would an interviewer be convinced?