Netflix logo

Netflix Mobile Engineer Interview Questions

36 practice questions for Netflix Mobile Engineer interviews

Netflix mobile engineer interviews focus on iOS or Android platform knowledge, memory management, offline-first architecture, and mobile-specific system design.

All Roles Software Engineer Backend Engineer Frontend Engineer Full Stack Engineer Mobile Engineer Data Engineer Data Scientist ML Engineer DevOps Engineer DevOps Engineer Product Manager SRE Security Engineer Engineering Manager Data Analyst UX/UI Designer QA Engineer
coding Easy Verified Question #1

1. Label Co-occurrence Finder


Category: String coding problem
You are given a list of label groups and a list of required labels. Each group is a list of strings. A group is considered valid if it contains every...
Input: Array of strings
Output: Array
coding Medium Verified Question #2

2. Region Grid Coloring


Category: Grid/matrix coding problem
You are given an M x N grid of security zones. Each cell contains one of the following values: - 1 -- the zone is cleared - 0 -- the zone...
Input: 2D grid
Output: Computed result
coding Medium Verified Question #3

3. Parallel Task Batching


Category: Graph coding problem
A pipeline must execute a set of tasks with dependency constraints. Each dependency [A, B] means task A must complete before task B can start....
Input: Graph (nodes and edges)
Output: Computed result
coding Medium Verified Question #4

4. Maximum Interval Overlap


Category: Interval-based coding problem
You are given a list of closed intervals on the number line, where each interval [start, end] includes both endpoints. Find the maximum number of...
Input: List
Output: Integer
coding Hard Verified Question #5

5. Interval Coverage Counter


Category: Interval-based coding problem
Given a list of closed intervals on the integer number line, build a data structure that efficiently answers point-coverage queries. A closed...
Input: List
Output: Computed result
coding Easy Verified Question #6

6. [CodeSignal] Movie Group Ranker


Category: Array coding problem
You are building a movie recommendation system. Given a source movie a user liked, you receive: - An array scores where scores[i] is the...
Input: Array
Output: Integer
coding Easy Verified Question #7

7. [CodeSignal] One-Hot Encoder


Category: Matrix coding problem
Given an integer array arr, return its one-hot encoded matrix as a 2D array. In a one-hot encoding: - Each row represents one element from arr. -...
Input: Matrix (2D array)
Output: Computed result
coding Medium Verified Question #8

8. Event Rate Limiter


Category: String coding problem
Design a rate-limited event logger for a streaming system. Events arrive in non-decreasing timestamp order. The system must suppress an event name if...
Input: String
Output: Printed output
coding Medium Verified Question #9

9. Viewing History Friends


Category: Algorithm coding problem
A streaming platform groups customers together based on shared viewing habits. You receive: - customerIds - a list of distinct customer IDs -...
Input: List
Output: Array
coding Hard Verified Question #10

10. Weight-Based Cache


Category: String coding problem
# Weight-Based Cache
Input: List
Output: Computed result
coding Hard caching #1

1. [OA] LRU Cache — Implement the caching layer for Netflix’s API responses

Netflix needs fast access to frequently requested data to enhance user experience by minimizing load times. An LRU (Least Recently Used) Cache is pivotal in achieving this within limited memory.
Design and implement a data structure that retrieves the most recently accessed items while evicting the least recently used ones when the capacity is reached.
Method Signature:
- get(key: int) -> int — Retrieves the value of the key if present in the cache, otherwise returns -1.
- put(key: int, value: int) -> void — Updates or inserts the value by key. If the cache is at capacity, it should invalidate the least recently used item before inserting a new item.
Example 1:
Input:
put(1, 1)
put(2, 2)
get(1)
put(3, 3)
get(2)
put(4, 4)
get(1)
get(3)
get(4)
Output: 1, -1, 3, 4
Explanation: The cache evicts key 2, then returns the rest correctly.
Constraints:
- capacity is always positive.
- The keys and values are within the range of the integer type.
coding Hard sliding window #2

2. [OA] Sliding Window — Implement a video buffering algorithm for Netflix streaming

Netflix streams videos to millions of users globally, optimizing for a smooth playback experience even on challenging network conditions. This problem simulates a video buffering engine to efficiently manage the amount of video data loaded into memory.
Given an array of integers representing video segment sizes, determine the maximum number of segments that can be buffered without exceeding a specified memory limit.
Method Signature:
- maxBufferedSegments(segmentSizes: List[int], memoryLimit: int) -> int — Returns the maximum number of segments that can be buffered.
Example 1:
Input: segmentSizes = [1, 2, 3, 4, 5], memoryLimit = 7
Output: 3
Explanation: Buffer segments of sizes 1, 2, and 3, totaling 6, which is within the memory limit.
Constraints:
- 1 <= segmentSizes.length <= 10^5
- 1 <= memoryLimit <= 10^9
- 1 <= segmentSizes[i] <= 10^6

Related Netflix Mobile Engineer interview prep

Start practicing Netflix questions

Sign up for free to access walkthroughs, AI-generated questions, and more.

Get Started Free