Representative practice prompts
Six Netflix frontend interview practice questions
For each prompt, clarify the contract, explain ownership and trade-offs, implement or diagram the smallest credible slice, and test failures. The evaluation guidance is public; paid solutions and catalog titles remain outside this page.
Prompt 1
Implement resilient title search
Build a title-search experience that feels immediate while requests overlap, results arrive out of order, and the network becomes slow or unavailable.
What this measures
JavaScript timing, async ownership, cancellation, accessible interaction, and whether UI state remains truthful under failure.
Clarify first
- Confirm the minimum query length, debounce interval, result limit, selection behavior, and whether earlier requests can be aborted.
- Define keyboard behavior plus loading, empty, error, offline, cancelled, and stale-result states before choosing components.
Strong answer should cover
- Separate input state, active query, request identity, results, and visible status.
- Use debounce to limit starts and AbortController where transport cancellation is supported.
- Add a monotonically increasing token or takeLatest guard to every success, error, and cleanup write.
- Preserve keyboard focus and expose useful combobox or listbox semantics.
- Test out-of-order fulfillment, late rejection, rapid deletion, cancellation, empty results, and retry.
Common miss: Treating debounce as a race-condition solution while an older response or finally block can still overwrite the current query.
Practice takeLatest request handling Prompt 2
Build an accessible Continue Watching row
Build a horizontally browsable Continue Watching exercise that preserves a user’s place while cards load, progress changes, and input switches between pointer, keyboard, and remote-like controls.
What this measures
Semantic structure, focus management, stable rendering, image behavior, progressive enhancement, and product judgment across devices.
Clarify first
- Ask which devices and input methods matter, how many titles can appear, and whether the row is server-ranked or locally updated.
- Define card semantics, focus movement, progress labeling, image fallbacks, and what happens when a title disappears.
Strong answer should cover
- Use stable title identities and preserve logical focus when cards update.
- Keep DOM order, visual order, and assistive-technology reading order aligned.
- Reserve image dimensions, lazy-load outside the near viewport, and provide useful fallback content.
- Bound rendering work without hiding items from keyboard and assistive-technology users.
- Cover loading, empty, offline, stale-progress, missing-image, and partial-update states.
Common miss: Optimizing the carousel visually while losing focus, changing card order unexpectedly, or making controls pointer-only.
Explore large-list rendering and recovery Prompt 3
Stop personalized rows from re-rendering unnecessarily
A browse screen becomes sluggish when playback progress and recommendation data update. Diagnose the work before changing memoization or state architecture.
What this measures
Profiling discipline, React render reasoning, state boundaries, referential stability, and evidence-led performance work.
Clarify first
- Ask which interaction is slow, which devices are affected, how updates enter the client, and what measurements already exist.
- Separate component render time, browser layout or paint, image work, scripting, and network latency.
Strong answer should cover
- Capture a reproducible trace and identify the components and updates that dominate the interaction.
- Keep frequently changing playback state close to the consumers that need it.
- Stabilize props and selectors where evidence shows avoidable work.
- Apply memoization selectively and include its comparison and memory costs.
- Set a measurable budget and verify both interaction speed and UI correctness after the change.
Common miss: Adding memo everywhere before profiling, which can preserve poor state boundaries and add comparison overhead.
Review unnecessary React re-renders Prompt 4
Reason about streaming delivery, caching, and failure states
Explain how a streaming product could deliver app code, artwork, metadata, and personalized responses while balancing speed, freshness, privacy, and graceful recovery.
What this measures
Layered caching knowledge, invalidation judgment, personalization boundaries, client resilience, and the ability to connect architecture to user experience.
Clarify first
- Separate static public assets, versioned app bundles, catalog metadata, personalized data, and playback-adjacent state.
- Ask about freshness targets, regional constraints, device storage, authentication, offline behavior, and acceptable stale content.
Strong answer should cover
- Assign browser, service worker, CDN or edge, and origin caches only where their trust and freshness boundaries fit.
- Use content hashing or versioning for immutable assets and explicit revalidation for mutable data.
- Keep private personalized responses out of shared caches and define safe client persistence.
- Explain invalidation, stale-while-revalidate behavior, and fallback UI for partial failures.
- Measure cache hit rate, latency, staleness, error rate, and user-visible recovery.
Common miss: Saying “cache everything at the CDN” without separating public assets from private or fast-changing personalized data.
Review streaming delivery and caching strategies Prompt 5
Design Continue Watching for regional and device scale
Design a representative frontend architecture for a Continue Watching row that reconciles progress across devices and remains usable on variable networks and hardware.
What this measures
Frontend system design, requirements framing, state ownership, rendering scale, accessibility, resilience, observability, and rollout safety.
Clarify first
- Confirm supported devices and inputs, progress freshness, row size, ordering rules, offline expectations, and what consistency users need.
- Identify which behavior belongs to the client, API contract, edge delivery, or source-of-truth service before drawing component boxes.
Strong answer should cover
- Define a device-aware payload with stable title ids, progress, artwork variants, ordering data, and a version or update time.
- Separate server state, local interaction state, focus state, image state, and optimistic progress.
- Use a bounded render window and prefetch policy appropriate to device capability and input direction.
- Reconcile newer progress without resetting focus or horizontal position.
- Include accessible navigation, offline and partial-failure behavior, client metrics, experiments, and rollback.
Common miss: Starting with a diagram while requirements, state ownership, focus behavior, failure recovery, and success metrics remain undefined.
Use the performance system-design blueprint Prompt 6
Defend a consequential frontend decision
Describe a frontend decision with meaningful product or engineering consequences, including the ambiguity you faced, alternatives you rejected, feedback you received, and what the outcome changed.
What this measures
Judgment, communication, self-awareness, evidence, collaboration, and the ability to revise a position without hiding trade-offs.
Clarify first
- Choose a story where you owned a real decision and can explain the user, technical, and organizational constraints.
- Define the decision point, available evidence, stakeholders, alternatives, and the metric or observation used to judge the result.
Strong answer should cover
- Set context and stakes briefly, then state your personal responsibility.
- Compare credible alternatives and explain why the chosen trade-off fit the constraints.
- Describe disagreement or feedback accurately and show how it affected the decision.
- Report a measurable or observable outcome without overstating causality.
- End with what you would repeat, change, or investigate next.
Common miss: Telling a polished success story with no real alternative, disagreement, evidence, or reflection on what could improve.
Structure a behavioral interview story