Capstone - Mock Loop & Self-Exam
Rehearse the full loop and find your gaps before they do
No-AI coding rehearsal
After this you can regain fluency coding unaided under time pressure.
Cursor screens with no AI allowed beyond autocomplete. For a manager who has spent two years reviewing code instead of writing it, that is the round most likely to embarrass you, so the fix is reps under the real constraint, starting now.
Interactive diagram. Tab through its regions; each focused region shows its detail in the panel below.
Each capstone section is a timed mock of one of these stages - step through to see what each tests.
The bar is not LeetCode-hard puzzles. It is medium-hard problems with a backend flavor, the kind where a competent senior engineer writes clean, correct code and talks through complexity while they do it. Your muscle memory for that has atrophied if your day job is a calendar. Treat this section as a training plan, not a reading.
Set the conditions to match the screenDrill setup
- 1Kill the AI. Disable Cursor TabCursor's original autocomplete: multi-line, edit-aware suggestions you accept with the Tab key.'s full suggestions or move to a plain editor; leave only basic word-completion. Pasting from a chat is the exact thing the screen forbids, so practicing with it is practicing the wrong skill.
- 2Pick a backend-relevant language. Use the one you would actually reach for on the job - TypeScript, Python or Rust. Do not learn a new language for the interview; depth in one beats shallow breadth.
- 3Time-box to ~45 minutes per problem. Stop when the clock stops, even mid-bug. The screen is timed and the recovery skill you need is finishing a coherent solution under a deadline, not a perfect one with unlimited time.
- 4Narrate out loud. Talk through your approach, the data structure choice and the complexity as you type. Silence in a real screen reads as a candidate who can code but can't communicate and you are interviewing to lead engineers.
Build the problem set from backend primitivesWhat to practice
Skip the abstract graph trivia. Pull problems straight from the Core Services domain so the rehearsal doubles as system-design warm-up. Each of these is implementable in 30 to 45 minutes and maps to something you will own.
Refill at a fixed rate, cap at burst size.
Handle concurrent callers correctly.
Discuss per-key vs global and the clock source.
Exponential backoff capped at a ceiling.
Add full jitter to avoid thundering herd.
Stop on non-retryable errors; bound total attempts.
First call executes, stores result by key.
Repeat call returns the stored result, no re-execution.
Handle the in-flight race and a TTL for eviction.
O(1) get and put with a hashmap plus doubly-linked list.
Evict the least-recently-used on overflow.
Name where you'd put a TTL or size-based variant.
Add one or two stretch problems with distributed-systems texture: a fixed-window vs sliding-window counter, a dead-letter queue with replay or a small consistent-hashing ring. Five problems across a week is enough to get the rust off.
class TokenBucket {
private tokens: number;
private lastRefill: number;
constructor(
private readonly capacity: number,
private readonly refillPerSec: number,
) {
this.tokens = capacity;
this.lastRefill = Date.now();
}
// Returns true if the request is allowed, false if throttled.
allow(cost = 1): boolean {
const now = Date.now();
const elapsedSec = (now - this.lastRefill) / 1000;
this.tokens = Math.min(
this.capacity,
this.tokens + elapsedSec * this.refillPerSec,
);
this.lastRefill = now;
if (this.tokens >= cost) {
this.tokens -= cost;
return true;
}
return false;
}
}Score every run honestlySelf-rubric
- Correctness
- Does it pass the edge cases you'd test in code review - empty input, concurrent access, the refill-while-empty case? Run your own adversarial tests, don't eyeball it.
- Communication
- Did you state the approach and complexity before coding and flag trade-offs as you went? An interviewer hires the narration as much as the diff.
- Unaided fundamentals
- Be brutal: would this pass a senior bar with no AI? If you stalled on the linked-list pointers or the off-by-one in the window, that's the gap to drill.
Two runs scoring 4+ across all three means you've cleared the screen condition. Until then, keep repping.
The manager-specific trap is rust disguised as rust-removal. You'll be tempted to read solutions instead of writing them, because reading feels productive and typing feels slow. Reading is not the skill being tested. Close the tab, start the timer and produce a working file from a blank editor - that's the only rep that counts.
When you finish early, don't go quiet. Volunteer the complexity, name one thing you'd change for production scale and propose a test you didn't have time to write. For an EM candidate this signals the instinct you'll bring to code review, which is exactly the judgment the screen is probing under the no-AI rule.
Takeaway. Practice 3–5 backend primitives - rate limiter, backoff+jitter, idempotency, LRU, token bucket - from a blank editor with no AI, narrating complexity and score yourself on correctness, communication and whether it clears a senior bar unaided.
Self-check
QWhy does Cursor add jitter to exponential backoff and what failure does it prevent?
System-design mock
After this you can deliver a complete Core-Services design under interview conditions.
The design round is your home turf as a Core Services EM and the way to waste it is to ramble. Run a timed 45-minute mock on a system you'll actually own and force yourself to lead with opinions the JD explicitly asks for.
Pick exactly one prompt and commit. Switching designs mid-interview reads as indecision and the panel would rather see you go deep than tour three shallow sketches.
OAuth/OIDCOpenID Connect. A modern standard that powers single sign-on, built on OAuth. login, token issuance, refresh.
Session vs token, rotation, revocation.
RBACRole-Based Access Control. Granting permissions by role rather than configuring each person individually. and enterprise SSOSingle Sign-On. One company login (usually via SAML or OIDC) instead of a separate password per tool./SAMLAn enterprise standard that powers single sign-on. at the edges.
At-least-once delivery with retries.
DLQ, idempotency, signing, ordering.
Fan-out and throughput at 1M+ DAU scale.
Long-running LLM workflows, streaming.
Queueing, backpressure under bursty load.
State, cost and latency trade-offs.
The 45-minute timelineRun it on the clock
- 10–8 min · Requirements and scope. Pin functional needs and the numbers: scale (1M+ DAU), latency targets and the consistency vs availability stance. Write the explicit non-goals so you don't get dragged into them.
- 28–13 min · Delivery semantics and SLOs. State them out loud before you draw anything: at-least-once vs exactly-once, the SLO and error budget, the reliability target. This is the move most candidates skip and the one the JD rewards.
- 313–28 min · High-level design. Sketch the components and the data flow. Define the service contract - the API between product surfaces and your infra layer - and where the boundaries sit.
- 428–40 min · Deep-dive one component. Pick the hardest part (the retry engine, the token store, the queue) and go to the metal: data model, indexes, the hot path, the race conditions.
- 540–45 min · Failure modes and wrap. Walk partial outage, poison messages, hot keys and how the system degrades gracefully. Close with what you'd build first and what you'd defer.
Interactive diagram. Tab through its regions; each focused region shows its detail in the panel below.
The semantics+SLO step is the gate - skip it and the rest reads as junior altitude.
What you must state explicitlyThe non-negotiables
- Dimension
- Delivery semantics
- Weak (vague)
- “We'll retry failed deliveries.”
- Strong (the bar)
- At-least-once with idempotency keys; consumers dedupe; exactly-once is a consumer-side illusion, not a transport guarantee.
- Dimension
- Reliability target
- Weak (vague)
- “It should be highly available.”
- Strong (the bar)
- 99.9% delivery within 60s; error budget spent triggers a freeze; DLQ alert at >0.1% over 5 min.
- Dimension
- Service contract
- Weak (vague)
- “The API sends events.”
- Strong (the bar)
- Versioned event schema, signed payloads, documented retry/timeout behavior, backward-compatible additions only.
- Dimension
- Scale awareness
- Weak (vague)
- “It'll handle the load.”
- Strong (the bar)
- Names the hot path, the sharding key, the cache layer and where the database becomes the bottleneck first.
| Dimension | Weak (vague) | Strong (the bar) |
|---|---|---|
| Delivery semantics | “We'll retry failed deliveries.” | At-least-once with idempotency keys; consumers dedupe; exactly-once is a consumer-side illusion, not a transport guarantee. |
| Reliability target | “It should be highly available.” | 99.9% delivery within 60s; error budget spent triggers a freeze; DLQ alert at >0.1% over 5 min. |
| Service contract | “The API sends events.” | Versioned event schema, signed payloads, documented retry/timeout behavior, backward-compatible additions only. |
| Scale awareness | “It'll handle the load.” | Names the hot path, the sharding key, the cache layer and where the database becomes the bottleneck first. |
Score your recording: if you only landed the left column, you designed at junior altitude.
Score against the rubricSelf-grade
- Clear abstractions
- Did boundaries between components and the product/infra contract come out crisp or did everything blur into one box?
- Defensible trade-offs
- When you chose at-least-once over exactly-once or SQS over Kafka, did you name the cost you accepted and why it's the right one here?
- Scale awareness
- Did you reason about 1M+ DAU concretely - hot paths, caching, DB scaling, multi-region - or hand-wave it?
- Security
- Did auth, signing, token rotation and least-privilege show up unprompted, given this layer is existential for the product?
Record the run and rewatch it. The thing to check is whether you led with strong, defensible opinions or hedged everything into “it depends.” The JD asks for someone with defensible positions on reliability and performance. A panel of staff engineers can smell a manager who has lost the thread of how the systems actually work and the tell is a design with no opinions in it.
“I'd build webhook delivery as at-least-once, because exactly-once across a network is a fantasy. I push the dedupe responsibility to consumers via idempotency keys, accept that they'll occasionally see a duplicate and spend my reliability budget on getting every event delivered within sixty seconds instead.”
Takeaway. Run one design (auth, webhooks or agent pipeline) on a 45-minute clock, state delivery semantics, SLOs and the service contract explicitly, deep-dive one component and rewatch the tape to confirm you led with opinions rather than hedging.
Self-check
Behavioral panel simulation
After this you can pressure-test your story bank against real questions.
You can pass every technical round and still lose this one. The people-management panel decides whether you can hire, grow and lead engineers in a flat org and a thin story bank shows immediately under follow-up.
Interactive diagram. Tab through its regions; each focused region shows its detail in the panel below.
Aim your five stories at the heaviest signals first; tag each answer to one of these.
Run this as a real mock, not a re-read of your resume. Set up five prompts, answer each in two minutes and have a partner or a recording probe for the detail you skipped.
The five prompts to rehearseCover the EM canon
A bar-raising call you made, especially a borderline no.
How you defined the bar and the signal you trusted.
Ties to: high talent-density mindset.
The specific gap, the plan, the timeline, the outcome.
Whether they recovered or you exited them and how.
Ties to: reliability ownership, talent density.
A real disagreement - with a peer, a report or an exec.
What you actually said and how it resolved.
Ties to: truth-seeking, spirited debate.
A slip you owned, the root cause, the fix.
What you changed so it didn't recur.
Ties to: ownership, intellectual honesty.
The fifth prompt is a changed-my-mind moment: a time evidence flipped a strong-held position of yours. Cursor's culture prizes truth-seeking over ego, so a candidate who can't recall ever being wrong reads as someone who isn't actually weighing evidence.
Answer in STAR, with teethThe structure
- Situation + Task: ten seconds of context, no backstory dump. The panel wants the decision, not the org chart.
- Action: the bulk of the answer, in first person - what you did, not what the team did. “We aligned” is a red flag; “I told the staff engineer the design wouldn't scale and why” is an answer.
- Result: a real metric and a real consequence. “Cut p99 from 1.2s to 300ms” or “the engineer was promoted within two quarters” beats “it went well.”
- One admitted mistake somewhere in every set of answers. Ownership is the trait being scored; a flawless hero in every story reads as someone editing the truth.
Tag each answer to a Cursor valueMake fit legible
- Truth-seeking
- Owning a mistake, following evidence over your prior, surviving spirited debate without making it personal.
- High agency / passion
- Shipping something nobody asked you to or a moment your excitement for the problem pulled the team forward.
- Player-coach humility
- Doing unglamorous hands-on work as a manager - taking the on-call page, writing the migration nobody wanted.
- Talent density
- Raising the bar, the borderline-no hire, growing an engineer into a level-up without inflating headcount.
If two of your five answers map to the same value, find a story for an uncovered one before the panel does.
Over-rehearsal is its own failure mode. Answers that sound like a memorized monologue lose the texture that makes them believable and a flat org interviewing for a teammate is allergic to corporate polish. Rehearse the bullets and the metric, then let the language come out fresh each time so it lands as lived, not recited.
Have your partner ask the killer follow-up after every answer: “what exactly did you say?” Specificity is the dividing line between a manager who did the thing and one who watched it happen. If you can't quote yourself, that story isn't interview-ready - rebuild it around the concrete words and numbers you remember.
Takeaway. Rehearse five EM stories - a hiring call, an underperformer, a conflict, a missed deadline, a changed-my-mind moment - in STAR with real metrics, one admitted mistake, each tagged to a Cursor value and stress-tested with “what exactly did you say?”
Self-check
Onsite-project simulation
After this you can rehearse building real code with a team, EM-style.
Cursor's signature round is a paid, multi-hour working session - one or two ~8-hour days building a real project alongside the team. No whiteboard theater. They watch how you actually build and whether they'd want you on the next desk.
You can't fully replicate a paid onsite at home, but you can rehearse the two things that go wrong: environment friction that eats your hours and forgetting that as an EM you're being judged on collaboration as much as the artifact.
Run a self-simulationTwo to four hours, fresh codebase
- 1Pick a real, small feature in an unfamiliar repo. Clone an open-source backend project you don't know and add something concrete - a rate-limit header, a webhook signature check, a retry wrapper. The unfamiliarity is the point; the onsite drops you into the team's codebase cold.
- 2Pair if you possibly can. Grab a friend to drive or watch. Solo practice misses the entire collaboration signal, which is half of what this round scores for a manager.
- 3Work the EM balance, not just the IC one. Contribute real code, but also think aloud about prioritization, where you'd unblock a teammate and what you'd raise in review. They're hiring a player-coach, so show both halves.
- 4Timebox and ship something working. Even a small merged-quality change beats a sprawling half-built one. The onsite rewards taste and finish over ambition.
Kill environment friction before the daySetup speed
Hours lost to a broken setup are hours you can't get back and fumbling your own editor in front of the team that builds the editor is a bad look. Get fast and fluent before you arrive.
- Know your Cursor and editor shortcuts cold - multi-cursor, jump-to-symbol, integrated terminal, git, test runner.
- Have a clean dotfiles/setup you can stand up in minutes and rehearse cloning + building + testing an unfamiliar repo end to end.
- Pre-decide your debugging loop: how you read an unfamiliar codebase, where you set the first breakpoint, how you find the test that covers the area.
Solicit feedback on the right axisWhat actually gets scored
- Signal
- Collaboration
- What they're watching
- Do you make pairs better - ask, listen, hand off cleanly?
- How to rehearse it
- Have your partner rate how it felt to build with you, not just the code.
- Signal
- Communication
- What they're watching
- Do you narrate intent and surface blockers early?
- How to rehearse it
- Practice thinking aloud; ask for the moments you went quiet or rabbit-holed.
- Signal
- Judgment / taste
- What they're watching
- Do you scope tightly and finish cleanly?
- How to rehearse it
- Review your diff as if it were a PR you'd approve or reject.
- Signal
- Culture fit
- What they're watching
- Would this team want you on the next desk?
- How to rehearse it
- Ask the honest question: was I someone you'd want to keep working with?
| Signal | What they're watching | How to rehearse it |
|---|---|---|
| Collaboration | Do you make pairs better - ask, listen, hand off cleanly? | Have your partner rate how it felt to build with you, not just the code. |
| Communication | Do you narrate intent and surface blockers early? | Practice thinking aloud; ask for the moments you went quiet or rabbit-holed. |
| Judgment / taste | Do you scope tightly and finish cleanly? | Review your diff as if it were a PR you'd approve or reject. |
| Culture fit | Would this team want you on the next desk? | Ask the honest question: was I someone you'd want to keep working with? |
The manager failure mode here is going full IC and disappearing into the code, head down, headphones on. That's the opposite of what they're hiring. Equally bad is the reverse - directing traffic without writing a line, which reads as someone who's forgotten how to build. Cursor's culture is hands-on and flat, so the pass is a player-coach who ships real code and lifts the room at the same time.
End the simulation with one question: would this team want to work with me and would they want to work for me? Sit with the answer. If your partner's feedback was “great code, hard to pair with,” that gap will end the real onsite and you have time to close it now.
Takeaway. Simulate a few hours building a small real feature in an unfamiliar repo, ideally pairing, work the player-coach balance of shipping code while unblocking and raising the bar, kill setup friction beforehand and get feedback on collaboration - not just the artifact.
Self-check
QCursor's onsite working session is paid and runs alongside the real team. For an EM candidate, what is it actually testing that a take-home or whiteboard wouldn't?
Gap analysis & study plan
After this you can convert mock results into a focused final-week plan.
The mocks are worthless if you don't act on them. This section turns four messy scorecards into one ruthless final-week plan that spends your remaining time on the two things most likely to sink you.
Lay every dimension on one grid and score it cold. The point is to find your floor, not flatter your ceiling.
Score the full surfaceHonest 1–5 across the board
- Dimension
- Coding fundamentals (no-AI)
- Score (1–5)
- -
- Evidence from your mocks
- Did two runs clear 4+ on all three axes?
- Dimension
- Auth architecture
- Score (1–5)
- -
- Evidence from your mocks
- OAuth/OIDCOpenID Connect. A modern standard that powers single sign-on, built on OAuth., JWT pitfalls, rotation/revocation, RBACRole-Based Access Control. Granting permissions by role rather than configuring each person individually., SSOSingle Sign-On. One company login (usually via SAML or OIDC) instead of a separate password per tool..
- Dimension
- Webhook / event delivery
- Score (1–5)
- -
- Evidence from your mocks
- At-least-once, backoff+jitter, DLQ, idempotency, signing.
- Dimension
- Agent backend infra
- Score (1–5)
- -
- Evidence from your mocks
- Long-running workflows, streaming, queueing, backpressure, cost.
- Dimension
- SCM integration
- Score (1–5)
- -
- Evidence from your mocks
- Rate limits, pagination, partial-outage degradation, ingestion.
- Dimension
- People stories
- Score (1–5)
- -
- Evidence from your mocks
- Five STAR answers, real metrics, one owned mistake.
- Dimension
- Values fluency
- Score (1–5)
- -
- Evidence from your mocks
- Each story tagged to a Cursor value, lands authentically.
| Dimension | Score (1–5) | Evidence from your mocks |
|---|---|---|
| Coding fundamentals (no-AI) | - | Did two runs clear 4+ on all three axes? |
| Auth architecture | - | OAuth/OIDCOpenID Connect. A modern standard that powers single sign-on, built on OAuth., JWT pitfalls, rotation/revocation, RBACRole-Based Access Control. Granting permissions by role rather than configuring each person individually., SSOSingle Sign-On. One company login (usually via SAML or OIDC) instead of a separate password per tool.. |
| Webhook / event delivery | - | At-least-once, backoff+jitter, DLQ, idempotency, signing. |
| Agent backend infra | - | Long-running workflows, streaming, queueing, backpressure, cost. |
| SCM integration | - | Rate limits, pagination, partial-outage degradation, ingestion. |
| People stories | - | Five STAR answers, real metrics, one owned mistake. |
| Values fluency | - | Each story tagged to a Cursor value, lands authentically. |
Anything scoring 3 or below is a candidate for your two-area focus. Don't average - your weakest dimension is what gets probed.
Pick your two weakest areasConcentrate, don't spread
With a week left, breadth is the enemy. Two areas drilled to depth move your odds more than seven touched lightly. If coding fundamentals and webhook semantics are your floor, the whole final week is rate limiters and at-least-once delivery and everything else is maintenance reps.
- 60% of time
- Your two weakest areas, drilled to interview depth - write the code, run the design mock again, until the score moves.
- 25% of time
- Maintenance reps on areas already at 4+, so they don't decay. One problem or one design pass each.
- 15% of time
- The JD walk-through and your cheat sheet (below). This is the glue that makes everything legible to the panel.
Re-read the JD line by lineNo responsibility uncovered
Go down every responsibility and qualification and confirm you can answer it with a concrete example, not a slogan. If a line has no story behind it, that's a hole the panel can find.
- Each responsibility (lead/grow the team, own auth, own webhooks, own agent backend, own SCM, define contracts, stay hands-on) gets one specific example you can speak to.
- Each qualification (distributed-systems depth, auth depth, event-driven architecture, people leadership, hands-on coding) gets a proof point - a system you ran, a metric you moved, an engineer you grew.
- Anywhere you have no example, decide now whether to build a story from real experience or to honestly frame it as a growth area you're hungry for.
Prepare sharp questions for themCuriosity is signal
The questions you ask are scored too. Generic ones (“what's the culture like?”) waste the slot; specific ones prove you understand the charter and you've already started doing the job in your head.
Where does the current auth/webhook/agent stack hurt most today?
What's the reliability target now and the biggest gap to it?
Which service contract is the messiest to evolve?
How hands-on is the EM expected to be week to week?
What does talent density look like here and where's the next hire?
How are decisions actually made in a flat org - show me a recent one?
Build the one-page cheat sheetYour final artifact
- 90-day plan
- What you'd assess, stabilize and ship in the first quarter on Core Services - reliability baseline, the riskiest contract, the first hire.
- STAR index
- Your five stories as one-line triggers (gap / metric / value) so you can recall any of them under pressure.
- Strong-opinion positions
- Your defensible stances on reliability - at-least-once + idempotency, error budgets over heroics, contracts as first-class - ready to deploy in any round.
Review this the morning of each round. It's the most impactful page you'll carry.
Cursor screens for a credible builder who can also lead - every round is a different angle on that one question. Your final week should make both halves undeniable: you ship clean code unaided and you grow a team that ships more.
Takeaway. Score every dimension cold, pour 60% of the final week into your two weakest, walk the JD line by line for a concrete example behind each responsibility, prep specific questions and carry a one-page sheet: 90-day plan, STAR index and your strong-opinion reliability positions.
Self-check
QWith one week left and mock scores in hand, why concentrate on your two weakest areas instead of polishing your strengths or covering everything evenly?