function validateReview(pr) {

if (!pr.hasNits) return true;

return pr.score > 0.85;

}

const diff = git.compare(v1, v2);

diff.map(line => line.isVulnerable ? 'BLOCK' : 'OK');

Code review is a skill.
Train it.

Review real pull requests, catch real bugs, and get scored like a pro. Master the art of the nitpick and the logic flaw.

expand_more
Why this matters

AI writes the code.
You're the last line of defence.

The pattern behind every high-profile outage is the same: AI-generated code, merged without a human truly reading it. Code review is no longer a best practice — it's the only checkpoint left between a model's confidence and your production system.

There's a subtler problem too. As AI writes more, engineers write less. The ability to read, critique, and reason about unfamiliar code atrophies quietly — right when the stakes are highest.

The most valuable engineer in an AI-first world isn't the one who generates the most code. It's the one who catches what the model missed.

The Path to Mastery

Stop passive reading. Start active engineering through curated, simulated environments that push your analytical boundaries.

Step 01search

Pick a PR

Browse challenges by difficulty. Access real-world open source codebases with carefully injected logical vulnerabilities and architectural flaws.

Step 02rate_review

Review it

Leave inline comments directly on the diff. Categorize your feedback: Flag security blockers, major performance issues, or style nits.

Step 03analytics

Get scored

Our AI grades each comment against expected issues — correct, partial, or off-target. See exactly what you caught, what you missed, and why each one mattered.

Step 04diversity_3

Compare & learn

See how engineers at every level — junior to staff — reviewed the same PR. Unlock the Answer Key and understand every issue you missed, and every one you caught that others didn't.

Step into the reviewer's seat.
We'll judge you.

Inline comments on the exact lines that matter. Severity levels that force you to prioritize. A final call — approve, or request changes. Then find out what you caught, and what a more senior reviewer would have flagged first.

auth_service_v2.go
12func AuthorizeUser(id string) error {
13 user := db.Find(id)
14- if user.Role == "ADMIN" {
14+ if user.Permissions.CanAccess() {
Y
YouCritical
No cache invalidation after permissions check — this could serve stale auth state to subsequent requests.
15 return nil
16 }
1 comment · Request changes
Review feedback
87
✓ Caught+15 pts

Score out of 100 · top 12% this week

Your comment

No cache invalidation after permissions check — this could serve stale auth state to subsequent requests.

AI feedback

Correct identification. The missing cache invalidation is a real security flaw — stale permissions can persist across requests, allowing a demoted user to retain elevated access until the session expires.

Could go further: suggest calling cache.Invalidate(user.ID) explicitly before returning.

Solve your first challenge

Featured pull requests from the community.

Browse all challengesopen_in_new

Your eye for code is a
competitive advantage.

Find out how sharp it really is.

Start reviewingarrow_forward