Behind a video streaming service, backend work means answering quickly for a very large number of viewers at the same hour of the evening. Prepare to talk about services that remember where each viewer stopped, decide which titles a country may see, build a home page out of many parts, and keep working when one of those parts fails. What to show here: services that stay fast and fail gently when viewers press play. Each question below has what the interviewer is checking, an answer frame and a sample spoken answer to adapt.
How Netflix hires, in its own words, and its questions for every job →
“My service built a personal list for each user and called another service for ranking. One evening that service became slow and my endpoint started timing out, so users saw an empty screen. I argued that an unranked list is better than nothing. I added a short timeout and a fallback that returned a stored list of popular items. The harder part was testing it. I added a switch to force the failure in our test environment, so we could see the fallback work before we needed it. The result was your result.”
Weak answers blame the other team, or describe a fallback that was never tested until the real failure.
“Our service was fine during the day and slow every evening. The easy answer was more servers, but I wanted the cause. I compared slow requests with fast ones and found the slow ones all waited for a database connection. The pool was small, and one report query held connections for a long time during peak. I moved that query to a read copy of the database and set a limit on how long any query could hold a connection. Then I replayed evening traffic in a test setup to confirm. The outcome was your result.”
Weak answers jump straight to adding servers and never say what was measured.
“I would store one record per profile and title: the position and when it was last updated. Players should not write on every second. They can report every short while, and always on pause, stop or close. Writes are many and small, so I would use a key-value store keyed by profile and title, and accept writes through a queue so a spike does not hurt the player. If two devices report, the newest update wins, using the server's clock and not the device's. Losing the last few seconds is acceptable. Resuming from the start of the film is not.”
Weak answers write to a relational table on every second of playback, or trust the clock of the device.
“The source of truth is a table of rights: title, country, start and end. Reading that table on every request is too slow, so I would build a list per country ahead of time and keep it in a cache. A job rebuilds the list when rights change, and also on a schedule, because a title can expire without anyone editing anything. Other services filter their results through this list. The playback service must check again at the moment of play, since a cached row may be old. If the check cannot be completed, I would hide the title instead of showing it.”
Weak answers forget that rights expire by time alone, or check only on the browse screen and not at play.
“The screen should never wait for its slowest row. I would call all row services in parallel and give each a time limit. When the limit passes, I build the screen from what I have. A missing row further down is hardly noticed, but the first rows matter, so for those I would keep a stored copy from the last good answer. If one service keeps failing, a circuit breaker stops calls to it for a short time, which also gives it room to recover. I would count dropped rows per service, so the owning team sees the problem.”
Weak answers call the services one after another, or fail the whole screen because one row is missing.
“I cannot rely on a stop message, because a player may lose power or network. So each playing device sends a heartbeat every short while, and the server stores a session per account and device with an expiry slightly longer than the heartbeat gap. If heartbeats stop, the session disappears by itself. When a device asks to play, I count live sessions for the account. To avoid two devices both passing the check at the same instant, the count and the insert happen as one atomic step in the store. When the limit is reached, the message should name the devices that are playing.”
Weak answers count sessions that never expire, so one crashed player blocks the account.
“This spike is known in advance, so most of the work is before it. I would look at earlier releases to estimate how many viewers open the title page and press play in the first minutes. Automatic scaling reacts too slowly for a jump like that, so I would add capacity ahead of time and fill caches for that title's data. I would run a load test against the real path. I would also prepare switches to turn off costly extras if needed. At release I watch play start failures and response times, and I change nothing unless the numbers require it.”
Weak answers trust automatic scaling to catch up, or plan nothing they could switch off under load.
“I like backend work where failure is visible to a person right away. With streaming, a slow service is a family looking at a loading circle. That makes design choices very concrete: what can be a little old, what must be exact, and what should be dropped when things go wrong. In my current job I built your project, and the part I enjoyed most was making it degrade gently. I want to do that kind of work at a scale where every shortcut gets tested by real traffic, and learn from people who have done it for years.”
Weak answers speak about the shows or the brand and say nothing about services, load or failure.
No figures on this page: pay depends on the level, the city and the offer in front of you. When the offer comes, the free salary negotiation script helps with that part.
ClapAssist is an AI interview assistant for Mac and Windows. It listens to the interview on your computer and shows you what to say, in short lines you can read while you talk. Your live interview audio and screen are never stored. Your resume and notes are saved to your account so the app fills them in on any computer. It is hidden from screen share on every plan, including Free; only you can see it.