Discovery & Customer Craft
Decomposition, stakeholder leadership and the client simulation
Running discovery that finds the real bottleneck
After this you can lead a discovery conversation that surfaces the true problem.
A customer engineer will hand you a problem statement. It is almost never the real problem. Your first job as a Forward Deployed Engineer is to find the bottleneck they can't see, then prove you found it before you propose a single line of work.
The stated ask is a symptom that already passed through a manager, a planning doc and someone's pet theory. "We want Cursor to auto-review PRs" might really mean review takes four days because two staff engineers are the only approvers and they're underwater. Auto-review the wrong way and you've added noise to a queue that was already the constraint.
The interviewer for the decomposition round is watching for one thing above all: do you scope or do you leap? An FDE who restates the brief and starts designing has already failed the most important filter. The one who says "before I build anything, I need to understand where time actually goes" has passed it.
Interactive diagram. Tab through its regions; each focused region shows its detail in the panel below.
Diagnose where time waits, agree a number, then earn the right to build.
Questions that surface the bottleneckdiscovery toolkit
Good discovery questions force concreteness. Vague answers hide the constraint, so you trade abstractions for numbers and last-week examples.
- What you ask
- Walk me through the last change you shipped - where did it wait?
- What it really probes
- Locates the actual queue, not the imagined one. Time spent waiting is the bottleneck.
- What you ask
- What have you already tried here and why did it fall short?
- What it really probes
- Saves you from re-proposing a dead idea and reveals org constraints you'd otherwise trip on.
- What you ask
- If this worked, what number moves and by how much?
- What it really probes
- Converts "better" into a measurable target the customer will own.
- What you ask
- Who feels this pain daily and who decides it's solved?
- What it really probes
- Separates the person living the problem from the person who signs off.
- What you ask
- What's the cost of doing nothing for another quarter?
- What it really probes
- Tests whether this is real or a nice-to-have you shouldn't burn a sprint on.
| What you ask | What it really probes |
|---|---|
| Walk me through the last change you shipped - where did it wait? | Locates the actual queue, not the imagined one. Time spent waiting is the bottleneck. |
| What have you already tried here and why did it fall short? | Saves you from re-proposing a dead idea and reveals org constraints you'd otherwise trip on. |
| If this worked, what number moves and by how much? | Converts "better" into a measurable target the customer will own. |
| Who feels this pain daily and who decides it's solved? | Separates the person living the problem from the person who signs off. |
| What's the cost of doing nothing for another quarter? | Tests whether this is real or a nice-to-have you shouldn't burn a sprint on. |
Each question trades a comfortable abstraction for a concrete fact you can build against.
Map the inputs before you map the solution
Discovery isn't only about pain. You also have to know what you'll actually be allowed to touch, because that constrains every design you'll later propose.
- Code access
- Repo, branch policy, read vs. write, how a sandbox gets stood up
- Data you can use
- Logs, traces, PR history, CI runs - and what's off-limits for compliance
- Conventions
- Lint rules, framework patterns, the .cursorrules they'd want an agent to honor
- Existing stack
- CI provider, review tooling, identity (SSOSingle Sign-On. One company login (usually via SAML or OIDC) instead of a separate password per tool.), where secrets live
- Definition of done
- What a senior engineer would have to see to actually adopt this
An MVP you can't get code access for is a slide, not a deliverable.
Earning credibility fast
Senior engineers gate-keep their codebase. They've watched consultants parachute in with confident nonsense and they'll test you in the first ten minutes. You earn the right to ask hard questions by demonstrating you already understand their world.
- Read the repo before the call. Reference a real file or pattern - "I saw your migrations run through a custom script, not the framework's" - and they relax.
- Use their vocabulary, not vendor vocabulary. Say "flaky test quarantine," not "quality enablement."
- Admit the limits of an AI agent honestly and early. Over-promising on the first call is how you lose the room for the rest of the engagement.
- Show, don't claim. One small, correct edit live in their editor beats a deck about capability.
When the decomposition prompt lands, spend your first two minutes asking, not answering. Narrate it: "I want to diagnose before I prescribe, so let me ask a few things first." Then run the bottleneck questions out loud. Interviewers grade the questions you ask at least as heavily as the design you eventually give.
Takeaway. The stated problem is a symptom that passed through three people. Diagnose where time actually waits before you prescribe anything - and the questions you ask are themselves the signal.
Self-check
QWhich discovery question is most likely to locate the real bottleneck?
The decomposition method
After this you can scope an ambiguous problem using a repeatable five-step framework.
The decomposition round hands you a deliberately under-specified enterprise problem and grades how you scope it, not whether you solve it. There is a repeatable method and running it visibly is the whole point.
A representative prompt: "A customer has a 1M-line monolith on a deprecated framework and wants off it. Where do you start?" The candidate who starts describing a codemod has lost. The one who runs the five steps below, out loud, has won before they write any code.
- 1Clarify the goal. Restate the problem in your words and confirm the real objective. Is the win getting off the deprecated framework or is it stopping the security CVEs that framework keeps generating? Those lead to different work.
- 2Identify stakeholders and metrics. Name who owns the code, who approves the migration and who feels the pain. Pin a success metric you both agree on: "95% of files migrated with green CI and zero behavior regressions."
- 3Map the inputs. What's the framework boundary, the test coverage, the CI setup, the code access? Coverage especially decides whether you can move fast or have to build a safety net first.
- 4Decompose into subproblems. Break the monolith migration into independently shippable slices: detect usages, transform one module, verify, roll out. Each slice has its own risk and value.
- 5Propose a walking-skeleton MVP, then iterate. Pick the thinnest slice that proves the whole pipeline works end-to-end, ship it, learn and expand. Make explicit that this is iteration one, not the finished system.
Jumping straight to a solution. The interviewer wants to see scoping discipline. If your instinct under pressure is to look smart by proposing an architecture, suppress it. State your assumptions, ask your clarifying questions and only then decompose. "I'm going to assume X - tell me if that's wrong" is a stronger move than a confident wrong answer.
Sequence subproblems by risk and value
Not all subproblems deserve equal attention up front. Once you've decomposed, order the work so the scariest unknown gets tested first. If the riskiest piece is going to fail, you want to know in week one, not month three.
Interactive diagram. Tab through its regions; each focused region shows its detail in the panel below.
Attack the high-risk, high-value bet first; defer the pretty, low-value polish.
- Subproblem
- Will an agent transform this framework's idioms correctly at all?
- Risk
- High
- Value
- High
- When to attack
- First - it's the whole bet. Prove it on one gnarly module.
- Subproblem
- Can we detect every usage to migrate?
- Risk
- Medium
- Value
- High
- When to attack
- Early - feeds scope and the success metric.
- Subproblem
- Building a slick progress dashboard
- Risk
- Low
- Value
- Low
- When to attack
- Defer. Pretty, but it proves nothing about feasibility.
- Subproblem
- Rollout sequencing across 200 services
- Risk
- Medium
- Value
- Medium
- When to attack
- Later - only matters once the transform is proven.
| Subproblem | Risk | Value | When to attack |
|---|---|---|---|
| Will an agent transform this framework's idioms correctly at all? | High | High | First - it's the whole bet. Prove it on one gnarly module. |
| Can we detect every usage to migrate? | Medium | High | Early - feeds scope and the success metric. |
| Building a slick progress dashboard | Low | Low | Defer. Pretty, but it proves nothing about feasibility. |
| Rollout sequencing across 200 services | Medium | Medium | Later - only matters once the transform is proven. |
Attack the riskiest, highest-value unknown first. De-risk the bet before you polish the edges.
Practice FDE prompts out loud and timed. Set a 12-minute clock and narrate the five steps on a prompt like "automate our incident postmortems" or "migrate Python 2 to 3 across a legacy data platform." Record yourself once. You'll catch the exact moment you start solving instead of scoping - that's the habit to break.
Takeaway. Clarify the goal, name stakeholders and metrics, map inputs, decompose, then propose a walking skeleton. Run it out loud - and attack the riskiest unknown first, because scoping discipline is the skill being graded.
Self-check
QWhat is the single most common way candidates fail the decomposition round?
The walking-skeleton MVP mindset
After this you can propose the thinnest end-to-end version that proves value fast.
A walking skeleton is a version that touches every stage of the pipeline and does almost nothing well. It's ugly, it's narrow and it's live in days. That's the point.
Most engineers build depth-first: a beautiful transform engine, then weeks later the plumbing to actually run it. An FDE builds breadth-first. You wire input to output through every real step on a single trivial case, prove the path exists, then thicken each stage. A working sliver in three days creates a feedback loop that no design doc can.
Build the perfect core engine first.
Integration left for "later."
Nothing demoable for weeks.
Customer trust erodes while you're heads-down.
One trivial case flows end-to-end on day three.
Every stage exists, none is deep yet.
Customer sees it run on their code immediately.
Each iteration thickens a real, used path.
Why days, not weeks
Speed isn't about looking productive. A thin slice running on the customer's own code does two things a polished v2 can't: it surfaces the wrong assumptions early and it earns the trust that buys you room for the hard parts.
- 1Pick one real case. Not a toy - the simplest actual instance from their repo. One file, one PR, one incident.
- 2Wire the whole path. Input, the model call, verification, output back where they'd consume it. Stub anything deep.
- 3Run it in front of them. Live, on their code, in their editor or CI. Let them see it work and fail.
- 4Thicken the riskiest stage next. Use what broke to decide where depth goes first.
Deferring to v2 without sounding like you're cutting corners
Saying "we'll handle that later" sounds like dodging. Tying every deferral to the agreed success metric makes it sound like judgment, because it is.
"V1 migrates the 80% of files that follow your standard pattern and proves green CI on every one. The 20% with custom escapes I'm deliberately leaving for v2 - they're rare, risky and I don't want them holding up the win we agreed to measure. We'll do them by hand or with a tighter pass once the skeleton's trusted."
Tie the MVP to the metric and the first version is already measurable. If the agreed target was "95% of files migrated with green CI," then v1 reports its own number against that target on day one. A walking skeleton that can't tell you whether it's working isn't a skeleton - it's a guess.
This mindset isn't only for the build onsite. The decomposition round wants a walking-skeleton MVP as the answer. The system-design round wants you to scope a skeleton, then harden it. The paid onsite literally rewards getting something thin live and defensible over something grand and broken. It's the same instinct everywhere: ship the sliver, prove it, expand.
Takeaway. Build breadth-first: one trivial case through every stage, live in days. Tie it to the agreed metric so v1 is already measurable and frame every deferral against that metric so judgment doesn't read as cutting corners.
Self-check
Communicating tradeoffs & the client simulation
After this you can handle a hard customer conversation with ownership and a path forward.
The client-simulation round puts you across from a frustrated senior engineer - sometimes a real one, sometimes the interviewer playing one. The eval isn't whether you have the answer. It's whether they'd want you back in their codebase next quarter.
Cursor's culture is truth-seeking, which in a customer conversation means you name the real problem and the real risk, including bad news, without flinching. The skill is delivering hard truths in a way that preserves the relationship rather than detonating it.
Deliver bad news with a path forward
Never hand a customer a problem and stop. A problem with no options is an excuse. A problem with two options and a recommendation is leadership.
Interactive diagram. Tab through its regions; each focused region shows its detail in the panel below.
Same bad news, opposite read: one is an excuse, the other is leadership.
- Weak (problem only)
- "The migration is blocked, the agent keeps breaking your auth tests."
- Strong (problem + path)
- "The agent breaks your auth tests because they depend on a global fixture. Two options: I carve auth out of the automated pass and do it by hand this week or we spend two days teaching the agent that fixture. I'd carve it out - faster to your green-CI target. Your call."
- Weak (problem only)
- "We can't guarantee the model won't make mistakes."
- Strong (problem + path)
- "The model will occasionally get an edit wrong, so I'm gating every change behind your existing CI and a human approval - nothing merges unreviewed. Here's the failure rate I'm seeing and the guardrail catching it."
| Weak (problem only) | Strong (problem + path) |
|---|---|
| "The migration is blocked, the agent keeps breaking your auth tests." | "The agent breaks your auth tests because they depend on a global fixture. Two options: I carve auth out of the automated pass and do it by hand this week or we spend two days teaching the agent that fixture. I'd carve it out - faster to your green-CI target. Your call." |
| "We can't guarantee the model won't make mistakes." | "The model will occasionally get an edit wrong, so I'm gating every change behind your existing CI and a human approval - nothing merges unreviewed. Here's the failure rate I'm seeing and the guardrail catching it." |
Bad news plus options plus a recommendation. Stopping at the problem is the failure.
De-escalate with diagnosis, not defense
When a senior engineer is angry, the instinct is to defend the work. Resist it. Defensiveness confirms their fear that you don't get it. Diagnostic questions do the opposite: they show you're treating their frustration as data.
- 1Acknowledge the cost to them, specifically. "You've lost two days to this and you're getting heat from your VP - that's on me to fix."
- 2Ask, don't justify. "Walk me through exactly what broke and when - I want to see what you're seeing."
- 3Take ownership in the first person. "I'll own getting this unblocked. Here's what I'm doing in the next 24 hours."
- 4Close the loop. Come back with the fix and the metric, so the next conversation starts from trust.
The fastest way to lose a senior engineer's trust is to claim the model guarantees something it can't. Never say "the agent won't break anything." Say what's true: "the agent will sometimes be wrong and here's the guardrail that means a wrong edit never reaches main." Honesty about limits, paired with a guardrail, is more reassuring than a promise they know is false.
Hold a technical boundary
Sometimes the customer wants something unsafe - auto-merge without review, an agent with write access to production, skipping the eval gate to hit a date. Saying yes to keep them happy is how you lose the account when it breaks. You hold the line and explain the why in their terms.
"I won't ship auto-merge without a human gate and here's why it protects you: the day an agent edit slips a regression into main with no reviewer on the hook, this whole program loses its credibility internally - and I'd rather hit your date with a gate than lose the program to one bad merge. Let me show you how the gate adds about ten minutes, not a day."
The goal of the whole conversation is one thing: a customer who adopts your workflow and trusts you with the next one. Winning the argument and losing the relationship is a loss.
Takeaway. Bad news always travels with options and a recommendation. De-escalate by diagnosing, not defending; own it in the first person; never over-promise on the model; and hold unsafe boundaries by explaining how the boundary protects them.
Self-check
QThe customer demands auto-merge of agent edits with no human review to hit a deadline. What's the right move?
System design under enterprise constraints
After this you can design a customer-deployable AI workflow that survives real enterprise constraints.
The system-design round gives you an AI workflow and a hostile environment: SSOSingle Sign-On. One company login (usually via SAML or OIDC) instead of a separate password per tool., data residency, legacy systems, an security team that says no by default. They grade your reasoning out loud, not a single correct diagram.
Take a concrete brief: "design automated PR review for a bank with 3,000 engineers, self-hosted everything, SOC 2, no source code may leave their VPC." The naive answer wires a model to a webhook. The strong answer treats trust boundaries, observability and rollback as load-bearing from the first sketch.
The constraint checklistraise these before they have to
- Trust boundary
- Where does code cross a network edge? In a bank, the model runs in-VPC or via an approved gateway - nothing leaves.
- Auth / SSO / SAML
- Identity flows through their IdP. The agent acts as a scoped service principal, not a shared key.
- Data residency
- Source, logs and traces stay in-region. ZDRZero Data Retention. A contractual guarantee that the model provider won't store your code or train on it. where the model is hosted; no training on their code.
- Observability
- Every model call traced: prompt, tokens, latency, cost, outcome. You can't debug what you can't see.
- Evals
- A golden set of PRs with known-good reviews; pass/fail gates run before any rollout widens.
- Failure modes
- Model down, bad suggestion, rate limit, timeout - each has a defined fallback, defaulting to human review.
- Rollback
- Feature-flagged per team; one switch reverts to the prior workflow with no data loss.
Naming these before the interviewer asks is the signal that you've actually shipped into an enterprise.
Interactive diagram. Tab through its regions; each focused region shows its detail in the panel below.
The agent at the top is only as trustworthy as the layers holding it up.
Skeleton first, then harden
Even in system design, scope a walking skeleton before you describe the production system. It shows the same instinct from the build onsite and keeps the design honest about sequencing.
- 1Skeleton. One repo, one team, model in-VPC, agent comments on a PR, human approves. End-to-end, flagged off for everyone else.
- 2Instrument. Add tracing and the eval set against that one team's history before widening. Prove quality with numbers, not vibes.
- 3Harden. SSOSingle Sign-On. One company login (usually via SAML or OIDC) instead of a separate password per tool.-scoped identity, rate limits and retries with backpressure, per-failure fallbacks, cost budgets per call.
- 4Roll out. Flag on team by team, watch the eval gate and the metrics, keep the one-switch rollback live the whole way.
Integrate with the legacy stack honestly
Enterprises don't run greenfield. There'll be a 12-year-old CI server, a custom code-review tool, secrets in a vault three teams don't fully understand. Pretending otherwise loses credibility instantly.
- Tradeoff
- Model hosting
- Option A
- Self-host in their VPC (full control, ops burden)
- Option B
- Approved gateway with ZDRZero Data Retention. A contractual guarantee that the model provider won't store your code or train on it. (less ops, must clear security)
- How you'd decide
- Their data-residency bar and whether they can run GPUs decide it.
- Tradeoff
- Latency vs. cost
- Option A
- Big model on every PR (best reviews, pricey/slow)
- Option B
- Cheap model first, escalate on uncertainty
- How you'd decide
- Tier by PR risk; reserve the expensive call for diffs that touch sensitive paths.
- Tradeoff
- Integration point
- Option A
- Native in their custom review tool (integrated, brittle)
- Option B
- Standalone bot posting comments (robust, less polished)
- How you'd decide
- Start standalone for the skeleton; go native only once value is proven.
| Tradeoff | Option A | Option B | How you'd decide |
|---|---|---|---|
| Model hosting | Self-host in their VPC (full control, ops burden) | Approved gateway with ZDRZero Data Retention. A contractual guarantee that the model provider won't store your code or train on it. (less ops, must clear security) | Their data-residency bar and whether they can run GPUs decide it. |
| Latency vs. cost | Big model on every PR (best reviews, pricey/slow) | Cheap model first, escalate on uncertainty | Tier by PR risk; reserve the expensive call for diffs that touch sensitive paths. |
| Integration point | Native in their custom review tool (integrated, brittle) | Standalone bot posting comments (robust, less polished) | Start standalone for the skeleton; go native only once value is proven. |
Name both options and your reasoning. The interviewer is grading the tradeoff thinking, not the pick.
Think out loud and state your assumptions as you go: "I'm assuming no code can leave the VPC, so the model is self-hosted or behind an approved gateway - stop me if that's wrong." Then reason through the tradeoff instead of declaring a winner. Candidates who narrate their reasoning and surface failure modes unprompted consistently outscore candidates with a cleaner final diagram.
Takeaway. Treat trust boundaries, SSOSingle Sign-On. One company login (usually via SAML or OIDC) instead of a separate password per tool., data residency, observability, evals, failure modes and rollback as load-bearing from the first sketch. Scope a skeleton, then harden it and narrate tradeoffs out loud - reasoning is graded, not a single right diagram.
Self-check
QIn the system-design round, what are interviewers primarily grading?