Staff+ coding bar — how this round is graded
Expected question
"We still do a coding round for Staff. What does a strong answer look like?"
Variant forms
- "How is Staff coding graded differently from mid-level?"
- "What do interviewers listen for if the problem is only medium difficulty?"
- "Should I offer concurrency and distributed design unprompted in a coding round?"
- "How much time should I spend clarifying vs coding vs testing aloud?"
- "What are downlevel signals in a Staff coding interview?"
- "How do I narrate complexity and tests without sounding scripted?"
- "When should I stop optimizing and declare the solution good enough?"
- "How do coding rounds differ at AI labs vs classic FAANG for Staff?"
The question, as it might actually be asked
"We still do a coding round for Staff. What does a strong answer look like?"
Where this actually gets asked
Coding is still in Staff / Principal loops at Meta, Google, Amazon, and a lot of AI labs — often one medium round. They're grading communication and judgment harder than puzzle novelty (prep guides and coach reports, 2025–2026). Treat company names as archetypes unless you've got a primary source.
How you'd talk while coding
I'd spend the first two minutes locking the contract — scale, concurrency, nulls, ties — then say the brute path out loud so they know I can ship something, then the O(1)/O(log n) version I'm actually coding. While I type, I narrate the invariant ("map and list stay in sync"). After the happy path, I walk two or three tests. Staff+ extension is one sentence with a stop line: "I'd mutex the structure; sharding is a follow-up if we care about throughput — I won't design Redis Cluster unless you want that door opened."
What interviewers listen for
| Signal | Strong | Weak |
|---|---|---|
| Clarifying questions | Scale, concurrency, API contract | Starts coding immediately |
| Solution | End-to-end correct | Partial clever fragment |
| Code quality | Readable names, clear invariants | Golfed one-liners |
| Complexity | Stated before/after coding | Never mentioned |
| Tests | Walks 2–3 cases aloud | "Looks right" |
| Staff extension | Concurrency / API / failure — when asked or briefly offered | Jumps to distributed systems unprompted |
Clarifying questions you should ask first
See the pattern in every coding/0N-*.md entry. Default set:
- Constraints on N / QPS / memory?
- Single-threaded vs multi-threaded callers?
- Exact semantics on ties, duplicates, nulls?
- Mutate input or return new structures?
What not to discuss in a coding round
- Full multi-region architecture (wrong round — point to system design)
- Rewriting the language runtime
- Claiming O(1) without an invariant
- Silence after writing code (always narrate tests)
How to use this folder
- Read the problem; timebox 5 minutes of clarifying + approach on paper
- Implement without looking at the reference
- Compare: approach ladder, Staff+ deep dive, "what not to discuss"
- Practice saying complexity and two tests out loud
What's expected at each level
- Mid-level: Working happy path; needs a nudge on edges.
- Senior: Clean medium + complexity + basic tests aloud.
- Staff+: Same, plus API clarity and one credible concurrency/production extension that doesn't eat the clock.
- Principal: Teaches the invariant; ties the structure to a system they've actually owned.
Follow-up questions to expect
- "What do you do in the first two minutes?" — Lock contract, invariant, and target complexity before I touch the keyboard.
- "When do you stop extending?" — After correct code, two tests, and one relevant production note. Then I ask if they want more depth.
- "How do you show Principal signal without becoming system design?" — Name the reusable invariant and the metric that would catch a violation.
- "They want distributed immediately?" — Finish the local correct solution first, then bound the distributed talk to two minutes.