If you prep for an AI engineer interview by grinding gradient descent derivations and softmax cross-entropy, you will walk in ready for a job that mostly no longer exists. The role that companies are hiring for in 2026 is not “person who trains models.” It is “person who builds reliable systems on top of models they did not train.” Those are different jobs, and the interview loops have quietly split to match.
I have run and sat through both sides of these loops over the last two years. The single biggest reason strong candidates fail is that they answer the interview they studied for instead of the one they are being given. So let me be concrete about what actually gets tested now, why the old ML trivia mostly does not, and how to prepare in a way that maps to the questions you will really get.
The Job Changed, So the Interview Changed
Start with the naive mental model, because most candidates still carry it: an AI role means machine learning, machine learning means training, so the interview must be about model internals, backprop, and the bias-variance tradeoff.
That model was roughly correct in 2019. It breaks in 2026 for a simple reason: almost nobody in an AI engineering seat trains a foundation model. They call one. The value you provide is not in the weights. It is in everything wrapped around the weights - retrieval, evaluation, orchestration, guardrails, latency, and cost. The failure modes that keep these systems from shipping are systems failures, not modeling failures.
So the interview evolved to test the failures that actually happen in production:
| What the old loop tested | What the 2026 loop tests |
|---|---|
| Derive backprop by hand | Design an eval that catches a regression before users do |
| Explain transformer attention math | Explain why your RAG answers are confidently wrong |
| Tune hyperparameters | Reason about tokens, latency, and dollars per request |
| Pick the right classifier | Decide when NOT to use an agent |
| Bias-variance tradeoff | Prompt-vs-finetune-vs-RAG tradeoff |
There is a caveat worth stating plainly: research and applied-science roles at frontier labs still test the deep math. If you are interviewing for a role that trains or fine-tunes models as its core function, ignore half of this post and go study. But for the far more common “AI engineer” or “AI product engineer” title - the one hiring at every company that ships an LLM feature - the table above is the real exam.
The Four Things That Actually Get Tested
Almost every AI engineering loop in 2026 is some combination of four competencies. Prep is a matter of covering all four rather than over-indexing on the one you already know.
1. Evals - Can You Measure Quality At All
This is the competency most candidates underweight and interviewers weight most heavily. The reason is that in production LLM work, you cannot improve what you cannot measure, and measuring the quality of open-ended text output is genuinely hard.
The naive answer, and the one that gets people rejected: “I’d look at the outputs and check if they seem good.” That is not an eval. That is vibes. It does not scale past ten examples, it is not reproducible, and it cannot gate a deploy.
The interview wants to see that you can build an actual measurement harness. A strong answer moves through levels:
- Ground-truth evals where a correct answer exists (extraction, classification, structured output). You can compute exact match, F1, or schema validity. Cheap and reliable, but only covers a slice of real tasks.
- LLM-as-judge for open-ended output where no single correct answer exists. You use a stronger model to score responses against a rubric. Interviewers will immediately probe the weakness: judges are biased toward verbosity, toward their own family of models, and toward the first option in a pair. You need to know that you counter this with position-swapping, calibrated rubrics, and spot-checking the judge against human labels.
- Golden datasets and regression suites that run in CI so a prompt change or model upgrade cannot silently degrade quality.
A concrete sketch you should be able to write on a whiteboard:
def evaluate(dataset, system, judge):
results = []
for case in dataset:
output = system(case["input"])
if case.get("expected"): # ground truth exists
score = exact_match(output, case["expected"])
else: # open-ended -> judge
score = judge.score(
task=case["input"],
response=output,
rubric=case["rubric"],
)
results.append({"id": case["id"], "score": score, "output": output})
return aggregate(results) # pass rate, plus the failing cases to inspect
The signal an interviewer is looking for: do you treat evals as a first-class engineering artifact with versioned datasets, CI gates, and error analysis - or as an afterthought you do manually before a demo.
2. RAG - Do You Understand Why It Breaks
Retrieval-augmented generation is the most common architecture in production, so it is the most common design question. The trap is that RAG sounds trivial when described and is subtle when built.
The naive design every candidate reaches for first:
User query -> embed -> vector search top-k -> stuff chunks into prompt -> generate
Then the interviewer starts breaking it, and this is the actual test. Walk through the failure modes before they ask, because naming them unprompted is the strongest possible signal:
- Bad chunking. Fixed 500-token splits cut sentences and tables in half. A retrieved chunk that ends mid-thought produces a confidently wrong answer. Fix: semantic or structure-aware chunking, and store enough surrounding context.
- Retrieval misses on vocabulary mismatch. Pure vector search fails when the user’s words do not match the document’s words but a keyword would have hit. Fix: hybrid search (BM25 + dense vectors) with a reranker on top.
- The top-k is not the top-relevant. Nearest neighbor is not the same as most useful. Fix: a cross-encoder reranker to reorder candidates before they hit the prompt.
- No answer is a valid answer. If nothing relevant is retrieved, the model should say “I don’t know,” not hallucinate. Fix: a relevance threshold and an explicit grounding instruction, plus an eval that checks abstention.
- Stale or conflicting sources. Two documents disagree. Fix: metadata, recency weighting, and source attribution so the answer is traceable.
The evolved design you should be able to draw:
+-------------------+
query ------> | query rewrite | (expand, decompose)
+---------+---------+
|
+------------+------------+
| |
+-----v-----+ +------v------+
| BM25 / | | dense vector|
| keyword | | search |
+-----+-----+ +------+------+
| |
+-----------+-------------+
| (union of candidates)
+-----v------+
| reranker | cross-encoder, keep top 3-5
+-----+------+
|
+-----v------+
| threshold? |--- no --> "insufficient context"
+-----+------+
| yes
+-----v------+
| generate + | cite sources, grounded prompt
| attribution|
+------------+
If you can explain the naive version, name where it breaks, and evolve to this, you have passed the RAG portion of almost any loop.
3. Agent Design - Knowing When NOT To
Agents are the topic where hype and interview signal diverge most sharply. Junior candidates want to build an autonomous multi-agent swarm for everything. Senior signal is the opposite: knowing that most tasks should not be an agent at all.
The framing that lands: an agent is a loop where an LLM chooses tools and acts on the results until a goal is met. Every loop iteration is a place where things go wrong, and errors compound. A three-step agent with 90% per-step reliability is only about 73% reliable end to end. That math is the whole reason to be conservative.
So the strong answer to “how would you build X with agents” often starts with “I probably would not.” The decision framework:
| Use a fixed pipeline when | Use an agent when |
|---|---|
| Steps are known in advance | The path depends on intermediate results |
| You need predictable latency and cost | Some open-endedness is inherent to the task |
| Reliability must be high | You can tolerate retries and partial failures |
| The task is one or two LLM calls | The task genuinely requires dynamic tool use |
When an agent is warranted, the interview wants to see that you thought about the parts that make agents survivable in production:
- Tool design. Narrow, well-described, hard to misuse. A tool that can delete data needs confirmation, not raw autonomy.
- Bounded loops. A hard cap on iterations and a budget on tokens so a confused agent cannot burn a thousand dollars in a runaway loop.
- Error recovery. What happens when a tool call fails or returns garbage. The agent needs to see the error and adapt, not crash.
- Observability. Full traces of every step, tool call, and decision, because debugging an agent without traces is impossible.
def run_agent(goal, tools, max_steps=8, token_budget=50_000):
state, spent = [], 0
for step in range(max_steps):
action = model.decide(goal, state, tools) # pick a tool or finish
if action.type == "finish":
return action.answer
result = safe_call(tools[action.name], action.args) # never raise into loop
spent += result.tokens
state.append((action, result))
if spent > token_budget:
return escalate("budget exceeded", state) # fail loud, not silent
return escalate("no answer in step budget", state)
The bug interviewers plant here is the unbounded loop with no budget and no escalation path. If you add those unprompted, you look like someone who has actually run an agent in production and watched it misbehave.
4. Cost and Latency Reasoning - The Adult In The Room
This is the competency that separates engineers from demo-builders, and it is increasingly its own interview stage. A feature that works but costs $2 per request and takes 30 seconds does not ship. Someone has to reason about the economics, and interviewers want to know it can be you.
You should be fluent enough to estimate a request’s cost out loud. The mental model: cost is roughly (input tokens x input price) + (output tokens x output price), and output tokens are usually several times more expensive than input. Latency is dominated by output token count, because generation is sequential.
Given that, know the levers and their tradeoffs:
| Lever | Saves | Costs you |
|---|---|---|
| Smaller/cheaper model | Money and latency | Quality on hard cases |
| Prompt caching | Money on repeated context | Setup and cache invalidation care |
| Shorter outputs | Money and latency | Detail |
| Semantic caching of answers | Money and latency on repeats | Staleness risk |
| Batching offline work | Money | Not usable for realtime |
| Routing easy queries to a small model | Money and latency | A router that can misclassify |
A common and answerable question: “This RAG feature costs too much. Where do you cut?” The strong path is measurement first - break the cost down by input tokens (usually the retrieved context, so retrieve fewer and better chunks), output tokens (cap and tighten), and model tier (route the easy 80% to a cheaper model, reserve the frontier model for the hard 20%). Prompt caching on the stable system prompt and retrieved context often cuts input cost dramatically for free. The wrong answer is jumping straight to “use a cheaper model” without measuring where the tokens actually go.
A Prep Framework That Maps To The Loop
Do not study topics at random. Study to cover the four competencies, in roughly this order of leverage:
- Build one small RAG system end to end. Ingest real documents, chunk them, do hybrid retrieval with a reranker, generate with attribution. You cannot fake having done this, and it covers competency 2 completely plus half of the others.
- Write real evals for that system. A golden dataset, an LLM-as-judge with a rubric, a CI gate. This is the differentiator most candidates skip. Doing it once means you can talk about it forever.
- Add one agentic feature, then argue against it. Build a bounded tool-using loop, then be ready to explain when a fixed pipeline would have been better. The self-critique is the signal.
- Instrument cost and latency. Log tokens and dollars per request for your own project. Once you have watched your own numbers, cost questions stop being abstract.
- Keep a shallow ML base. Know embeddings, tokenization, context windows, temperature, and why models hallucinate at a working-engineer level. You need enough to reason, not enough to publish.
Then rehearse out loud. Nearly every question in these loops is answered better by starting naive, naming the break, and evolving. Practice that motion until it is automatic.
Sample Question Types To Expect
These are the shapes, not the exact wording, but they cover most of what you will see:
- Eval design: “You shipped a summarizer. A model upgrade is available. How do you decide if it is actually better before rolling it out?”
- RAG debugging: “Users say the assistant gives confident but wrong answers. Walk me through how you diagnose and fix it.”
- Agent judgment: “A PM wants an autonomous agent that books travel end to end. Talk me through whether you would build that, and how.”
- Cost reasoning: “Estimate the per-request cost of this feature, then cut it in half without wrecking quality.”
- Tradeoff: “When would you fine-tune instead of doing RAG or prompt engineering?”
- Failure modes: “Your LLM feature works in the demo and breaks in production. What broke?”
For the last one, the honest answer is usually: the demo used clean inputs and the production traffic did not, the eval set did not cover the real distribution, or nobody measured cost until the bill arrived. Saying that out loud shows you have shipped.
What Works, What Does Not, What To Actually Do
What works: building one real system that exercises all four competencies, then being able to narrate its failure modes. Interviewers can tell within minutes whether you have wrestled with a real RAG pipeline and a real eval harness or only read about them. Nothing substitutes for having debugged confidently-wrong retrieval yourself.
What does not work: memorizing definitions of RAG, agents, and evals without building them. The follow-up questions in these loops go one or two levels deeper than any blog post, and surface knowledge collapses immediately. Grinding transformer math for an applied role also does not work - it is answering the wrong interview.
What to actually do: spend a weekend building a small RAG-plus-eval project with one bounded agentic feature and cost logging. That single project covers evals, retrieval, agent judgment, and cost reasoning, which is the entire modern loop. Then practice the naive-to-optimal narration until it is reflex. The candidates who get offers are not the ones who know the most theory. They are the ones who have built the thing, broken it, measured the break, and can explain the fix without hand-waving.
Comments