Every ticket is written the way a real one is: what's wrong, why it matters to the business, and what “done” means. This one is live in the catalogue right now.
BUG-008S2 pointsAPI Development — PayFlow
Money is stored as floats — refunds drift by paise
Why it matters
Finance reconciliation found payments where the refundable remainder was off by a paisa — customers literally cannot get their last paisa back. IEEE-754 floats cannot represent decimal money; this bug class has caused legendary production incidents industry-wide.
What “done” means
- No floating-point arithmetic anywhere on the money path
- Fractional amounts rejected with 422
- Refund sequence exact to the last paisa (the reproduce case passes)
- `currency` present on payment/refund responses
See the whole backlog →Your tests run first. Then a reviewer reads your actual code against that ticket's definition of done and either approves it or tells you what to fix — down to the line. It is an AI, and it is strict: it will not wave work through. Here is a real one:
🔁 changes requestedround 1
Great progress — you fixed the major API-smell issues by moving error cases out of 200 responses and using proper 404/400 statuses. Customer and payment creates now correctly return 201 with `Location`, and delete returns 204 with no body. One rubric item is still incomplete: the refund endpoint returns 201 but does not set a `Location` header.
src/routes/payments.js:68
`POST /:id/refunds` now returns `201`, which is good, but the rubric also asks for `Location` on creates. Please set it here as well, pointing to the newly created refund.
The student fixed it and it was approved on round 2. That's the normal shape of the job.
Anyone can get code from somewhere. So finishing the work isn't the whole test — explaining it is.
Do I need to be good at coding already?
You need to be able to write basic code in the project's language. You do not need to have worked on a real codebase before — that's the thing this teaches.
What do I need to have?
A laptop, a GitHub account, and an internet connection. Everything else runs on our side.
How long does it take?
A project is 20–25 tickets. Most take under an hour once you're going. Nothing is timed — students typically spread it over a few weeks.
What if I get stuck?
There's a mentor built into every ticket. Ask it anything and it will guide you toward the answer — it deliberately won't write the code for you, because then it would be its work and not yours.
What if my work gets rejected?
That's normal and it's not a failure — professional code gets sent back all the time. You'll see exactly what to fix, you fix it, and you resubmit. There's no penalty and no limit.
Can I just copy the answer from an AI?
You can use AI the way working engineers do. But you'll also be interviewed about your own work afterwards, out loud, and asked to explain why it works — which is much harder to fake than code.
The only way it really makes sense is to do one ticket.
Pick a project, get your repo, and see what the first one feels like. It's free to start and nothing is timed.