Whiteboard Performance & Panic Protocol
The other reference sheets train what you know. This one trains what you do while someone is watching you think — the part that decides whiteboard, live-coding, and "talk me through it" rounds. It is written for people who know more than they can show under observation, and who panic.
Core premise: these rounds do not score a correct answer. They score observable signals of how you work. Panic makes you go silent and chase the answer; the fix is to run a loud, visible process you can execute even while scared. The process is a checklist. You can run a checklist with shaking hands.
This sheet is the method. The day-by-day calendar and daily loop live in sheet 11.
1. What is actually being scored
An interviewer leaves the room grading five signals, roughly in this order:
- Problem intake — did you clarify before coding? (constraints, examples, edge cases)
- Communication — could they follow your thinking out loud? Silence = lost signal.
- Collaboration — did you take hints, ask, and adjust with them (a coworker), or perform at them?
- Correctness under your own test — did you trace your code on an example and find your own bugs?
- Complexity awareness — do you know what your solution costs and what's better?
Note what is not on the list: solving it fast, solving it alone, solving it without hints, an optimal answer on the first try. A candidate who narrates a brute force, states its cost, and improves it with the interviewer outscores a silent candidate who types the optimal answer. Your job is to make your thinking visible, not to be a genius in silence.
Reframe to carry in: "I am not being tested. I am pair-programming with a colleague on a problem neither of us has open-sourced yet." That is literally the thing they are hiring for.
2. The loop: CLARP (say each header out loud)
A five-phase spine. Announce the phase you're in ("Okay — clarifying first"). Announcing the phase is the communication signal, and it buys you thinking time.
| Phase | Out loud | On the board |
|---|---|---|
| C — Clarify | "Let me make sure I have the problem. Input is…, output is…, and can I assume…?" | Write the signature + 1 example I/O + constraints |
| L — Lay out | "Brute force first so we have something correct: … That's O(n²). I think we can do better with …" | Write the approach in 3–4 plain-English bullets before any code |
| A — Attack | "I'll implement the hash-map version. Let me talk as I go." | Code the bullets, top to bottom |
| R — Run | "Let me trace this on [2,7,11], target 9." | Walk the example line by line, updating variable values on the board |
| P — Polish | "Time is O(n), space O(n). Edge cases: empty input, no solution, duplicates." | Note complexity + the edge cases you handled |
The order is load-bearing. Never skip C and L to start coding — jumping to code is the single most common panic tell and it forfeits signals 1 and 2. Two minutes of clarifying out loud is never wasted.
3. Panic first-aid (when your mind goes blank)
Grounded in evidence-based performance-anxiety techniques (diaphragmatic breathing; "expressive writing" to clear the blank; narrative over abstraction):
- Board-dump on arrival (expressive writing). Before the problem, in the first 30 seconds, write your templates in a corner of the board: the CLARP headers, and 2–3 pattern skeletons you rehearse (binary-search bounds; BFS queue; hash-map counting). This externalizes memory so panic can't erase it — the formulas are already on the wall.
- One physiological breath. A slow exhale-longer-than-inhale breath (in 4, out 6) once, deliberately. It is the fastest way to drop the adrenaline spike enough to speak. Practice it so it's automatic, not a thing you forget.
- Narrate the stuck, don't hide it. Say the true sentence: "I'm blanking for a second — let me re-read the problem and think out loud." This reads as composure, not failure, and it re-opens collaboration (often the interviewer nudges).
- Shrink the problem. Solve
n = 1, thenn = 2, by hand on the board. Almost every algorithm is visible in the tiny case. This is the "narrative" move — a concrete story instead of abstract numbers. - Fall back to correct-and-slow. A working brute force you can state the cost of beats an optimal solution you can't finish. Ship it, then optimize.
Rule: a stuck moment narrated is a passing moment; a stuck moment gone silent is a failing one. The panic is not the problem — going quiet is.
4. Asking questions & working synchronously (the collaboration signal)
These are the exact scripts. Use them verbatim until they're yours.
Clarifying (before coding — always ask ≥2):
- "Can I assume the input fits in memory / is already sorted / has no duplicates?"
- "What should I return on an empty input or when there's no valid answer?"
- "Are we optimizing for time, or is space tight here too?"
**Taking a hint (this is a positive signal — accept, don't defend):**
- "That's a good nudge — let me follow it. So if I use a heap instead of sorting…"
- Never argue with a hint. The interviewer is telling you the answer they want to see you reach with them.
Thinking out loud without rambling (narrate decisions, not keystrokes):
- Good: "I'm choosing a hash map here so lookups are O(1) instead of scanning."
- Skip: reading each character you type.
When you disagree or see a tradeoff (shows seniority):
- "We could sort for simplicity, O(n log n), or use a heap for O(n log k) if k is small — which matters more here?"
Checking in (makes it synchronous):
- "Does this approach match what you had in mind before I code it?"
- "Want me to handle the duplicate case now or note it and move on?"
5. Self-review rubric (grade each rep 0–2)
The daily loop and calendar live in sheet 11. After each rep, watch two minutes of the tape — no more — and score yourself. The camera is the training stressor: it manufactures the "someone is watching" pressure you are desensitizing to.
| Signal | 0 | 1 | 2 |
|---|---|---|---|
| Talked continuously | long silences | some gaps | narrated throughout |
| Clarified before coding | jumped to code | one question | ≥2, wrote example first |
| Traced own code | didn't | partially | full trace, found issues |
| Stated complexity | forgot | time only | time + space + edge cases |
| Composure | visible spiral | recovered slowly | named it, breathed, continued |
Target: not a perfect 10, just +1 on your weakest row each day. Two weeks of +1 is a transformed interview. Log one line per rep (just rep "…") and note ONE thing to fix next rep.
6. Get a human in the loop
The camera desensitizes you to being observed; a person desensitizes you to being interrupted and judged. Both are the real stressor, split in two.
- A friendly practice partner (e.g. a family member willing to Zoom) is perfect early on: they don't need to know the CS. Their job is to watch you present and interrupt with "why did you do that?" — that alone trains composure and narration. Hand them the §5 rubric to grade you.
- A technical mock (peer, or an AI interviewer) once the reflex exists: someone who can throw a real hint or a follow-up constraint mid-problem.
- Rotate stressors so no single format stays scary.
7. Interview-morning version (the one-page panic card)
- Board-dump templates + CLARP headers in the corner first thing.
- One slow breath (in 4, out 6) before you touch the marker.
- Clarify out loud — ask two questions before any code.
- Brute force first, state its cost, then optimize.
- Narrate decisions, not keystrokes. Silence = lost points.
- Trace your code on a tiny example. Find your own bug.
- Blanking? Say so, breathe, shrink to n=1. Stuck-and-talking passes.
- It's a colleague and a problem, not a test and a judge.
8. CLARP ↔ REACTO ↔ UMPIRE crosswalk
Different bootcamps and platforms drill the same five-signal loop under different labels. If a candidate already thinks in REACTO or UMPIRE, don't make them relearn vocabulary mid-rep — map the words, keep the gates.
| CLARP (this packet) | REACTO (Fullstack Academy) | UMPIRE (CodePath) |
|---|---|---|
| Clarify | Repeat, Examples | Understand |
| Lay out | Approach | Match, Plan |
| Attack | Code | Implement |
| Run | Test | Review |
| Polish | Optimize | Evaluate |
All three gate on whether a signal was emitted, never on whether the mid-rep work is correct — a phase passes on "did they say it," not "is it right." Two imports are worth stealing regardless of which spine you run: REACTO splits Repeat from Examples into two separate gates, so restating the problem without a concrete example still fails visibly instead of sliding through (its Approach step is CLARP's Lay out under another name); UMPIRE's Match gate makes "name the pattern family" its own checkpoint, catching someone who restates and jumps straight to code without ever naming an approach.
| Weak signal | Run |
|---|---|
| Composure / silence under pressure | CLARP |
| Clarify-before-coding weak, jumps straight to code | REACTO |
| Panel uses bootcamp vocabulary ("REACTO", "UMPIRE") | REACTO |
| Default | CLARP |
9. Research backing
The web guide carries the evidence and video shelf: docs/guide/interview-practice-evidence.md.