MLOps Engineer interview questions
100 real questions with model answers and explanations for Middle candidates.
See a MLOps Engineer resume example →Practice with flashcards
Spaced repetition · Hunter Pass
Questions
A pipeline orchestrator separates workflow planning and state management from task execution and artifact storage.
- Its parser or compiler turns a pipeline definition into a graph and validates structural constraints.
- Its scheduler finds runnable task instances from dependencies, trigger rules, quotas, and run state.
- Its executor submits work to local processes, worker queues, or a cluster without performing the task itself.
- Its metadata store records runs and task states, while an object store or database holds large outputs.
Why interviewers ask this: The interviewer is checking whether the candidate understands orchestration as cooperating control-plane components rather than a script that runs commands.
A DAG defines a finite partial order in which directed edges express task dependencies without cycles.
- A task becomes eligible only after its upstream dependencies satisfy their configured trigger rules.
- Independent branches may run concurrently because the graph does not impose an order between them.
- A fan-out creates parallel branches, while a join waits for the required upstream branches.
- A cycle is invalid because no topological execution order can satisfy circular dependencies.
Why interviewers ask this: A strong answer distinguishes dependency semantics from the incidental order in which workers happen to execute tasks.
Compilation builds a validated executable specification, while runtime creates concrete runs and resolves their state.
- Compilation captures components, edges, parameter placeholders, conditions, and execution settings in an intermediate representation.
- Static checks can reject missing inputs, incompatible types, cycles, or malformed component definitions before submission.
- Runtime binds actual parameter values, creates task instances, and evaluates conditions whose values come from earlier tasks.
- The runtime records state transitions and delegates eligible work to the configured execution backend.
Why interviewers ask this: The interviewer is evaluating whether the candidate can separate declarative graph construction from the control loop that executes a run.
A task boundary should enclose one independently executable step with an explicit, stable input and output contract.
- Separate steps that need different images, resource profiles, retry policies, owners, or cache lifecycles.
- Keep tightly coupled in-memory operations together when materializing an intermediate would add cost without reuse.
- Make side effects such as publishing a model distinct from pure transformations so their execution policy is visible.
- Avoid tiny tasks whose scheduling and container startup overhead exceeds their useful work.
Why interviewers ask this: The interviewer is looking for a principled balance between isolation and orchestration overhead.
Tasks should pass durable artifact references through the orchestrator and store large payloads outside its metadata database.
- A producing task writes an immutable object or versioned dataset to shared storage before publishing its URI.
- The output record should include type, schema or format, checksum, producer run, and relevant lineage metadata.
- A consuming task reads only its declared inputs, which keeps dependencies explicit and execution environments isolated.
- Atomic publication through a final rename, manifest, or commit marker prevents consumers from observing partial output.
Why interviewers ask this: A strong answer treats artifact movement as a durable contract with lineage rather than shared local filesystem state.
A schedule creates runs for logical time intervals, while an event creates runs from the arrival of a defined external fact.
- Scheduled runs should use the logical interval as an input instead of assuming wall-clock execution time.
- Catchup and backfill materialize missed historical intervals according to the same schedule semantics.
- Event triggers should carry a stable event identifier and payload reference so duplicate delivery can be deduplicated.
- Both trigger types should map to the same parameterized pipeline contract so execution remains reproducible.
Why interviewers ask this: The interviewer is checking understanding of logical time, historical runs, and at-least-once event delivery.
A pipeline task is idempotent when repeated execution for the same logical inputs converges on the same committed result.
- Derive output locations or operation keys from the run partition, input versions, and relevant parameters.
- Use upserts, compare-and-set operations, or uniqueness constraints for external writes instead of unconditional appends.
- Write temporary output first and expose it only through an atomic commit step.
- Record completed side effects under an idempotency key so a retry can recognize prior completion.
Why interviewers ask this: The interviewer is evaluating whether the candidate can make retries safe across both artifact writes and external side effects.
Retries should be limited to transient failure classes and use bounded exponential backoff with jitter.
- Retry policies need an attempt limit so permanent failures do not consume capacity indefinitely.
- Exponential delays reduce pressure on a recovering dependency, while jitter prevents synchronized retry waves.
- Validation errors, incompatible schemas, and invalid parameters should fail without retry because repetition cannot change them.
- Retry safety depends on task idempotency and on each attempt using the same logical input contract.
Why interviewers ask this: A strong answer connects retry policy to failure classification, load control, and idempotent execution.
Pipeline orchestration needs separate time limits for waiting, task execution, and the overall workflow run.
- A queue timeout bounds how long a task may wait for a worker or scarce resource before it is marked unsuccessful.
- An execution timeout bounds the task process after it actually starts and should allow graceful termination before forced termination.
- A sensor or external-operation timeout limits total elapsed waiting across repeated checks or deferrals.
- A workflow timeout caps the end-to-end run even when every individual task remains within its own limit.
Why interviewers ask this: The interviewer is checking whether the candidate distinguishes resource waiting from active execution and end-to-end duration.
A task cache reuses outputs only when a cache key represents every input that can affect the result.
- The key normally includes component code or image digest, input artifact versions, parameters, and relevant configuration.
- Cached artifacts must remain immutable and accessible for at least as long as their metadata entries.
- Nondeterministic inputs such as current time, random seeds, or mutable external tables must be pinned or included in the key.
- Caching should be disabled for intentional side effects such as notifications or model publication.
Why interviewers ask this: The interviewer is evaluating whether the candidate understands cache correctness rather than merely enabling a platform option.
Pipeline resume skips already committed tasks, while task checkpointing restores progress inside one long-running computation.
- The orchestrator resumes from persisted task states and verifies that successful outputs are still available.
- A resumed run should preserve the original parameters and input versions unless it is deliberately created as a new run.
- Training code writes periodic checkpoints containing model, optimizer, scheduler, and progress state to durable storage.
- A task restored from a checkpoint must still publish its final artifact through the normal atomic output contract.
Why interviewers ask this: A strong answer separates orchestrator-level state recovery from application-level recovery within training code.
The Airflow scheduler turns parsed DAG definitions and timetable intervals into runnable task instances.
- DAG processors parse files and serialize DAG structure so scheduling does not depend on importing code in workers.
- The scheduler creates DagRuns, evaluates task dependencies and trigger rules, and moves eligible instances toward the queued state.
- It enforces limits such as pools, DAG concurrency, and maximum active runs before handing tasks to the executor.
- Multiple schedulers coordinate through the metadata database so scheduling decisions remain consistent.
Why interviewers ask this: The interviewer is checking knowledge of Airflow's scheduling control loop and its metadata-driven coordination.
An Airflow executor maps queued task instances onto execution capacity, while workers run the task processes.
- LocalExecutor launches task processes on the scheduler host and fits a single-machine deployment.
- CeleryExecutor sends tasks through a broker to a persistent worker fleet that pulls and executes them.
- KubernetesExecutor creates a separate pod per task, allowing each task to select its own image and resource requests.
- Task state and coordination remain in Airflow's control plane even when execution occurs on external workers.
Why interviewers ask this: A strong answer explains the execution abstraction and the operational differences among common executor models.
Airflow XCom should contain small task-to-task values or references, not large ML artifacts.
- Typical values include an object-store URI, partition identifier, model version, or compact status metadata.
- XCom rows live in the metadata layer by default, so large payloads increase database and serialization costs.
- Large datasets, checkpoints, and models belong in durable artifact storage with only their references in XCom.
- A custom object-storage XCom backend can offload serialized values, but explicit artifact contracts remain clearer.
Why interviewers ask this: The interviewer is evaluating whether the candidate respects the boundary between orchestration metadata and data storage.
Airflow sensors differ in whether waiting occupies a worker slot and how the next check is scheduled.
- Poke mode sleeps inside a running task and retains its worker slot between checks.
- Reschedule mode releases the worker slot and asks the scheduler to run another check later.
- A deferrable sensor hands waiting to the asynchronous triggerer and resumes the task when its trigger fires.
- Long waits generally favor deferrable or reschedule behavior, while short checks may justify poke mode.
Why interviewers ask this: A strong answer connects sensor semantics to worker capacity and the triggerer architecture.
Airflow pools and concurrency limits constrain different scopes of runnable task instances.
- A pool represents shared capacity such as GPU jobs or access to a rate-limited service, and tasks consume configured slots.
- Global parallelism caps task instances across the whole Airflow installation.
- DAG-level task concurrency limits simultaneous task instances for one DAG across active runs.
- Maximum active runs limits overlapping DagRuns and prevents a frequent schedule from multiplying downstream demand.
Why interviewers ask this: The interviewer is checking whether the candidate can distinguish resource-specific limits from installation-level and DAG-level controls.
A Kubeflow Pipelines component specification defines a portable typed interface and the container execution needed to implement it.
- Inputs and outputs declare parameter or artifact names, types, and optional default values.
- The container section fixes the image, command, arguments, and placeholders that bind declared inputs and outputs.
- Resource requests, environment, caching options, and platform-specific settings may be attached when the component is used.
- A stable component contract lets pipeline authors replace implementation versions without changing downstream wiring.
Why interviewers ask this: The interviewer is evaluating whether the candidate sees a Kubeflow component as a typed execution contract rather than arbitrary Python code.
Kubeflow Pipelines uses parameters for small values and typed artifacts for durable file-based outputs.
- Parameters carry scalar or structured control values that the backend can substitute into component arguments.
- Artifacts expose a storage path or URI plus a type and metadata instead of embedding the payload in pipeline state.
- The runtime launcher materializes input and output locations and records artifact lineage in the metadata service.
- Declared artifact types such as Dataset, Model, and Metrics make compatibility and lineage visible across components.
Why interviewers ask this: A strong answer explains both the data boundary and the metadata behavior of Kubeflow artifact passing.
Kubeflow compilation converts the pipeline-building program into a static PipelineSpec package for submission.
- Component invocations become task nodes with explicit dependencies, input channels, output channels, and placeholders.
- Control constructs such as conditions, loops, and exit handling are encoded in the intermediate representation.
- The compiler validates graph wiring and type compatibility that can be determined without runtime values.
- The backend later creates a run from the package and resolves runtime parameters, artifact locations, and platform execution details.
Why interviewers ask this: The interviewer is checking whether the candidate understands that pipeline Python constructs a specification rather than directly running component code.
Argo WorkflowTemplates store reusable workflow or template definitions that Workflows can reference or submit.
- A template can define steps, DAG tasks, containers, scripts, inputs, outputs, and synchronization settings.
- A Workflow may reference a namespaced WorkflowTemplate through templateRef instead of copying its implementation.
- ClusterWorkflowTemplates provide cluster-scoped reuse and therefore require deliberately managed access control.
- Versioned template names or Git-managed manifests keep callers tied to a reviewed execution contract.
Why interviewers ask this: A strong answer covers reuse, reference semantics, scope, and version control for Argo workflow definitions.
Locked questions
- 21
When should an Argo workflow use parameters versus artifacts?
artifactsargo - 22
Which Kubernetes workload primitives fit common ML workloads?
kubernetes - 23
How does Kubernetes schedule GPU workloads?
kubernetesgpu - 24
How do batch, online, and streaming model serving patterns differ?
streamingbatchmodel-serving - 25
What should a model serving contract define?
model-servingmlops - 26
How does Triton Inference Server organize and execute models?
serving-tools - 27
What do dynamic batching and model instances do in Triton?
batchserving-tools - 28
What abstractions does KServe provide for model serving on Kubernetes?
kubernetesserving-toolsmodel-serving - 29
What is the role of a Bento in BentoML?
serving-tools - 30
Why does vLLM use PagedAttention and continuous batching?
batchserving-tools - 31
How do Triton, KServe, BentoML, and vLLM differ in a serving stack?
serving-toolsmodel-serving - 32
What are the main components of a Feast feature store?
mlopscomponentsfeature-store - 33
What should a feature-store contract define?
- 34
What is point-in-time correctness in feature retrieval?
- 35
What does feature materialization do in Feast?
feature-store - 36
How should feature freshness be defined and measured?
- 37
How does a feature store support train-serve consistency?
consistencyfeature-storemlops - 38
How do Feast and Tecton differ as feature-store platforms?
feature-store - 39
Which tests belong in CI for an ML system?
system-designtesting - 40
How should validation gates control an ML pipeline?
pipelinesvalidationci-cd - 41
What does immutable continuous delivery mean for ML artifacts?
ci-cdartifactsimmutability - 42
What should a model-registry promotion policy contain?
registries - 43
What controls make continuous training safe and reproducible?
continuous-trainingreproducibility - 44
How does MLflow lineage support reproducibility at scale?
lineagereproducibilityexperiment-tracking - 45
How should datasets be versioned for reproducible training?
reproducibility - 46
What must be captured to version an ML execution environment?
- 47
How do model cards, approvals, and audit records support model governance?
- 48
Which observability layers and metrics should an ML serving platform expose?
observabilitymonitoringmodel-serving - 49
How do data drift, prediction drift, concept drift, and train-serve skew differ?
mlopsdrifttrain-serve-skew - 50
How do Evidently and WhyLabs support ML data and drift monitoring?
monitoringiacdrift - 51
A Kubeflow pipeline task has stayed Pending for 20 minutes while neighboring tasks run; how would you debug it in production?
ci-cdkubeflowpipelines - 52
The pipeline UI reports success, but deployment cannot find the model artifact or rejects it because the checksum is wrong; how would you investigate and prevent a repeat?
deploymentci-cdartifacts - 53
Two training runs use the same configuration and data but produce metrics outside the accepted tolerance; how would you debug the nondeterminism?
configmonitoring - 54
A GPU training job sometimes runs out of memory, yet its average GPU utilization is low on successful runs; how would you diagnose and tune it?
memorygpu - 55
An upstream producer changes a field type and the next training run is about to consume the new partition; how would you stop bad data before training starts?
partitioning - 56
Offline evaluation remains strong after a feature release, but production predictions degrade; how would you confirm and remediate offline-online skew in Feast or Tecton?
train-serve-skewfeature-store - 57
A feature logic bug requires a six-month backfill; how would you run it without future leakage or overwriting fresher online values?
backfill - 58
An Argo step registers a model and requests deployment, but a network timeout triggers a retry and creates duplicate deployments; how would you fix the workflow?
resiliencedeploymentargo - 59
Hundreds of concurrent experiments flood the cluster, leave pods Pending, and delay production retraining; how would you scale pipeline execution fairly?
retrainingconcurrencyci-cd - 60
The cluster shows free GPUs, yet multi-GPU jobs remain Pending while other teams hold allocated but mostly idle devices; how would you address fragmentation and utilization?
gpu - 61
A KServe endpoint backed by Triton suddenly breaches its p99 latency SLO; how do you troubleshoot it layer by layer?
serving-toolsendpointslatency - 62
A new model deployment starts returning 5xx responses immediately; how do you isolate container, readiness, model-load, and routing failures?
containersdeploymenthealth-checks - 63
Production predictions degrade while latency, error rate, CPU, and GPU metrics remain green; how do you respond?
latencygpumonitoring - 64
Which metrics do you use for a canary model rollout, and when do you decide to roll it back?
deployment-strategiesmonitoring - 65
How do you roll back safely when a new model also changed its feature contract or output contract?
rollback - 66
Autoscaling keeps capacity available, but cold starts still violate the online inference latency SLO; what do you change?
capacityscalingslo - 67
An online Triton deployment begins failing with GPU out-of-memory errors under load; how do you isolate batching, concurrency, and model-memory causes?
memorygpudeployment - 68
Traffic to an inference API spikes unexpectedly; how do you protect the latency SLO without letting inference cost grow without control?
sloapilatency - 69
While on call, you receive model-quality and infrastructure alerts at the same time; how do you prioritize the response and communicate it?
prioritizationcommunicationalerting - 70
The online feature store becomes unavailable during serving; how do you degrade gracefully while controlling fallback freshness?
feature-storemodel-servingmlops - 71
A production monitor raises a covariate drift alert for several important features; what is your practical response?
monitoringalertingiac - 72
You suspect concept drift, but ground-truth labels arrive six weeks later; how would you investigate and manage the risk?
mlopsiacdrift - 73
A drift dashboard suddenly shows a large distribution shift; how do you distinguish a data-quality incident from real population drift?
distributionsincidentsiac - 74
Your team receives too many drift alerts; how would you tune thresholds and windows without hiding meaningful change?
alertingiacdrift - 75
Aggregate production metrics look healthy, but one customer segment is degrading; what would you do?
aggregationmonitoring - 76
Six weeks of delayed labels arrive, the reported quality metric jumps from 0.78 to 0.96, and two dashboards disagree; how would you verify the label join and repair the metrics?
conflictjoinsmonitoring - 77
Confirmed drift affects new customers, but only two weeks of mature labels are available and traffic is seasonal; how would you choose a safe retraining window and data mix?
retrainingiacdrift - 78
How would you run a champion-challenger shadow deployment, and what evidence would justify promoting the challenger?
deployment-strategiesdeployment - 79
A model registry blocks promotion because lineage, approval, and evaluation records are missing; how do you proceed?
registriesmodel-registrylineage - 80
How would you reproduce a historical production prediction using MLflow lineage, including the model, features, code, and environment?
lineageexperiment-tracking - 81
CI passes, but the production ML container fails to start because of an architecture, system library, or accelerator runtime mismatch; how do you troubleshoot and fix it?
system-designcontainers - 82
A model package exceeds CI artifact, registry, or deployment size limits; what would you change without losing traceability?
deploymentartifactsregistries - 83
GPU integration tests pass alone but fail when CI runs them concurrently because jobs share model caches, ports, and accelerator state; how would you isolate the cause and make the suite reliable?
cachinggpuintegration - 84
The full ML validation suite takes four hours and blocks every training-code change; how would you redesign CI/CD gates without weakening promotion safety?
cicdci-cdvalidation - 85
A GitOps or KServe desired state differs from the live model deployment; how do you investigate and reconcile it?
deploymentgitopsserving-tools - 86
A model deployment fails because of Kubernetes RBAC, secrets, or service-account configuration; how do you diagnose and fix it safely?
kubernetesdeploymentconfig - 87
A low-traffic canary does not collect enough samples for statistical confidence; how do you decide whether to promote it?
deployment-strategies - 88
How would you coordinate a feature schema change across the data pipeline, feature store, and online serving?
pipelinesfeature-storemodel-serving - 89
How do you safely roll out a multi-model or ensemble change when component dependencies must also roll back together?
dependenciesrollbackcomponents - 90
A stale CI cache or mutable tag caused the wrong model artifact to be deployed; how do you prove what ran and prevent recurrence?
deploymentartifactscaching - 91
An online inference service is meeting its latency SLO, but its bill is growing faster than traffic. How would you profile it and reduce cost without breaking the SLO?
slolatency - 92
You must serve a gradient-boosted ranking model at 150 requests per second with an 80 ms p99 target and bursty traffic. How would you choose between CPU and GPU instances?
gpu - 93
A training job takes eight hours on four GPUs, and the team wants to move it to spot instances. How would you design checkpointing and decide whether retries still make spot economical?
designfinops - 94
A vLLM deployment has high GPU cost and unstable p99 latency as prompt lengths vary. How would you tune batching, quantization, KV cache, and replicas?
cachinglatencygpu - 95
Several teams share training clusters, model serving, and artifact storage, but finance only sees one ML platform bill. How would you build cost attribution and use it to change behavior?
model-servingartifactsmlops - 96
Your platform now runs thousands of pipelines per day, and metadata queries and artifact storage are becoming slow and expensive. How would you scale them and control retention?
ci-cdartifactsqueries - 97
A data scientist hands you a notebook that trains a promising model and asks for weekly production retraining. How would you productionize it?
retraining - 98
A data scientist proposes a model with a better offline metric, but your benchmark shows worse latency, cost, and reliability. How would you resolve the disagreement?
conflictlatencymonitoring - 99
A schema change caused six hours of failed training jobs, and the incident postmortem produced twelve action items. How would you turn them into prevention rather than a forgotten list?
incidentsschematracking - 100
Data scientists want a new distributed-training capability, while the ML platform has recurring incidents and reliability debt. How would you prioritize the work with them?
prioritizationincidentsdistributed