← Netflix Interview Insights

Netflix·Software Engineer·Onsite - System Design / Architecture·Senior

Senior
Apr 2026

Summary

Netflix ML infra system design round. The whole thing was basically one big question about building a compute scheduler for ML workloads, and they wanted you to cover a lot of ground fast. Dense but interesting.

Questions Asked (1)

Q1

Design a compute resource allocation system that schedules ML training and inference jobs across heterogeneous CPU and GPU resources in multiple clusters. Cover the job submission API, queueing, priority, resource matching, bin-packing, fairness, cluster placement, preemption, fault tolerance, and utilization tracking.

System DesignTechnical Trade-offsAPI & Integrations
Author's notes

This is basically a full distributed systems design question dressed up as an ML infra problem.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale (job types, SLAs, cluster sizes), then design a layered architecture: API for submission, a scheduler with queues and priorities, and a resource manager for placement and preemption. Walk through the end-to-end flow of a job, highlighting trade-offs in bin-packing, fairness, and fault tolerance, and conclude with utilization tracking and monitoring.

Pro tip: Emphasize that ML training jobs are often long-running and gang-scheduled, while inference jobs are latency-sensitive; design separate queues and preemption policies for each, and discuss how to avoid resource fragmentation with bin-packing strategies like best-fit with anti-affinity.

1. Clarify Requirements and Scale

Ask about job types (training vs inference), expected scale (jobs per day, cluster size), SLAs, and constraints (e.g., GPU types, data locality). This ensures the design meets actual needs.

2. Design Job Submission API and Queueing

Define a REST/gRPC API for submitting jobs with resource requests, priority, and constraints. Describe queueing with multiple priority levels and fairness policies (e.g., weighted fair queueing).

3. Resource Matching and Bin-Packing

Explain how to match jobs to nodes using bin-packing algorithms (e.g., best-fit, first-fit) considering CPU, GPU, memory, and topology. Discuss handling heterogeneous resources and avoiding fragmentation.

4. Cluster Placement, Preemption, and Fault Tolerance

Describe placing jobs across clusters based on capacity, cost, and data locality. Cover preemption policies (priority-based, checkpointing) and fault tolerance (retries, replication, health checks).

5. Utilization Tracking and Monitoring

Outline metrics to track (GPU/CPU utilization, queue wait times, job success rates) and how to expose them for autoscaling and capacity planning. Mention dashboards and alerts.

Key Points to Mention

  • Gang scheduling for distributed training jobs to avoid deadlocks
  • Priority and preemption: high-priority inference jobs can preempt low-priority training, with checkpointing
  • Bin-packing strategies: best-fit decreasing, and considering GPU memory and CPU-GPU affinity
  • Fairness: weighted fair queueing or dominant resource fairness across teams/users
  • Fault tolerance: job retries, checkpointing, and node health monitoring
  • Utilization tracking: metrics like GPU utilization, queue wait time, and job throughput for autoscaling

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.