Skip to content

MLOps Engineer interview questions

100 real questions with model answers and explanations for Senior candidates.

See a MLOps Engineer resume example

Practice with flashcards

Spaced repetition · Hunter Pass

Questions

train-test

I would join every label to feature values that were available at the original prediction time, not when the training job runs.

  • Feast historical retrieval should match entity keys and event timestamps, with the label window starting 14 days after prediction so future transactions cannot leak into a row.
  • I would retain event time and ingestion time, accept data up to a 48-hour watermark, and version corrections to already published partitions.
  • A test would replay 10,000 entity-timestamp pairs in BigQuery and fail if any selected feature timestamp is later than its prediction timestamp.

Why interviewers ask this: The interviewer is checking whether the candidate can prevent temporal leakage while handling delayed labels and late data.

feature-store

I would require a versioned FeatureView contract that makes semantics, ownership, freshness, and compatibility testable.

  • The definition must name the entity key, type, unit, null policy, default, owner, source, and a freshness target such as 15 minutes.
  • Type or semantic changes create a new version with a 30-day dual-read window; additive metadata changes can stay backward compatible.
  • CI compares 10,000 representative rows from the warehouse and Redis, then blocks publication on schema mismatches or values outside the declared tolerance.

Why interviewers ask this: A strong answer treats a feature definition as an enforceable interface rather than informal catalog metadata.

designfeature-storemlops

I would keep history in the warehouse and materialize only current serving values into a partitioned online store.

  • BigQuery or Snowflake holds the 50 TB history and runs point-in-time joins without forcing the online tier to retain old versions.
  • Kafka and Flink materialize updates into Redis Cluster sized for 130,000 lookups per second, leaving 30% headroom above peak.
  • Feast binds both paths to one definition; five-minute freshness checks and checksum samples over 1 million keys catch incomplete materialization.

Why interviewers ask this: The interviewer is evaluating whether the design separates historical and low-latency access while preserving one feature contract.

I would measure freshness at read time from the source event timestamp and make stale behavior explicit in the serving contract.

  • Flink writes the event timestamp with each Redis value, and the client records source lag, processing lag, and served age separately.
  • Prometheus evaluates the share of reads older than 60 seconds over rolling 10-minute windows and pages only after two consecutive violations.
  • The model either uses a versioned fallback value or rejects the prediction after 120 seconds; silently serving an unmarked stale value is not allowed.

Why interviewers ask this: The question tests whether freshness is a measurable consumer contract with defined behavior when the target is missed.

backfill

I would isolate historical computation from online publication and promote only the latest valid value after validation.

  • Spark writes month-sized offline partitions to shadow tables with pinned source snapshots and resumable partition IDs.
  • Backfill compute uses a separate queue, while Redis writes are capped at 5,000 per second against a measured 20,000 per second spare budget.
  • A cutover selects the newest event per entity and uses timestamp guards, so an old backfill row can never overwrite a newer streaming value.

Why interviewers ask this: A strong answer protects serving capacity and prevents historical writes from reversing online state.

I would publish a new feature version and migrate each model independently instead of changing the existing value in place.

  • Feast exposes average_order_value_v2 while v1 remains available for at least 30 days with separate lineage and ownership.
  • Both versions are materialized to Redis, and Evidently compares seven days of coverage, null rate, and PSI with a review threshold of 0.10.
  • The three models move through separate Argo CD releases; v1 is deleted only after registry lineage shows zero training and serving consumers.

Why interviewers ask this: The interviewer is checking whether the candidate can evolve shared features without hidden behavioral changes.

endpoints

I would reduce network round trips and precompute request-ready groups rather than issue 40 independent reads.

  • Feast feature services define the exact 40-feature vector, and Redis stores co-read values under two or three entity keys instead of 12 remote calls.
  • The budget reserves 3 ms for the client and network, 8 ms for Redis, and 4 ms of tail margin, with a hard 12 ms client deadline.
  • Load tests at 60,000 RPS track Redis command latency, payload size, connection-pool waits, and hot-key rate before accepting the layout.

Why interviewers ask this: The question tests practical control of fan-out, payload shape, and a numeric feature-retrieval latency budget.

redisendpoints

I would use model-approved fallbacks with explicit age and missingness, not convert every failed read into zero.

  • The client keeps a bounded local cache for low-cardinality features and accepts values no older than 10 minutes only where the feature contract permits it.
  • Missing online values map to versioned defaults from the training dataset and set missingness indicators the model saw during evaluation.
  • A 20 ms deadline and circuit breaker stop retry storms; the degraded prediction rate is measured separately and must stay below 0.5% monthly.

Why interviewers ask this: A strong answer preserves semantic consistency and bounds latency while making degraded predictions visible.

replicationdeployment

I would deploy 116 replicas because 89 cover the measured peak and a 30% capacity reserve raises that to 116.

  • The end-to-end budget allocates 8 ms to routing, 32 ms to inference, and 10 ms to queueing and tail variation.
  • Replicas are spread across three zones with topology constraints, and each zone can lose 10 replicas without exceeding safe concurrency.
  • Admission control rejects work when queue age passes 8 ms, because adding an unbounded queue would preserve throughput while breaking p99.

Why interviewers ask this: The interviewer wants a capacity calculation tied to failure reserve, latency allocation, and overload behavior.

batchserving-toolsgpu

I would sweep batch size and queue delay against production-shaped traffic and choose the fastest setting that stays inside 35 ms p99.

  • Triton Model Analyzer tests batches 4, 8, 16, and 32 with queue delays from 0.5 to 4 ms, recording queue time, execution time, and achieved batch distribution.
  • Inputs are bucketed by shape, because padding a mixed batch to the largest image can erase the throughput gain and raise memory use.
  • I keep 20% throughput headroom and reject a setting if queueing exceeds 8 ms at 7,200 predictions per second, even when average latency looks good.

Why interviewers ask this: A strong answer connects Triton settings to measured batching, shape compatibility, and tail latency.

tokensserving-tools

I would tune token scheduling and tensor parallelism from the real prompt and output distributions, not a fixed request batch size.

  • Benchmark 4 and 8 H100 tensor-parallel layouts with production p50 and p95 prompt lengths, measuring TTFT, time per output token, KV-cache occupancy, and tokens per second.
  • Set max_num_batched_tokens so prefill cannot starve decode, and separate interactive requests from batch traffic with distinct queues and concurrency limits.
  • Keep KV-cache occupancy below 90% at peak and shed low-priority work when oldest queue age reaches 1.2 seconds, leaving 600 ms for prefill and network tail.

Why interviewers ask this: The interviewer is testing whether the candidate understands continuous batching, KV-cache pressure, and LLM-specific latency metrics.

restendpoints

I would isolate concurrency, queues, and scaling by model while keeping a shared routing contract.

  • Popular models get dedicated warm Triton instance groups; rare models may share a pool only if their combined load and memory fit a tested limit.
  • The router applies per-model deadlines, concurrency caps, and bounded queues, then routes by immutable model version rather than a mutable latest tag.
  • Dashboards split RPS, p99, queue age, GPU memory, and rejection rate by model, and a noisy model loses its own capacity before consuming another model's reserve.

Why interviewers ask this: The question checks whether multi-model efficiency is balanced with resource and latency isolation.

replicationscalinggpu

I would scale on queue demand with scheduled warm capacity that covers the four-minute startup gap.

  • Keep two warm GPUs for 300 RPS and add one replica per measured 150 RPS when oldest queue age exceeds 20 ms for two minutes.
  • A forecast raises the minimum 10 minutes before the daily peak; scale-down waits 15 minutes to avoid unloading a model that will immediately return.
  • Cap the fleet at 20 GPUs and shed low-priority traffic above 2,700 RPS, while comparing p99 and cost per million requests with a fixed-capacity baseline.

Why interviewers ask this: A strong answer accounts for startup time, leading load signals, warm reserve, and explicit overload behavior.

designmodel-serving

I would run complete regional serving stacks and keep model and feature reads inside the selected region.

  • Each region normally handles about 13,300 RPS but is sized for 24,000, so the remaining two can absorb all traffic after one region is removed.
  • The 60 ms budget assigns 15 ms to global routing and network, 15 ms to features, 20 ms to inference, and 10 ms to serialization and tail margin.
  • The global load balancer removes an unhealthy region within 10 seconds, and quarterly load tests verify 40,000 RPS without synchronous cross-region calls.

Why interviewers ask this: The interviewer is checking the arithmetic of regional capacity, locality, failover time, and latency budget.

deployment-strategies

I would use deterministic cohorts and increase traffic only after both service and model metrics pass a fixed observation window.

  • Route 1%, 5%, 20%, and 50% for 30 minutes each, keeping users pinned by account ID so comparisons are not contaminated by version switching.
  • Roll back if p99 rises by more than 10 ms, errors exceed baseline by 0.2 percentage points, or the primary ranking metric drops more than 1%.
  • Argo Rollouts moves an immutable model and image digest, while MLflow stores the exact baseline, candidate, thresholds, and decision as release evidence.

Why interviewers ask this: A strong answer defines traffic, sample windows, measurable gates, and deterministic rollback.

latency

I would mirror eligible requests asynchronously and isolate shadow capacity from the response-serving path.

  • The gateway publishes sampled request references to Kafka after the production response path, and a separate consumer calls the candidate with side effects disabled.
  • Correlation IDs join baseline and candidate outputs for 3,000 RPS of paired analysis, while sensitive fields are removed before the mirror topic.
  • Shadow workers have their own GPU quota and drop work when lag exceeds five minutes, because replay completeness is less important than production p99.

Why interviewers ask this: The interviewer is testing whether shadow evaluation stays comparable, privacy-aware, and isolated from serving latency.

replication

I would stage immutable weights near the GPU nodes and keep readiness false until the runtime completes a real warm-up.

  • A DaemonSet or image pre-puller caches the model digest on local NVMe, reducing the 90-second remote transfer to a measured load from local disk.
  • Triton loads the model explicitly and runs 20 representative warm-up requests before the readiness probe admits traffic.
  • Keep at least one spare warm node per zone; this costs idle capacity but is required because autoscaling cannot beat a 25-second target from a cold remote download.

Why interviewers ask this: A strong answer separates download, runtime initialization, warm-up, and the cost of meeting a strict readiness target.

sloendpointsserving-tools

I would use RawDeployment for the 70 ms endpoint unless measured Knative queueing and cold starts fit the budget.

  • RawDeployment gives direct control of pods, HPA signals, disruption budgets, and warm replicas, which suits steady high-volume GPU traffic.
  • Serverless mode is useful for sparse CPU models that tolerate scale-to-zero, but a 20-second model cold start cannot satisfy a synchronous 70 ms request.
  • I would load-test both at the same 1,000 RPS profile and compare proxy overhead, p99, scale-up time, and cost before standardizing the runtime class.

Why interviewers ask this: The question tests whether a named serving abstraction is chosen from measured latency and traffic behavior.

sloendpointsgpu

I would declare both as tested deployment targets and route by queue headroom, not use CPU as an unverified emergency fallback.

  • GPU handles the steady peak where batching lowers unit cost; CPU absorbs low-volume periods if its full path remains below 100 ms p99.
  • The router sends work only to pools with queue age below 15 ms and preserves 20 ms for feature retrieval and network overhead.
  • Compare dollars per million successful predictions at 100, 1,000, and 10,000 RPS, including idle GPU cost, before setting the crossover point.

Why interviewers ask this: The interviewer is checking whether latency compatibility and unit economics drive CPU and GPU routing.

model-serving

It is only correct if the $18,000 includes all attributable work and the denominator is defined as successful production predictions.

  • Include GPUs, CPUs, gateways, storage, network, licenses, and telemetry, and report idle or unattributed spend instead of silently spreading it.
  • Keep failed, retried, shadow, and warm-up work in the numerator but outside the successful-prediction denominator, with separate rates for diagnosis.
  • Also report cost per token or item when request sizes vary, because a cheap average can hide one cohort consuming most accelerator time.

Why interviewers ask this: A strong answer makes the numerator, denominator, and workload-size effects auditable.

Locked questions

  • 21

    You must train a 13B-parameter transformer with AdamW on 64 A100 80 GB GPUs. Would you use DDP or FSDP?

    nlp
  • 22

    A 70B FSDP job on 64 spot GPUs needs checkpoints under five minutes and restore on 32 or 64 GPUs. How would you implement it?

  • 23

    Twenty jobs request between 8 and 64 GPUs across four Kubernetes clusters. How would you avoid partial allocations and starvation?

    kubernetes
  • 24

    A 64-GPU training job shows 45% GPU utilization. What measurements would you take before adding hardware?

    gpu
  • 25

    How would you feed 128 H100 GPUs that need 80 GB per second of aggregate training data?

    aggregation
  • 26

    An eight-node job scales only 4.5 times over one node. How would you determine whether NCCL topology is the limit?

  • 27

    Spot GPUs are 60% cheaper but each GPU has a 10% hourly interruption rate. When are they worthwhile for training?

    gpu
  • 28

    Would you use elastic training for a job whose GPU count may change from 16 to 64 during a run?

    gpu
  • 29

    You need to run 2,000 hyperparameter trials with only 64 GPUs. How would you allocate the budget?

    hyperparameters
  • 30

    Three teams share 128 GPUs; one submits many 1-GPU jobs and another needs a weekly 64-GPU run. How would you set quotas?

    gpu
  • 31

    What must a run record contain so a training result can be reproduced six months later on another cluster?

  • 32

    What exactly identifies a model version in a registry when the same weights can run in several serving images?

    model-servingregistries
  • 33

    A team wants to promote model version 42 to production. What automated evidence would you require in MLflow?

    experiment-tracking
  • 34

    How would you trace a production prediction back to its training inputs without storing every raw request forever?

    tracing
  • 35

    A registered PyTorch model works in CI but fails on a CUDA runtime in production. What compatibility contract would have prevented it?

  • 36

    How would you guarantee rollback from model version 43 to 42 in under five minutes?

    deployment-strategiesrollback
  • 37

    The registry contains 10,000 versions and 80 TB of artifacts. How would you delete data without losing rollback or audit lineage?

    rollbackartifactsregistries
  • 38

    Two release pipelines try to move the production alias at the same time. How would you prevent a lost update?

    pipelinesci-cd
  • 39

    A numeric feature receives one million values per day. How would you detect meaningful drift without alerting on every statistical difference?

    alertingiacdrift
  • 40

    How would you monitor a categorical feature with 500 values and a long tail of rare categories?

    monitoring
  • 41

    An hourly partition must pass data-quality checks before entering the feature store. What tests and thresholds would you use?

    mlopspartitioningtesting
  • 42

    How would you detect train-serve skew for features computed through Feast offline and online?

    train-serve-skewfeature-store
  • 43

    Labels arrive after 21 days. How would you decide whether a live model is degrading before and after labels mature?

  • 44

    The global prediction distribution is stable, but a small country cohort may be drifting. How would you catch it without noisy alerts?

    alertingiacdistributions
  • 45

    A retraining workflow waits for warehouse data, trains on Kubernetes, and publishes to MLflow. Where would you use Airflow versus Kubeflow Pipelines?

    kubernetesairflowci-cd
  • 46

    A Kubeflow pipeline retries after the controller restarts. How do you prevent duplicate training and model registration?

    ci-cdkubeflowpipelines
  • 47

    You must backfill 365 daily pipeline partitions while normal daily runs continue. How would you schedule and validate it?

    pipelinespartitioningvalidation
  • 48

    What CI gates would you run before a model artifact can become a release candidate?

    artifacts
  • 49

    How would you implement model CD from an approved registry version to 100% production traffic?

    registries
  • 50

    A new model requires one additional input field. How would you test compatibility and keep rollback under five minutes?

    deployment-strategiesrollback
  • 51

    A fraud model's AUC falls from 0.84 to 0.76 when 21-day labels mature, but serving SLOs are healthy. What do you do?

    slomodel-servingevaluation
  • 52

    Checkout conversion drops 8% after a ranking-model release, while offline NDCG and latency are unchanged. How would you decide whether to roll back?

    latencyrollback
  • 53

    PSI reaches 0.35 for income in one country, but the global model metric is stable. How would you respond?

    monitoring
  • 54

    A daily train-serve skew check shows 4.2% feature mismatches after a preprocessing release; the limit is 0.2%. How do you find the boundary?

    train-serve-skew
  • 55

    An upstream producer changes transaction amounts from dollars to cents without a schema change, and model scores shift within 20 minutes. What do you do?

    transactionsschema
  • 56

    A binary classifier's positive rate jumps from 12% to 61% in one hour, while labels will not arrive for 30 days. What do you do?

  • 57

    A credit model keeps the same ROC AUC, but expected calibration error rises from 0.02 to 0.09. How would you handle it?

    evaluation
  • 58

    Overall recall is unchanged, but recall for a 6% user cohort falls from 72% to 54% after retraining. What decision would you make?

    retrainingcohorts
  • 59

    At 15,000 RPS, inference p99 jumps from 70 ms to 240 ms after a platform release while error rate stays low. Walk through your response.

  • 60

    Median latency remains 32 ms, but p99 rises from 95 ms to 310 ms for 2% of requests. What do you inspect first?

    latency
  • 61

    A Triton config change raises throughput 25% but moves p99 from 38 ms to 82 ms against a 60 ms SLO. Do you keep it?

    configserving-toolsthroughput
  • 62

    vLLM time to first token rises from 900 ms to 3.4 seconds when concurrency passes 80, but token throughput still looks high. How do you debug it?

    tokensthroughputconcurrency
  • 63

    A dependency slows down, clients retry three times, and serving traffic grows from 20,000 to 55,000 RPS in two minutes. How do you stabilize it?

    resiliencemodel-servingdependencies
  • 64

    One newly deployed model consumes 70% of a shared GPU and pushes four other models over their latency SLOs. What do you do?

    latencygpudeployment
  • 65

    Scale-up takes 110 seconds and causes 6% timeouts during a predictable morning peak. How would you reduce impact this week?

    resilience
  • 66

    Feature lookup p99 rises from 8 ms to 90 ms and consumes most of a 120 ms endpoint budget. How do you respond?

    endpoints
  • 67

    One serving region fails at 40,000 global RPS, and the other two reach 92% capacity. What actions do you take in the first ten minutes?

    capacitymodel-serving
  • 68

    GPU memory grows by 400 MB per hour after a runtime upgrade and pods OOM after 18 hours. How do you investigate?

    memorygpu
  • 69

    A canary passes latency and errors, but its online quality proxy falls 4% at the 20% traffic stage. What do you do?

    proxydeployment-strategieslatency
  • 70

    The production alias points to version 46, but half the pods still serve version 45. How do you recover without downtime?

  • 71

    A daily training pipeline grows from six hours to fifteen over one week with the same model code. How do you diagnose it?

    pipelinesci-cd
  • 72

    Training starts OOMing after average sequence length rises from 1,200 to 3,800 tokens. What do you change first?

    tokens
  • 73

    A 64-GPU job hangs at step 18,400 with no exception and all GPUs allocated. How do you debug it?

    gpuerror-handling
  • 74

    GPU utilization falls from 82% to 41% after a dataset refresh, while model compute time is unchanged. What do you inspect?

    gpu
  • 75

    A distributed checkpoint now takes 25 minutes, exceeding the five-minute target. How do you narrow it down?

    distributed
  • 76

    A spot training job restarts six times and is now 30% more expensive than on-demand. What decision do you make?

  • 77

    Airflow retries a submission and creates two 32-GPU training jobs for the same run. How do you contain and fix it?

    airflowgpu
  • 78

    A Kubeflow run finishes training, but remains Running for two hours and never registers the model. How do you debug it?

    kubeflow
  • 79

    A 365-day backfill takes all Spark slots and delays the daily training SLA by four hours. What do you do?

    backfill
  • 80

    A pipeline cache returns a model trained on yesterday's data after today's source partition was corrected. How do you prevent recurrence?

    pipelinescachingpartitioning
  • 81

    Replaying a six-month-old run changes accuracy from 91.4% to 89.8%. How do you find why?

  • 82

    A team begins publishing 800 GB checkpoints every 30 minutes and fills shared storage. How do you respond?

  • 83

    Monthly GPU spend rises from $120,000 to $260,000 without a product launch. How do you investigate and contain it?

    gpu
  • 84

    A training fleet averages 38% GPU utilization while jobs wait six hours for capacity. What changes would you test first?

    capacitygpu
  • 85

    A hyperparameter sweep launches 1,500 trials overnight and burns 9,000 GPU-hours with no better model. What do you change?

    hyperparametersgpu
  • 86

    One team splits work into hundreds of tiny jobs to dominate a first-come GPU queue. How would you correct the policy?

    gpudata-structures
  • 87

    You must cut serving cost per million predictions by 30% in six weeks without worsening a 90 ms p99 SLO. What do you try?

    slomodel-serving
  • 88

    The cloud bill shows 420 GPU endpoints, but the registry lists only 310 active deployments. How do you clean this up safely?

    deploymentregistriesendpoints
  • 89

    At 02:00, 75% of model endpoints start returning 503 after a certificate rotation. You are on call. What do you do first?

    endpoints
  • 90

    The model registry is unavailable for 40 minutes, but existing endpoints are healthy. What should on call preserve and disable?

    registriesmodel-registryendpoints
  • 91

    The online feature store is fully unavailable during peak traffic for 12 minutes. How do you run the incident?

    mlopsincidentsfeature-store
  • 92

    After regional failover, Europe serves model 31 while the US serves model 32, and outputs differ by 7%. What do you do?

  • 93

    A retry storm causes a 47-minute platform outage and 18 million failed predictions. What must the postmortem produce?

    incidentsresilience
  • 94

    A teammate proposes retrying every failed inference once per second for five minutes. How would you review that change?

    resilience
  • 95

    A mid-level engineer says, 'We need more GPUs' after p99 rises from 80 ms to 160 ms. How would you coach the investigation?

  • 96

    Three teams implement the same text preprocessing differently, causing 2% train-serve mismatches. How would you establish a standard?

  • 97

    A high-revenue team asks to bypass model CI for a launch in 48 hours. What would you allow?

  • 98

    A teammate wants to upgrade CUDA across 70 production models in one maintenance window. How would you change the plan?

  • 99

    A managed training vendor is down for six hours during a deadline, and moving one run would take two hours. Do you fail over?

    procurementestimation
  • 100

    A product owner wants to promote a model today, but a reviewer finds a 6% recall loss in one critical slice. How do you resolve it?