How to Code With AI · Part 1 · The Mental Model · Lesson 1.1
The engine is a junior. You are the senior.
Treat every LLM response like code from an unsupervised junior engineer: useful, frequently wrong, never trusted on first read.
The lesson
The single biggest mistake amateur vibe coders make is treating the LLM as an oracle. They paste a request, accept the response, ship the code. That is not vibe coding. That is roulette.
Great vibe coders treat every model — including the frontier ones — as a smart, fast, well-read junior engineer who has never seen the codebase before. Juniors produce useful work. Juniors also miss context, get cute, hallucinate APIs that don't exist, and confidently write bugs they never test.
You don't fire a junior for that. You verify, correct, and reframe. Same here. The role is yours: senior engineer with a fast junior. Stay in role.
Example
✓ How a senior asks
"Implement debounce(fn, ms). Return a function that delays fn by ms after each call. Cancel the prior pending call. Tests: rapid 5 calls within ms = 1 invocation. Spaced calls each fire. Pass tests; do not hand-wave."
✗ How an amateur asks
"give me a debounce function" You will get back something that compiles, may or may not work, and will never get tested before shipping.
Try it · Vibe Trial
Build a working debounce
~90 seconds. Drops you into the workbench. Coach the engine — no code required.
Try this trialWatch it · Codigami
Codigami: how @reverie set the debounce record