LeetLLM
My PlanLearnGlossaryTracksPracticeBlog
LeetLLM

Your go-to resource for mastering AI & LLM systems.

Product

  • Learn
  • Glossary
  • Tracks
  • Practice
  • Blog
  • RSS

Legal

  • Terms of Service
  • Privacy Policy

© 2026 LeetLLM. All rights reserved.

Blog
CareerInterview Prep2026

How to Prepare for ML & LLM Engineering Interviews in 2026

Match ML and LLM interview practice to the role's artifact, the recruiter's process, and the first failed contract in a real attempt, not a fixed topic list.

February 16, 2026Updated August 13, 202614 min read

You have 45 minutes left. A support assistant says, “INC-4829 was resolved yesterday.” The status record is current and the search found the right incident, but the instructions sent to the model omitted today’s date. If you answer “add a reranker,” you’ve named a component before locating the break. Start with one question: where did the evidence first go wrong?

That question changes how you study. A strong practice session produces something another engineer can inspect, under the same constraints your role uses. You make one attempt, preserve its trace, find the first failed boundary, and choose the smallest next drill.

Public hiring guides point in that direction. OpenAI says assessments vary by team and may include pair coding, take-home projects, or technical tests. Anthropic names live coding tools such as Colab and CodeSignal and expects candidates to be comfortable with basic syntax and standard libraries. Google DeepMind describes four interview stages and says invited candidates receive role-specific preparation.[1]Reference 1Interview guidehttps://openai.com/interview-guide/[2]Reference 2Careershttps://www.anthropic.com/careers[3]Reference 3Interviewing at Google DeepMindhttps://storage.googleapis.com/deepmind-media/DeepMind.com/Assets/Docs/interviewing-at-google-deepmind.pdf

Process check: Public guides describe possible formats, not your personal schedule. Ask the recruiter which skills, tools, time limits, and interview policies apply to your loop.

If titles still blur together, What Does an AI Engineer Actually Do? separates applied, platform, and research work.

Start with the artifact the role produces

Titles overlap. Read the verbs and expected outputs in several current postings, then let those outputs choose your practice. Anthropic’s Applied AI role asks for rapid prototypes, user workflows, evaluations, and structured experiments. Its RL engineering role emphasizes training-infrastructure performance, robustness, and usability. Current research-engineering postings combine strong programming with experiments, distributed systems, and research direction.[4]Reference 4Staff Software Engineer, Labs: Applied AIhttps://job-boards.greenhouse.io/anthropic/jobs/5304425008[5]Reference 5Research Engineer, RL Engineeringhttps://job-boards.greenhouse.io/anthropic/jobs/4952051008[6]Reference 6Research Engineer, Machine Learning (Reinforcement Learning)https://job-boards.greenhouse.io/anthropic/jobs/4613568008[7]Reference 7Research Engineerhttps://openai.com/careers/research-engineer-san-francisco/

Research science asks for a different kind of evidence. When a posting asks candidates to choose research questions, develop new ideas, and own a research agenda, prepare to defend hypotheses, controls, interpretation, and disconfirming evidence. OpenAI’s current Research Scientist posting states that distinction directly.[8]Reference 8Research Scientisthttps://openai.com/careers/research-scientist-san-francisco/

Postings can close or change. Use them as dated examples of work shape, not promises about your interview.

Role familyWork to practiceEvidence to bring into follow-ups
Applied AI or product AITurn a user workflow into a measured model-backed productEval rows, traces, user feedback, latency and cost, failed ideas
Predictive / classical MLTurn a decision into a validated model that survives a real splitSplit contract, leakage check, calibration, error slices, offline-to-online gap
ML systems or platformMake training or serving fast, reliable, and usableProfiles, capacity math, failure recovery, benchmarks on a stated workload
Research engineerTurn a method or hypothesis into working code and reproducible experimentsBaseline, implementation, ablations, run artifacts, negative results
Research scientistChoose and test research questions, then interpret what the evidence supportsHypothesis, experimental design, controls, uncertainty, research judgment
Four interview review packets. Applied AI opens evals/inc-4829.jsonl and probes an unsupported claim. ML systems opens profiles/rl_step_slow.md and probes a step-time jump. Research engineering opens runs/ablation_seed42/ and probes the baseline. Research science opens notes/hypothesis.md and probes what result would kill the claim.
An interviewer inspects a packet, not a topic list. Match preparation to the file someone would actually open: an eval row, a profile, a run directory, or a hypothesis with a falsifier.

These are centers of gravity, not walls. A small team may expect product, serving, and evaluation work from one person. A research engineer may coauthor papers, and a scientist may write a lot of systems code. Let the posting and recruiter resolve that overlap.

If you still need a project that produces this kind of evidence, AI Engineer Portfolio Projects for Interviews is the companion. Pick one artifact the target role would inspect, then make its evals, traces, and failures easy to open.

The artifact tells you what to make. The hiring process tells you the conditions under which you must make it.

Turn the hiring process into a practice contract

Make a one-page process map before you open a textbook. Keep facts separate from guesses.

Evidence sourceExtractPreparation decision
Job descriptionRepeated tasks, required depth, expected artifactsPick representative work samples
Official hiring guidePossible formats and general evaluation signalsAdd coding, take-home, or design drills the guide names
Recruiter or team briefExact rounds, tools, timing, and policiesReproduce real constraints
Your baseline attemptWhere code, reasoning, or communication breaksChoose next drill

Use the table to make a decision about one real posting. Neither example below is a universal loop.

Applied AI (prototype, users, evals). Reproduce a 45-minute debug of a wrong incident answer with a frozen eval row and prompt snapshot. Finish when you can name the first failed layer and the smallest next test.

RL engineering (speed, reliability, usability). Reproduce a step-time regression on a stated training workload. Finish when you can point at a profile, change one mechanism, and rerun the same job.

For each expected skill, write one observable exit condition. "Know RAG" is too vague. "Given a failed retrieval trace, separate source freshness, retrieval recall, context assembly, and unsupported generation, then propose one measurable next test" is something another person can review.

Follow the employer’s current tool policy. AI assistance can help with critique and rehearsal, but take-home and live-task rules vary. Anthropic’s candidate guidance allows AI for preparation while requiring candidates to work without it during take-homes and live interviews unless explicitly told otherwise. That page still isn’t a substitute for the rules your recruiter sends. Don’t infer permission from the fact that a company builds AI products.[9]Reference 9Guidance on Candidates' AI Usagehttps://www.anthropic.com/candidate-ai-guidance

Policy check: Ask what documentation, web search, AI tools, local editors, and test runners are allowed. Practice in that environment once before interview day.

Practice loop: Choose the artifact, write the constraints, produce it, preserve the trace, find the first broken contract, change one layer, and rerun the same case. Stop when the exit condition holds twice.

With the conditions pinned down, choose the shared floor your role-specific work will build on.

Shared skills and role-specific depth

Role-specific preparation still sits on a common floor.

Correct code starts with explicit inputs and outputs. Choose data structures, handle edge cases, test invariants, and explain complexity before you optimize.

ML reasoning starts with a claim you can test. State the objective, check leakage, choose a valid split, inspect calibration, and study error slices.

System reasoning makes choices accountable. Trace a request or training path, estimate its bottleneck, assign failure ownership, and plan observability and recovery.

Communication makes the reasoning inspectable. State the assumptions, tradeoffs, evidence, uncertainty, and ownership behind each decision.

Use curriculum links as repairs, not as a second syllabus:

Gap exposed by practiceFocused pathProof to produce
Stateful coding breaks under follow-upsAI Lab Coding Interview: Python SystemsWorking code, deterministic tests, defended invariants
Validation or experiment claims are weakValidation and Leakage → Experiment Design and A/B TestingBaseline, held-out result, error slices, limits
Applied LLM design is hand-wavyCapstone: Document QA → AI Lab System Design InterviewRequest trace, retrieval eval, capacity estimate, rollback path
Training or serving depth is thinDistributed Training: FSDP & ZeRO → Inference: TTFT, TPS & KV CacheProfile, memory estimate, bottleneck explanation
Research reasoning lacks evidenceCapstone: Reproducible ML StudyBaseline, controlled change, uncertainty, negative result

Someone interviewing for classical ML should spend more time on data quality, leakage, objective choice, calibration, and offline-to-online evaluation. Someone interviewing for LLM systems should add transformer mechanics, retrieval, context assembly, inference, tool boundaries, and model evaluation. Neither path benefits from skipping experimental discipline.

That floor is a starting point, not proof. To find out what holds under pressure, stop reading and make a representative attempt.

Practice with a feedback trace

Reading creates vocabulary. A representative attempt exposes whether you can use it.

Save a small receipt after every attempt. Fill it with facts from that attempt, not with the topic you meant to study. This one records the incident-assistant failure we’ll inspect next:

practice-receipt.txt
1Role signal: Applied AI; 45-minute debug; no AI tools unless recruiter said so 2Prompt and constraints: "Was INC-4829 resolved yesterday?" Frozen eval row. Inspect before changing code. 3Artifact produced: diagnosis note plus failing row 4Evidence captured: source ID match; prompt snapshot missing trusted_today 5First failed contract: context assembly 6Feedback received: jumped to a reranker before opening the prompt 7Next drill: add trusted clock, freeze the row, rerun the same fixture 8Exit condition: separate source, retrieval, assembly, and claim failures on this row
Same INC-4829 evidence, two next drills. Jumping to a reranker assumes retrieval failed and never opens the prompt. Snapshotting the model input follows the first break: the source ID already matched and the trusted date was omitted.
The source ID already matched. The next drill is the first broken contract (missing trusted date), not a more fashionable retrieval component.

The receipt turns a vague feeling into a decision. “I need more RAG” becomes “the source ID matched, the prompt omitted trusted_today, and the next drill is a frozen replay with a trusted clock.”

The artifact changes by role:

  • Applied AI: build or debug one bounded workflow, then inspect exact failed rows and traces.
  • Predictive ML: fix one split or leakage bug, then show the metric movement on a held-out slice.
  • ML systems: profile one bottleneck, estimate capacity, change one mechanism, and rerun the same workload.
  • Research engineering: reproduce a result, keep the baseline fixed, add one ablation, and preserve the run manifest.
  • Research science: state a falsifiable claim, choose controls, predict outcomes, and explain what would change the research direction.

Feedback needs a source. Use a peer, hiring manager, mentor, recorded self-review, test suite, profiler, or frozen eval set. A model can generate skeptical follow-ups, but it can’t certify experience it didn’t observe. Keep every answer tied to work and evidence you can defend.

Now run that loop end to end on one small failure.

Debug one complete LLM failure

Use this as a frozen fixture, not a live incident. A user asks, “Was INC-4829 resolved yesterday?” Status service output is incident_id=INC-4829, version=v12, resolved_at=2026-03-15T18:02Z. The prompt should carry trusted date 2026-03-20.

Pause here. On March 20, “yesterday” means March 19. The record says March 15, so the answer can’t be true. The model still replies, “Yes. INC-4829 was resolved yesterday.” A larger model wouldn’t repair a missing input.

Retrieval-Augmented Generation (RAG) supplies external evidence to a model at request time.[10]Reference 10Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks.https://arxiv.org/abs/2005.11401 The name matters less than the boundaries: source state, retrieval, context assembly, and final claims each make a different promise.

INC-4829 debugging grid. Source v12 and retrieval rank 1 both match the expected incident ID. Context assembly omits trusted_today, marked fail. The generated claim resolved yesterday is unsupported. The first broken contract is context assembly.
Each boundary leaves different evidence. Source and retrieval already passed. The first break is the omitted trusted date, so the unsupported "yesterday" claim is a context failure, not a retrieval failure.
BoundaryEvidence to inspectSmallest useful next test
Source freshnessIncident ID, source version, updated_atReplay with current and stale records
RetrievalExpected source ID and rankMeasure recall on exact-ID and semantic cases
Context assemblyReturned fields, current date, ordering, truncationSnapshot the exact model input
Answer groundingSupport for each date and status claimRequire claim-to-field citations or abstention

A fluent wrong answer tells you only where the failure became visible. Walk backward until the first contract breaks:

Diagram showing INC-4829: wrong chronology, Source + retrieval right record?, yes, and Context trusted date present?.
INC-4829: wrong chronology, Source + retrieval right record?, yes, and Context trusted date present?.

The tempting move is to jump from symptom to “use a reranker” or “fine-tune the model.” Resist it. A stale record needs a freshness fix. A missing date needs a context fix. Correct inputs with an unsupported chronology need a generation or validation fix. Freeze the failed case, change one layer, and rerun the same row.

Translate that triage into a contract checker you can inspect in code:

incident_triage.py
1import datetime 2from dataclasses import dataclass 3 4@dataclass(frozen=True) 5class EvalFixture: 6 incident_id: str 7 target_id: str 8 retrieval_rank: int 9 source_status: dict[str, str] 10 prompt_snapshot: dict[str, str] 11 model_answer: str 12 13def triage_failure(fixture: EvalFixture) -> tuple[str, str, str]: 14 """Isolate the first broken contract before jumping to rerankers or fine-tuning.""" 15 # Contract 1: Source validity 16 if fixture.source_status.get("incident_id") != fixture.target_id: 17 return "source", "stale or mismatched source record", "refresh status database record" 18 19 # Contract 2: Retrieval rank and ID 20 if fixture.incident_id != fixture.target_id or fixture.retrieval_rank != 1: 21 return "retrieval", "wrong document or rank > 1", "measure retrieval recall and rank loss" 22 23 # Contract 3: Context assembly (required fields present in prompt) 24 if not fixture.prompt_snapshot.get("trusted_today"): 25 return ( 26 "context_assembly", 27 "missing trusted_today in prompt template", 28 "pass trusted clock to context builder", 29 ) 30 31 # Contract 4: Grounding and claim verification 32 resolved_date = datetime.date.fromisoformat(fixture.source_status["resolved_at"][:10]) 33 today = datetime.date.fromisoformat(fixture.prompt_snapshot["trusted_today"]) 34 yesterday = today - datetime.timedelta(days=1) 35 36 if "yesterday" in fixture.model_answer.lower() and resolved_date != yesterday: 37 return ( 38 "claims", 39 f"unsupported yesterday claim (resolved {resolved_date}, yesterday was {yesterday})", 40 "add claim-to-field citation gate", 41 ) 42 43 return "pass", "all contracts satisfied", "none" 44 45# INC-4829 fixture: source and retrieval pass, context assembly omits trusted date 46inc_4829_fixture = EvalFixture( 47 incident_id="INC-4829", 48 target_id="INC-4829", 49 retrieval_rank=1, 50 source_status={"incident_id": "INC-4829", "version": "v12", "resolved_at": "2026-03-15T18:02Z"}, 51 prompt_snapshot={"incident_id": "INC-4829", "resolved_at": "2026-03-15T18:02Z"}, 52 model_answer="Yes. INC-4829 was resolved yesterday.", 53) 54 55layer, cause, fix = triage_failure(inc_4829_fixture) 56print(f"First broken contract: {layer}") 57print(f"Root cause: {cause}") 58print(f"Smallest next test: {fix}")
INC-4829 failure contract triage
1First broken contract: context_assembly 2Root cause: missing trusted_today in prompt template 3Smallest next test: pass trusted clock to context builder

That drill transfers beyond RAG. Classical ML uses the same habit: verify label and feature snapshots, inspect split leakage, check the objective and threshold, then look at the decision shown to the user.

💡 Key insight: The first failed contract is the next drill. A fluent answer that skips that inspection isn't practice.

Rehearse communication from the same evidence

Once you can locate the first break, use the same artifact to practice speaking. An incident trace, benchmark report, experiment run, or code review can support four forms:

  1. A 90-second mechanism explanation.
  2. A design answer with one bottleneck estimate and one failure path.
  3. A project story that separates personal ownership from team outcome.
  4. A skeptical follow-up about tradeoffs, uncertainty, or what failed.

The AI Lab Behavioral Interview lesson turns project evidence into stories about judgment, disagreement, incidents, and changed decisions. The AI Lab Technical Presentation lesson turns the same evidence into architecture, metrics, ownership boundaries, and Q&A defense.

Don’t polish one script until it sounds memorized. Rehearse the same idea at different lengths and let another person interrupt. If an explanation falls apart under one “why?”, return to the implementation or evidence instead of adding smoother wording.

The speaking drill is another rerun of the same case: explain the mechanism, quantify one trade-off, name the failure path, then answer what would change your decision.

Use the first failure to pick the next drill

Fixed four-week or eight-week plans pretend everyone starts from the same place. Let an observed gap choose the next drill instead.

Evidence from an attemptNext drillExit condition
Code works only for happy pathAdd staged requirements and table-driven testsPreserve invariant without rewriting from scratch
Design has boxes but no constraintsCalculate memory, traffic, queue, or cost bottleneckExplain which assumption would change architecture
ML answer names a metric but no dataset contractDefine split, baseline, slices, and failure costState what score proves and what it doesn't
Research result has no strong comparisonAdd baseline, ablation, seed or uncertainty checkDefend conclusion and one plausible alternative explanation
Project story sounds broader than personal workMark owned decisions, artifacts, and team interfacesAnswer depth questions without borrowing credit
Explanation is fluent but shallowImplement or trace mechanism with concrete valuesSurvive two levels of "why" and one failure question

Read the table as a loop, not a syllabus. Produce representative work under stated constraints, inspect its evidence, change one thing, and recover from a follow-up without losing the underlying model. Readiness is role-specific evidence, not a guarantee of an offer.

Only after this loop is working should current topics change your plan.

Keep current topics in proportion

Model Context Protocol, reasoning models, Reinforcement Learning from Verifiable Rewards, Mixture of Experts, speculative decoding, and new serving stacks may matter for one role and be noise for another. Study one when the posting names it, your project depends on it, or you need it to explain a measured tradeoff. These are recognition topics, not a replacement for the mechanics above.[11]Reference 11DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learninghttps://arxiv.org/abs/2501.12948[12]Reference 12Model Context Protocol Specification Overviewhttps://modelcontextprotocol.io/specification/2025-11-25/basic/index[13]Reference 13Tülu 3: Pushing Frontiers in Open Language Model Post-Traininghttps://arxiv.org/abs/2411.15124[14]Reference 14Jamba: A Hybrid Transformer-Mamba Language Modelhttps://arxiv.org/abs/2403.19887

For broad recall, use 50 LLM Interview Questions for 2026 as a diagnostic. Cover each answer and explain its mechanism, tradeoff, failure signal, and measurement. Open the linked curriculum lesson when one of those four parts is missing. Don't treat the list as the study plan.

Leave evidence behind

Interview preparation gets stronger when each cycle leaves an artifact: tested code, a design note, an eval report, a reproducible run, a failure trace, or a project explanation with honest ownership. Pick one target role, run one representative baseline, and let evidence choose what you study next. The question list can wait until you know which contract keeps breaking.

PreviousUnderstanding SWE-bench
Share this article
XFacebookLinkedInBlueskyRedditHacker NewsEmail
References

Interview guide

OpenAI · 2026

https://openai.com/interview-guide/

Careers

Frontier AI lab · 2026

https://www.anthropic.com/careers

Interviewing at Google DeepMind

Google DeepMind · 2026

https://storage.googleapis.com/deepmind-media/DeepMind.com/Assets/Docs/interviewing-at-google-deepmind.pdf

Staff Software Engineer, Labs: Applied AI

Anthropic Careers · 2026

https://job-boards.greenhouse.io/anthropic/jobs/5304425008

Research Engineer, RL Engineering

Anthropic Careers · 2026

https://job-boards.greenhouse.io/anthropic/jobs/4952051008

Research Engineer, Machine Learning (Reinforcement Learning)

Anthropic Careers · 2026

https://job-boards.greenhouse.io/anthropic/jobs/4613568008

Research Engineer

OpenAI Careers · 2026

https://openai.com/careers/research-engineer-san-francisco/

Research Scientist

OpenAI Careers · 2026

https://openai.com/careers/research-scientist-san-francisco/

Guidance on Candidates' AI Usage

Anthropic · 2026

https://www.anthropic.com/candidate-ai-guidance

Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks.

Lewis, P., et al. · 2020 · NeurIPS 2020

https://arxiv.org/abs/2005.11401

DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning

DeepSeek-AI · 2025

https://arxiv.org/abs/2501.12948

Model Context Protocol Specification Overview

Model Context Protocol · 2025

https://modelcontextprotocol.io/specification/2025-11-25/basic/index

Tülu 3: Pushing Frontiers in Open Language Model Post-Training

Lambert, N., et al. · 2024 · arXiv preprint

https://arxiv.org/abs/2411.15124

Jamba: A Hybrid Transformer-Mamba Language Model

AI21 Labs · 2024

https://arxiv.org/abs/2403.19887