Skip to content
now playing: beats to debug to

practice the job, not the puzzle.

QuackCode puts you inside real codebases with a few pieces missing. Stuck? The Duck gives you a hint, never the answer. Once you know what you want, write it yourself or tell the Duck exactly what to build, then prove it works.

Every account starts with a free week, no card. Beta invites go out from the waitlist.

17 tracks: python, typescript, go, java, rust, c#, kotlin, swift, rails, laravel, c++, ai, ml, data, devops, security and architecture.

rate-limit the invoices api · 3 gaps left

fill a gap in twenty seconds.

This is a real slice of a QuackCode project. The function is a stub and four tests are red.

  1. 01Ask the Duck for a hint.
  2. 02Tell it what to build, then run the tests.
  3. 03See what a vague brief costs you.
invoices-api / app/limits.pytests 0/4
allow() is a stub. Ask me for a hint first, then tell me what to build. I build exactly what you say, nothing more.
1. stuck? start with a hint 2. then tell the duck what to build 3. check it

This gap is one of three in the full project. Finish it in the app

every project is a real repo with a few holes in it.

You never start from a blank file. You start where engineers actually start: someone else's code, a failing test, and an AI that does what you say, not what you meant.

01

open a codebase

A generated project in your stack. It runs. Some of it doesn't.

invoices-api/
├─ app/limits.py      gap 1
├─ app/middleware.py  gap 2
└─ PR #12             gap 3
02

fill the gaps

Ask the Duck for a hint, then write it yourself or tell the Duck what to build. It only sees the files you attach and only does what you specify.

you  attach limits.py
you  per-window bucket, expire it
ai   +5 lines in allow()
03

get scored on how

Tests decide if it works. Your replay shows what you asked, what you checked and what you caught.

outcome       100
verification   92
prompting      74

six kinds of gaps.

Each one trains a different part of shipping software with AI.

def allow(): ...

Code gap

A stubbed function and the tests it has to pass.

implementation
assistant.md

Prompt gap

The AI's instructions leave out something the tests expect. Find it, then direct the AI.

specifying work for ai
PR #12

Review gap

An AI teammate's pull request passes CI and hides two to four real flaws.

catching bad ai output
FAILED test_api

Debug gap

A planted bug, a stack trace and a clock.

diagnosis
.env

Config gap

A missing dependency, env var or route. Nothing boots until you wire it.

making things run
design.md

Architecture gap

A design file, outage simulations and a missing component. Make checkout survive the outage.

system design

17 tracks. one way of working.

Same IDE, same Duck, same scoring. Pick the stack you want the job in and switch whenever you like.

52projects under an hour
17multi-hour builds
6multi-day capstones
2multi-week capstones
200+hours of real work
backend

python backend

Rate limit an API, direct the AI to write middleware, catch a tenant leak.

pythonfastapiredis
frontend

typescript full stack

Make drag and drop feel instant with optimistic updates that roll back.

typescriptreacttanstack query
backend

go services

Find the race that double charges riders, then make retries idempotent.

gonet/http-race
backend

java and spring

Exact money math, problem+json errors, and an injectable admin search.

javaspring bootjpa
systems

rust systems

Parse logs without panicking and spot the lock held across an await.

rusttokioaxum
ai

ai engineering

Fix retrieval, then rewrite the bot's system prompt until the evals pass.

pythonragevals
data

data engineering

Rebuild a DAU number nobody trusts and add the tests that would have caught it.

sqldbtpostgres
infra

devops and cloud

Pass the image policy, gate deploys on tests, and review a risky Terraform PR.

dockergithub actionsterraform
architecture

system architecture

Redesign checkout until the outage simulation passes, then load test it.

yamlsimulatork6
backend

c# and .net

Stop overselling stock with EF Core concurrency, then build reliable background jobs.

c#asp.net coreef core
mobile

kotlin and android

Keep state through rotation, cancel network calls safely, sync trail notes offline.

kotlincomposeroom
mobile

swift and ios

Observable view models, a typed API client and Swift concurrency without data races.

swiftswiftuiswiftdata
backend

ruby on rails

Prevent double bookings, fix a slow dashboard, send reminder emails exactly once.

rubyrailssidekiq
backend

php and laravel

Validate reservations, book seats without races, queue confirmation texts.

phplaraveleloquent
systems

c++ performance

Kill leaks with RAII, parse ticks without copies, build a lock-free queue.

c++cmaketsan
security

security engineering

Close an IDOR, stop an SSRF, harden sessions, threat model a patient portal.

owaspfastapiexpress
ai

machine learning engineering

Find the target leak, pick metrics that match the business, train reproducibly.

pythonscikit-learnpytorch

Every track has 3-4 playable projects, plus capstones. Open the app

app/limits.py · gap 1hint mode

one duck. it hints, then it builds.

The Duck is your AI teammate. Hint mode coaches you without giving the answer away. Build mode writes exactly what you specify, from only the files you attach.

hint cost so far0 xp

practice what the job actually asks.

what you've been grinding

reverse a linked list

longest palindromic substring

trapping rain water

n-queens, again

what the job hands you

Fix the webhook the AI wrote

Rate limit an API without breaking clients

Catch the tenant leak in this PR

Tell the AI what done looks like

practice it, teach it, hire with it.

Candidates practice in the same IDE companies assess in. Students learn in the same IDE instructors grade in.

walk into the ai round already fluent.

  • Mock AI-enabled rounds. 60 minutes, three checkpoints, a model switcher.
  • Daily drills. Spot the bug, pick the better prompt, review the diff. Five calm minutes a day.
  • A verified portfolio. Every finished project links to its replay.
Start learning in the app
Your scorecardrate-limit-invoices

Sample scorecard

a free week. then pro.

Every account starts with 7 days of everything, no card needed. After that, Pro keeps it all unlocked. Founding members keep their price for good.

free week

start here

For every new learner

$0for 7 days

No card. Everything in Pro, from day one.

  • All 17 tracks
  • Hint ladder, then Build mode
  • Scorecards and replays
  • Mock interview rounds
Start your free week

pro

founding price

After your free week

foundingset at launch

Waitlist members lock in the founding price for as long as they stay subscribed.

  • Unlimited projects on every track
  • Full hint ladder and Build mode
  • Scorecards and replays
  • AI-enabled interview simulator
Get founding pricing

for teams

campus

per student, per term

For universities and bootcamps

  • Course packs
  • Instructor dashboard
  • Per-student variants
  • Grade export
Request a pilot

hire

per seat plus credits

For engineering teams

  • Assessments from your repo
  • Candidate replays
  • Custom score weights
  • Proctoring options
Talk to us

Pro pricing is announced at launch. Founding members keep their price; it rises only for new subscribers after the founding period. Campus and Hire start with a free pilot.

questions.

Isn't using AI in practice just cheating?

Not here. Directing the Duck is the skill being trained and scored. What counts is whether you specified the work well and checked what came back. Pasting answers from elsewhere shows up in your replay and teaches you nothing.

Which languages and stacks are supported?

17 tracks today: Python backend, TypeScript full stack, Go services, Java and Spring, Rust systems, C# and .NET, Kotlin and Android, Swift and iOS, Ruby on Rails, PHP and Laravel, C++ performance, AI engineering, machine learning engineering, data engineering, DevOps and cloud, security engineering, and system architecture. Projects run from 35 minutes to multi-week capstones. New stacks ship as content, not new software.

Where do the projects come from?

A generator writes a complete, passing reference project, proves it green in a sandbox, then removes pieces and proves only the intended tests fail. A human engineer reviews every project before it goes live.

Will the Duck really never give me the answer?

In practice mode you can choose to reveal one, and that gap scores zero for independence. Every other hint passes a separate leak guard that blocks anything too close to the solution. In interview and hiring modes the Duck still builds, but Hint mode and reveals are off.

How is candidate data handled?

Candidates are told exactly what is recorded. Scores support human reviewers and never make decisions on their own. Employer repos stay private to that employer.

What happens after the free week?

On day 8, projects, capstones and the live Duck need Pro, monthly or yearly. Drills stay free and everything you built stays saved to your account. No card is taken during the free week, and during the public beta everything is free.

Do I need to install anything?

No. The editor, the checks and the Duck all run from your browser. Sign in with GitHub, Google or email, and your work saves to your account so you can pick up on any device.

pull up a chair.
we'll save you a seat.

Beta invites go out in small waves. Learners get founding pricing. Instructors and hiring teams get free pilots.

By joining, you agree to our Terms and Privacy Policy.

One email when your invite is ready. Nothing else. Want a look first? Open the app.