Frontier Engineering

Interview Atlas · The process

What an AI interview loop actually contains.

Six stages, in the order you meet them. For each one: what it is, what the interviewer is scoring rather than what they nominally asked, how to prepare for it, the ways candidates lose it, and what a clear pass looks like from the other side of the table.

This is the superset, not a schedule. Few companies run all six, the order moves, and stages get merged. Work out which ones you are facing — the recruiter will usually tell you if you ask — and prepare for those.

Stage 01

Recruiter screen

A 20-30 minute calibration call that decides which loop you get, at what level, and whether you get one at all.

The first conversation is usually with a recruiter or sourcer rather than an engineer, and it runs twenty to thirty minutes. On the surface it is logistics: what you have worked on, what you are looking for, whether the location and start date line up. Underneath it is a routing decision. The recruiter is working out which team and which level to put you in front of, and whether the loop is worth the four to six engineer-hours it will cost.

For AI roles this call carries more weight than it used to, because the titles have stopped meaning anything consistent. "AI Engineer" at one company is a product engineer wiring up a model gateway; at another it is someone writing training code. The recruiter's job is partly to resolve that ambiguity before an interviewer wastes a slot on it. If you describe your work in terms that map cleanly onto a specific opening, the routing gets easier and you tend to land in the loop you actually wanted.

Nothing here is technical in the sense of being graded on correctness, but it is technical in the sense that vague answers cost you. A recruiter who cannot summarise what you build in two sentences will write two vague sentences in the notes, and the hiring manager reads those notes before deciding whether to approve the loop.

What is assessed

  • Whether your experience maps onto an actual open requisition, and at what level — most rejections at this stage are routing failures rather than quality judgements.
  • Whether you can describe a system you built without a whiteboard, in language a non-engineer can repeat accurately to a hiring manager.
  • Scope and ownership: whether you drove the work, contributed to it, or were adjacent to it. Recruiters are trained to probe the difference between "we" and "I".
  • Motivation that survives one follow-up question. "I'm excited about AI" is not a reason; "I want to work on retrieval quality at a scale I can't reach at my current company" is.
  • Practical constraints: notice period, location and work authorisation, compensation expectations, and whether you are already deep in other processes.
  • Communication under mild time pressure — whether a two-minute answer stays two minutes.

How candidates lose this stage

  • Reciting a chronological CV. The recruiter already has it. What they need is the compressed version they can paste into the notes.
  • Hedging on level and scope so thoroughly that you get routed a level below where you would have been competitive.
  • Describing model work entirely in tool names — "LangChain, Pinecone, GPT-4" — with no statement of what the system did or how well it did it.
  • Treating the call as a formality and showing up unprepared to a conversation that gates the entire loop.
  • Being unable to say why this company, which is the one question the recruiter is definitely relaying upward.
  • Overshooting on time. If your answer to "tell me about yourself" takes six minutes, you have used a fifth of the call and demonstrated the thing the loop is about to test.

How to prepare

  1. 01

    Write a two-minute version of your work and say it out loud

    Not a career history — one system, what it did, what you owned, what it cost, and what changed because it shipped. Time yourself. Most people's first attempt runs four minutes and contains no numbers. The second attempt is the one you use.

  2. 02

    Read the job description as a checklist and pre-map your evidence

    Take the five to eight bullets under "what you'll do" and write, for each one, the concrete thing you have done that is closest to it. Where you have nothing, decide in advance how you will say so without apologising. That mapping is the entire content of the call.

  3. 03

    Know the level you are targeting and why

    Levels differ by scope, not by years. Be able to say what you have owned end to end, how many people you coordinated with, and what decisions you made without asking. If you are aiming a level above your current title, have the evidence ready rather than the ambition.

  4. 04

    Settle your compensation number before the call, not during it

    You will be asked for a range. Have one — researched, in the correct currency and structure for the market, and wide enough to leave room. Deferring the question is fine once; refusing to engage at all reads as inexperience and occasionally stalls the process.

  5. 05

    Prepare three questions that only this company can answer

    Ask what the team ships, how a change reaches production, and what the loop actually contains. The third one is free information: recruiters will usually tell you the stages, the format, and sometimes the rubric, and almost nobody asks.

What a strong pass looks like

The recruiter finishes the call able to write three accurate sentences about you — what you build, at what scope, and why you want this specific job — and has already decided which hiring manager to send them to. Practically, it sounds like a candidate who answers the level question without flinching, gives one concrete system with a number attached to it, and asks a question about the team's work that shows they read something beyond the careers page.

Stage 02

Technical screen

45-60 minutes with an engineer: a coding problem, a practical ML exercise, or both, usually in a shared editor.

The first engineer-run stage is a filter, and it is scored more coarsely than the later rounds. Typically it is forty-five to sixty minutes in a shared editor with one interviewer, and it takes one of three shapes: a general coding problem, a practical ML or data exercise, or a short debugging task on code you are handed. For AI roles the second and third shapes have become more common than the first, because a company hiring someone to run a retrieval pipeline learns more from watching them fix a broken evaluation loop than from watching them invert a tree.

The practical variants look less like competitive programming and more like a small piece of real work: implement top-k retrieval over some embeddings and explain your similarity choice; write the batching logic for an inference loop; take a scoring function that is silently wrong and find out why. The code is small. The reasoning around it is the point.

The general coding variant has not disappeared, particularly at the larger employers, and it is usually easier than the reputation suggests — one or two medium problems rather than anything exotic. What has changed is the interviewer's tolerance for silence. In a screen this short, an interviewer who cannot follow your reasoning has nothing to write down, and a correct solution arrived at silently scores worse than a mostly-correct one narrated well.

What is assessed

  • Whether you can write code that runs, in a language you claim fluency in, without an autocomplete model doing the thinking.
  • Problem decomposition: whether you state the approach before typing, and whether the approach survives contact with the first edge case.
  • Practical numerical and data handling — array shapes, batching, off-by-one in a sliding window, normalisation before a cosine similarity — which is where ML-adjacent candidates most often slip.
  • Debugging method: forming a hypothesis, testing it cheaply, and discarding it when the evidence says so, rather than mutating code until output changes.
  • Complexity reasoning that is relevant rather than recited. Whether the bottleneck is the embedding call or the loop around it matters more than reciting O(n log n).
  • Whether you test your own work unprompted, even informally, before saying you are finished.

How candidates lose this stage

  • Coding in silence for ten minutes and presenting a finished answer. Even if it is correct, the interviewer has no evidence of how you got there.
  • Starting to type before the requirements are settled, then discovering at minute thirty that you solved a different problem.
  • Depending on autocomplete to the point that basic syntax stalls without it.
  • Ignoring the data: not checking a shape, not normalising before a similarity comparison, not looking at what the input actually contains before writing the loop that consumes it.
  • Declaring completion without running or hand-tracing a single case, then being walked into the bug by the interviewer.
  • Treating a hint as criticism. Hints are how the interviewer keeps a scoreable session on track; refusing to take one converts a partial pass into a fail.
  • Optimising prematurely — an elaborate vectorised approach that does not run beats a straightforward one that does, only in the candidate's imagination.

How to prepare

  1. 01

    Rebuild the primitives from scratch, once each

    Cosine similarity and top-k without a library. Chunking with overlap. A token-bucket rate limiter. Batched calls with retries and a timeout. Precision, recall, and F1 from raw counts. These are the atoms the practical screens are assembled from, and having written each one by hand removes the class of mistakes that comes from only ever having imported it.

  2. 02

    Practise in the environment you will be given

    A bare shared editor, no completion, no test runner, sometimes no execution at all. If your fluency depends on an IDE, you will discover that under observation. Spend a few sessions writing in a plain text box and running nothing.

  3. 03

    Narrate deliberately, and separate thinking from typing

    State the approach, name the edge cases you intend to handle, then write. Say when you are choosing between two options and why you picked one. Silence is the most common avoidable score loss in this round; a candidate who thinks out loud can be helped, and a silent one cannot.

  4. 04

    Drill the standard interview surface anyway

    Hash maps, two pointers, sorting, binary search, heaps, simple graph traversal, and one dynamic-programming shape. Enough that a generic screen is not the thing that ends the process. This is a floor to clear, not a place to invest heavily.

  5. 05

    Practise reading unfamiliar code fast

    The debugging variant hands you 80 to 150 lines you have never seen. Get comfortable orienting in an unfamiliar file quickly: find the entry point, find where the data changes shape, and form a hypothesis before touching anything.

  6. 06

    Ask about the format when the recruiter schedules it

    Coding, ML practical, or debugging — the preparation for each is different, and the recruiter will usually just tell you if asked, along with the language, whether the code will be executed, and how long the session runs. Guessing wastes the few days you have between the screens.

What a strong pass looks like

You restate the problem, agree on the interface and the edge cases, write a straightforward correct version while explaining the choices, test it on a case you pick yourself, and only then discuss what you would improve with more time. The interviewer's notes can quote your reasoning, not just your final code. When you get stuck — which is normal and not disqualifying — you say what you are stuck on precisely enough that a single hint unblocks you.

Stage 03

AI system design

The round that separates levels: design a production AI system under real constraints and defend the tradeoffs out loud.

Sixty minutes, an open prompt, and a whiteboard or a shared drawing surface. "Design a support assistant over our documentation." "Design an agent that files expense reports." "Design the evaluation system for a feature you already shipped." The problem is deliberately underspecified, and the first ten minutes of the round are about making it specific.

This round is where seniority is decided. The same prompt is given to mid-level and staff candidates, and the difference in the transcript is not vocabulary — it is which questions the candidate asks before drawing, and whether the design is defended in terms of cost, latency, and failure or in terms of components. A mid-level answer names the pieces: an embedding model, a vector store, a reranker, a generation call. A senior answer prices them, budgets the latency across them, and says what happens when the third one is down. A staff answer does that and then explains which parts other teams should be able to reuse without asking permission.

AI system design differs from classic distributed-systems design in one specific way: the core component is non-deterministic, so correctness is a rate rather than a property. Every design decision eventually meets the question "how would you know if this got worse?", and a design with no answer to that has not really been designed. The evaluation and observability half of the answer is not a coda to be reached if time allows; at most companies it is a scored section of the rubric.

What is assessed

  • Requirement extraction: whether you establish traffic, corpus size, freshness, latency target, cost ceiling, and quality bar before drawing anything.
  • Whether the architecture is justified against those constraints rather than assembled from defaults — why retrieval at all, why this chunking, why a reranker, why an agent rather than a fixed pipeline.
  • Quantitative reasoning: tokens per request, cost per thousand conversations, index size in gigabytes, p95 latency decomposed by stage. Approximate numbers stated confidently beat exact numbers withheld.
  • Failure design — timeouts, retries, fallbacks, partial degradation, and what the user sees when a stage fails, which is a product decision as much as an engineering one.
  • Evaluation: an offline set, online metrics, regression protection, and how a quality drop would be detected before a customer reports it.
  • Data lifecycle — how the index stays in step with its source, how deletions propagate, and how tenant boundaries hold in retrieval, caching, and logs.
  • Whether you can be moved. Interviewers routinely push back on a correct decision to see whether you defend it with reasons or abandon it under pressure.

How candidates lose this stage

  • Drawing before asking. A design produced in the first two minutes answers a question nobody asked.
  • Naming components instead of choosing them. Listing an embedding model, a vector store, and a reranker is a parts list; the interview is about why those parts and not others.
  • Vocabulary as a substitute for reasoning — "we'd use hybrid search with a reranker" said quickly, with no account of what it costs or what it fixes.
  • Skipping evaluation entirely, or arriving at it in the last three minutes as an afterthought.
  • Ignoring cost. A design that works and is unaffordable has not solved the problem, and cost is a live constraint at every employer in this market.
  • Treating the model as infallible: no timeouts, no fallback, no answer to what the user sees when generation fails or returns something unusable.
  • Folding immediately under pushback, or refusing to move at all. Both read badly; the wanted behaviour is to weigh the new constraint and say what it changes.
  • Designing a distributed system generally and forgetting it contains a probabilistic component — no mention of drift, of prompt or model version changes, or of how quality is monitored over time.

How to prepare

  1. 01

    Fix a sequence and use it every time

    Requirements and constraints, then the success metric, then a boring end-to-end version, then the bottleneck, then evaluation and observability, then scale and cost. Having one order you always follow means the pressure of the room cannot cost you a whole section, which is the most common way strong engineers score badly here.

  2. 02

    Memorise a small table of numbers

    Rough embedding and generation latency, cost per million tokens at the tiers you use, vector size in bytes and therefore index size per million chunks, tokens per page of text, typical p95 multiples over p50. You are not being graded on precision; you are being graded on whether you reason in quantities at all.

  3. 03

    Prepare the evaluation half properly

    Most candidates can draw a retrieval pipeline and most cannot say how they would know it regressed. Be able to describe building a regression set from real traffic, the difference between component metrics and end-to-end ones, what an LLM judge is good for and where it is untrustworthy, and how a graded rollout is monitored.

  4. 04

    Practise three shapes, not thirty

    Retrieval over a private corpus; an agent that takes actions against real systems; a classification or extraction pipeline at volume. Nearly every prompt in this round is a variant of one of the three. Depth in three beats a shallow tour of many.

  5. 05

    Rehearse the pushback

    For every major decision, prepare the version where the interviewer says "what if you couldn't?" — no vector database, ten times the traffic, a tenth of the budget, no external API. The answer to that question is where the level gets set.

  6. 06

    Draw less, and label what you draw

    Boxes with arrows and no annotations are hard to score. Put the latency budget, the queries per second, and the failure behaviour on the diagram itself, so the interviewer can see the reasoning without asking for it.

What a strong pass looks like

You spend the first eight minutes turning a vague prompt into a specific one with numbers attached, propose the simplest thing that could meet those numbers, and then say where it breaks first and why. Every component has a reason and an approximate cost. You reach evaluation and observability with time to spare and treat them as part of the system rather than a postscript. When the interviewer changes a constraint, you say what it invalidates and what it does not, and you hold the decisions that are still correct.

Stage 04

Applied take-home or pair programming

A small real problem, done either on your own time or alongside an engineer, followed by a review that is the actual interview.

Somewhere in most AI loops there is a round where you build something rather than describe it. It comes in two forms. The take-home is a scoped problem — four to eight hours if the company is being honest about it — done on your own time and submitted as a repository. The pair-programming session is the same idea compressed into ninety minutes with an engineer in the room, usually against a codebase they hand you.

In both cases the artefact is not really the deliverable. The follow-up conversation is. A take-home that is never discussed is a weak signal and most companies know it, so the submission is normally followed by a review round where two engineers ask why you chunked that way, what your evaluation set actually measures, and what you would do with another week. Candidates who build a large, undocumented submission and cannot defend its decisions score worse than candidates who build something small and can.

The pair session tests something adjacent: whether you are pleasant and productive to work next to. You will be given an unfamiliar repository, a failing test or a feature request, and an engineer who will answer questions if asked. Asking is not penalised. Silently guessing at a convention you could have asked about in ten seconds usually is.

Take-homes are contentious for good reason — they tax people with less free time — and a growing number of companies pay for them or replace them with the paired version. It is reasonable to ask which one is offered, and reasonable to ask for the paired format if the unpaid hours are a genuine problem.

What is assessed

  • Judgement about scope: what you chose to build, what you deliberately left out, and whether you said so.
  • Whether the thing runs from a clean checkout by following your own README. A surprising share of submissions do not.
  • Code you would tolerate from a colleague — coherent structure, honest error handling, names that survive a month, tests where they earn their place.
  • Evidence rather than assertion: some measurement of whether the system works, however small, instead of a claim that it does.
  • In the pair session, collaboration — asking useful questions, accepting a suggestion without friction, and keeping the other person oriented in what you are doing.
  • Honesty about limitations. A written list of known gaps and shortcuts reads as senior; discovering the same gaps during review because the candidate hid them does not.
  • Whether you can defend the design under questioning, which is where the take-home is really scored.

How candidates lose this stage

  • A submission that does not run from a clean checkout, or a README whose first command fails.
  • Building far past the brief — a frontend, an auth layer, a deployment pipeline — while the core task stays thin.
  • No measurement of any kind, so the claim that it works rests entirely on the reviewer's willingness to believe it.
  • A dependency list of thirty packages for a problem that needed four, with no account of why any of them are there.
  • Hiding the shortcuts and getting caught in review, which converts a scope decision into a credibility problem.
  • In the paired session, going quiet for long stretches or refusing to ask about a convention you cannot infer.
  • Submitting generated code you cannot explain line by line.
  • Ignoring an explicit constraint in the brief — a required language, a forbidden library, a stated time limit — which reads as either careless or uninterested.

How to prepare

  1. 01

    Read the brief for the rubric it implies, then build to that

    Briefs usually state what is being evaluated, sometimes explicitly. If it says "we care about retrieval quality", the retrieval and its measurement get your hours and the web interface gets none. Building the thing they did not ask for while under-building the thing they did is the standard way to lose this round.

  2. 02

    Respect the stated time budget and be transparent about it

    Spending twenty hours on an eight-hour take-home is not a flex — it distorts the comparison, and reviewers frequently notice. Build the honest version and write down what the next four hours would have gone to. That list is often the most persuasive file in the repository.

  3. 03

    Write the README as the primary deliverable

    How to run it, what it does, the three decisions you made and why, what you measured and what the number was, what is missing and what you would do next. Reviewers read it first and it frames everything else they look at.

  4. 04

    Include a small evaluation, even a crude one

    Twenty hand-written cases with expected outputs and a script that scores them beats a much more elaborate system with no evidence attached. For AI work specifically, the presence of any honest measurement is a strong differentiator, because most submissions have none.

  5. 05

    Rehearse the defence before you submit

    Walk your own repository as if a reviewer were asking: why this chunk size, why this model, why no cache, what happens under ten times the load, what you would delete. If a decision was arbitrary, say it was arbitrary and give the experiment you would run. Reviewers accept that answer; they do not accept a rationalisation invented on the spot.

  6. 06

    For the paired session, practise working in unfamiliar code with someone watching

    Clone a repository you have never seen, pick an open issue, and fix it end to end while narrating what you are doing and why. The skill being tested is orientation, question-asking, and communication under observation, not recall of anything in particular.

  7. 07

    Disclose your tooling honestly

    Most companies now expect AI assistance and ask you to say how you used it. Say so plainly, and be able to explain any line you shipped. Code you cannot account for in review is worse than code you did not write.

What a strong pass looks like

A small repository that runs first try, does exactly what was asked, and contains one honest measurement of whether it works. The README names three decisions, the reasoning behind each, and the known gaps. In the review you defend the decisions with reasons, concede the ones that were arbitrary, and describe what the next iteration would change and why. In the paired version, the engineer leaves thinking the session felt like an ordinary working afternoon rather than an examination.

Stage 05

Behavioural and values

Structured questions about past work, scored against a rubric — and for AI roles, increasingly about judgement on safety and deployment.

Usually forty-five to sixty minutes, often with the hiring manager and sometimes with a trained interviewer from outside the team. The format is structured: a question about something you have actually done, followed by follow-ups designed to find out whether you did it. "Tell me about a time you disagreed with a technical decision." "Describe a project that failed." "Walk me through something you shipped that you would build differently now."

Engineers routinely under-prepare this round because it feels soft. It is not scored softly. Most companies use a rubric with named dimensions and a written score per dimension, and a weak behavioural round sinks candidates who cleared every technical stage. The reason is straightforward: technical rounds establish that you can do the work, and this round establishes whether the team wants to do it with you for the next three years.

For AI roles there is now a second layer. Interviewers ask about judgement calls with consequences — shipping a feature you knew had a failure mode, handling data whose provenance was unclear, what you did when a model behaved badly in production, how you decided something was ready. These are not gotchas. They are the questions a company with real deployment risk has learned to ask, and a candidate who has never thought about them is a candidate who will need supervision.

The other half of the round is yours. What you ask reveals what you will care about once hired, and hiring managers read it that way.

What is assessed

  • Whether the stories are real. Follow-up questions are the instrument — specifics, names of tradeoffs, what you personally decided, what it cost — and invented stories run out of detail at the second or third follow-up.
  • Ownership and scope: what you decided as opposed to what happened around you.
  • How you handle disagreement, particularly when you were overruled or when you turned out to be wrong.
  • Response to failure — whether the retrospective identifies a decision you would change, or blames circumstances and other people.
  • Judgement on risk: shipping decisions, safety and privacy tradeoffs, and whether you have ever stopped something you could have shipped.
  • Collaboration across functions, since almost all AI work now involves product, design, legal, or security at some point.
  • Genuine interest in this company and this team, which shows up mainly in the questions you ask.

How candidates lose this stage

  • Hypothetical answers to questions about the past. "I would usually..." tells the interviewer you do not have the example.
  • Stories with no conflict, no cost, and no decision, which are pleasant to hear and impossible to score.
  • Blaming — a former manager, a bad codebase, an unreasonable deadline — with no account of what you controlled.
  • Claiming credit in the first person for work a team did, which unravels immediately under a "what did you personally do?" follow-up.
  • Overrunning. A four-minute answer to a warm-up question means the interviewer never reaches the questions that would have scored well.
  • Speaking badly about a previous employer, which is read as a preview of how you will speak about this one.
  • Having no questions at the end, or asking only about compensation and remote policy at the stage where curiosity about the work is being measured.
  • Treating the round as a formality after a strong technical loop, which is a common and expensive misread.

How to prepare

  1. 01

    Build a bank of six to eight real stories and index them by theme

    A conflict, a failure, a project you led, something you shipped under a hard constraint, a time you changed your mind, a time you were wrong, a time you said no. Most questions are a rephrasing of one of these. Preparing eight stories well beats rehearsing thirty answers, and the same story can serve two questions if you emphasise different parts.

  2. 02

    Structure each one, but do not recite it

    Situation, what you did, what happened, what you took from it — roughly ninety seconds, then stop and let them ask. A memorised four-minute monologue is obvious, and it eats the follow-ups where the actual scoring happens.

  3. 03

    Attach a number to every story

    Latency before and after, cost saved, error rate moved, users affected, weeks of delay avoided. Not because the number is impressive but because it demonstrates you measured something, which is the difference between having done the work and having been present for it.

  4. 04

    Prepare a failure you actually own

    The version where the root cause was your decision, you can say what you would do differently, and you did something about it afterwards. Disguised strengths — "I care too much about quality" — are transparent and score as evasion.

  5. 05

    Think through one AI judgement call in advance

    A time you shipped something with a known failure mode and how you bounded it, or a time you declined to ship. If you have never faced one, say so honestly and reason through how you would handle it rather than inventing an experience.

  6. 06

    Write five questions and keep them specific to this company

    How the team decides what to build, how a change reaches production, what the last thing they shipped was and what was hard about it, how quality is measured, what would make this role a bad fit. Generic questions are noted as generic.

  7. 07

    Read the company's published values and take them literally

    Where a company publishes its principles, the interview rubric is often derived from them and the mapping is not subtle. Read them and think about which of your stories a person holding that rubric would score well.

What a strong pass looks like

Specific stories, told in ninety seconds, that hold up under three follow-up questions because they happened. You are clear about what you decided and what you did not, you own a real failure and can name the decision that caused it, and you describe a disagreement in terms of the tradeoff rather than the personalities. Your questions are about how the team works and what it is currently struggling with. The hiring manager finishes able to picture you in a specific seat, working on a specific problem.

Stage 06

Team matching, offer, and negotiation

The stage after the loop: choosing the team, reading the offer properly, and negotiating without damaging the relationship.

Once the loop is scored there are two remaining questions: which team, and on what terms. At larger companies these are separate steps, and team matching can take weeks — you are introduced to managers with open headcount, you talk to each, and both sides express a preference. At smaller companies you interviewed for one team and this collapses into a single conversation.

Team matching is genuinely important and routinely rushed. Within one company the difference between two teams is larger than the difference between two companies: what you will actually work on, whether the work is funded past this quarter, who you will learn from, and how visible the output is. Candidates who accepted the first available team and regretted it usually regret the team, not the employer.

Then the offer. Compensation for AI roles has been volatile, structures vary widely, and the headline number is often the least informative part. Equity terms, refresh policy, vesting schedule, bonus structure, and level all matter more over four years than the base salary does. Level is the one people forget to negotiate and the one that compounds — it sets the band, the expectations, and the starting point for every subsequent conversation.

Negotiation at this point is normal and expected. The company has spent significant time on you and does not want to restart. A single, well-reasoned, polite ask is standard practice and rarely costs anything; the risk lies in aggressive tactics, invented competing offers, and reopening terms that were already settled.

What is assessed

  • Whether the team's actual work matches what you said you wanted, which is now your assessment to make rather than theirs.
  • How the manager talks about their team's failures, their attrition, and their roadmap when asked directly.
  • Whether the role is funded and durable, or attached to an initiative that might not survive the next planning cycle.
  • On the company's side: whether you negotiate reasonably. Managers notice how this conversation goes, and it is the first working interaction of the relationship.
  • Your understanding of your own offer — reading equity terms carefully is a signal in itself, and companies expect the question.
  • Whether the level matches the scope you were interviewed at, which is worth checking explicitly before you accept.

How candidates lose this stage

  • Accepting the first team offered because the process has already taken two months and fatigue is real. The team is the job.
  • Optimising the headline number and ignoring vesting, refresh, and liquidity, which together dominate the four-year value.
  • Accepting a level below the scope you demonstrated because the title sounded fine, then spending two years correcting it internally.
  • Inventing a competing offer. Recruiters ask for details, the details do not hold, and offers have been withdrawn over it.
  • Negotiating in many small rounds. Repeatedly returning with new asks after each concession exhausts goodwill and slows everything down.
  • Treating the negotiation as adversarial. This is the first working conversation with people you are about to join, and tone is remembered.
  • Not asking why the role is open, which is a cheap question with an occasionally very informative answer.
  • Resigning before the written offer arrives, or before background and reference checks have cleared.

How to prepare

  1. 01

    Interview the team as deliberately as they interviewed you

    Ask what the team shipped last quarter, what it is struggling with now, how work is chosen, how long a change takes to reach production, and what happens when a project is not working. Ask what the manager expects from you in the first six months. Vague answers to specific questions are data.

  2. 02

    Talk to someone who is not the hiring manager

    Ask to speak with an engineer on the team, ideally one who joined within the last year. Ask what surprised them. Most companies will arrange this on request, and a refusal is itself informative.

  3. 03

    Understand the whole compensation structure before responding

    Base, bonus target and how often it pays out, equity type and quantity, vesting and cliff, refresh policy, the valuation or strike price the number is based on, and — for private companies — liquidity terms and how long options remain exercisable after leaving. Ask for it in writing.

  4. 04

    Establish a market range with real inputs

    Level, location, company stage, and the specific role. Ranges published for adjacent roles are often not comparable. Where a jurisdiction requires posted salary bands, read the posting itself — it is the most reliable single number you will get.

  5. 05

    Negotiate level first, then compensation

    Level determines the band, so a level correction moves more money than an in-band negotiation. If your scope in the loop matched the level above, say so with the evidence while the offer is still being assembled.

  6. 06

    Make one clear, justified ask

    State the specific number or component, the reason, and the fact that you would accept on those terms. Reasons that work: the market range for the level, the scope demonstrated in the loop, a competing offer you actually hold. Then stop talking and let them respond.

  7. 07

    Get the final terms in writing before resigning

    Everything agreed verbally should appear in the written offer — start date, level, title, compensation components, remote arrangement, and any commitment about the team you were matched to. Do not give notice on a verbal agreement.

What a strong pass looks like

You choose a team on evidence — what it ships, who is on it, how the manager answers a hard question — rather than on availability. You understand every component of the offer and can say what it is worth under two different assumptions. You make one clear, well-reasoned ask, accept the answer gracefully, and start on written terms that match what was discussed. Both sides finish the conversation wanting to work together, which matters because the negotiation is the last thing your new manager remembers before your first day.

Where to go next

Run one of these stages for real.

Reading about a system design round is not the same as being pushed on a decision in one. Book a 30-minute 1:1 and rehearse the stage you are least confident about, with the gaps named while they are still cheap to fix.