Companies
Netflix Data Engineer Interview Questions & Process (2026)
— docs/Netflix Data Engineer Interview Questions & Process (2026).pdf
Netflix의 데이터 엔지니어 면접에서 가장 독특한 지점은 'Partnerships and Accountability'라는, 다른 회사에는 없는 전용 라운드다. 저자는 이를 일반적인 행동면접이 아니라 매니저의 감독, 정해진 PTO/경비 정책이 없는 문화, 그리고 매 분기 작동하는 'Keeper Test' 안에서 생존할 수 있는지를 검증하는 스트레스 테스트라고 표현한다. Netflix DE 루프는 채용 담당자 통화부터 오퍼까지 보통 4~6주가 걸리며, 보상은 RSU/사이닝 보너스 없이 전액 현금으로 지급된다.
| # | 단계 | 형식 | 소요 시간 | 평가 항목 |
|---|---|---|---|---|
| 1 | Recruiter Screen | Phone call | 30 min | Role fit, comp expectations, culture fit signal |
| 2 | Hiring Manager Screen | Video call | 45-60 min | 기술 깊이 + 문화 정합성(가벼운 잡담이 아니라 실질적인 라운드로 취급해야 함) |
| 3 | Technical Phone Screen | Video call | 60 min | SQL + 도메인 지식 |
| 4 | Onsite Loop | 45-60분씩 5-6개 라운드 | 보통 하루~이틀(가상) | SQL, Coding, Data Modeling, System Design, Partnerships, (때로) Cross-Functional |
| 5 | Debrief & Decision | Internal | 3-7 business days | 전체 패널 싱크, 하이어링 매니저가 오퍼 여부 결정 |
"You have a play_events table with user_id, content_id, event_type (play, pause, seek, complete), and event_timestamp. Define a viewing session as a sequence of events for one user on one piece of content with no more than a 30-minute gap between consecutive events. Write a query that returns each session with its start time, end time, total active duration, and whether the user completed the content during the session." (세션 경계 계산과 세션별 집계를 동시에 요구하는 문제 — 셀프 조인으로 접근하면 대체로 시간이 부족해진다고 서술됨.)
LAG로 연속 이벤트 간 간격을 계산하고, 누적합(running sum)으로 세션 ID를 부여한 뒤 GROUP BY로 집계하는 방식이 깔끔한 답으로 제시됨. 코드를 치기 전에 구조를 먼저 말로 설명하는 것이 평가에서 중요하다고 서술됨.
"I am going to use LAG to find the gap between consecutive events for each user-content pair. Then I will mark a new session every time the gap exceeds 30 minutes. Then I will assign session IDs using a running sum. Then aggregate."
"I would just bring this into Pandas." — Netflix 인터뷰어가 SQL을 요구했다면 SQL을 원하는 것이며, Python으로 회피하려는 태도는 실패 신호로 읽힌다는 서술.
"You receive a list of subscription events: subscribe, upgrade, downgrade, cancel, reactivate. Each event has a user_id, event_type, plan_tier, and timestamp. Write a function that returns, for each user, their current plan tier and the total number of days they have been an active subscriber across all their subscription periods." (이벤트 전반에 걸친 상태 관리, 재활성화 처리 — 유저가 여러 구독 기간을 가질 수 있음 — 및 지저분한 이벤트 시퀀스에서도 깨끗한 집계를 만드는 능력을 테스트.
구독자 라이프사이클 상태 관리 문제로, 재활성화·중복·순서 문제를 명시적으로 처리해야 한다. 코딩에 들어가기 전에 "같은 날 cancel 다음에 subscribe가 오면 하나의 연속 기간인가 두 개인가?"와 같은 모호한 지점을 먼저 확인하는 것이 'Context not Control' 행동으로 평가된다고 서술됨.
"What if a cancel event is followed by a subscribe event the same day? Is that one continuous period or two?" 이런 질문을 던지는 것 자체가 문화적으로 긍정적인 신호로 읽힌다는 서술.
"Design the data model behind 'continue watching.' What gets stored, how is it updated, how do we serve it at Netflix scale?" (그 외 A/B 테스트 플랫폼 모델, 실시간+과거 코호트 분석을 모두 지원하는 시청자 인게이지먼트 모델도 샘플 프롬프트로 제시됨.)
"이 모델이 어떤 쿼리에 응답해야 하는가?"를 먼저 묻고, 그레인은 유스케이스를 따라가야 한다는 원칙을 세운 뒤 그레인을 한 문장으로 명시한다 (예: "이 팩트 테이블의 한 행은 하나의 시청 세션을 나타내며, 30분 이하 간격의 연속 인게이지먼트로 정의된다"). Netflix는 분석용으로 스타 스키마를 선호하며 그 이유를 물어볼 수 있고, Iceberg의 파티셔닝 전략·스키마 진화·히든 파티셔닝을 언급하면 실제로 가점이 된다고 서술됨.
"What queries does this model need to serve?"를 먼저 묻고, 그레인을 한 문장으로 명시한다.
"I would just denormalize everything." — 트레이드오프에 대한 근거 없이 비정규화를 기본값으로 삼는 것은 주니어 신호로 읽힌다는 서술.
"Design a real-time pipeline that powers the 'continue watching' row. Events come in from 200M+ devices. The data must be available within 60 seconds of a user pausing." (그 외 A/B 테스트 인프라 설계, 국가×타이틀 조합별 일별 콘텐츠 인게이지먼트 파이프라인 설계도 샘플 프롬프트로 제시됨.)
5단계 프레임워크: (1) 요구사항 수집(5-7분) — 기능/비기능 요구사항, 이벤트 볼륨, 지연 요구사항, 소비 주체, 이 데이터가 어떤 의사결정을 지원하는지. (2) 개략적 추정(3-5분) — 2억 구독자, 1인당 일평균 2시간, 세션당 다수의 재생 이벤트로 하루 수십억 이벤트 규모를 추정하고 설계의 근거로 삼는다. (3) 상위 아키텍처(10-15분) — 수집→스트리밍/배치→저장→서빙 흐름에 Netflix 고유 서비스(Iceberg, Maestro, Flink, Kafka, Spark)를 이름으로 배치한다. (4) 딥다이브(15-20분) — 장애 처리, 백필, 스키마 진화, 데이터 품질, 지연 도착 데이터. (5) 트레이드오프(5분) — 예: "상태 기반 처리와 정확히 한 번(exactly-once) 시맨틱 때문에 Spark Streaming 대신 Flink를 선택했다. 지연 요구사항이 시간 단위로 완화된다면 배치 Spark가 더 단순할 것이다."
"I would put a Kafka topic here, consumed by a Flink job writing Iceberg tables, with daily Maestro jobs running Spark compaction." — 이런 식으로 Netflix 고유 기술명을 정확히 짚어 말하는 것이 입사 첫날부터 일할 수 있는 사람처럼 들리게 만든다는 서술.
"I would use Snowflake for the warehouse." — Netflix는 Snowflake를 쓰지 않고 Iceberg/Trino/Spark 기반의 자체 데이터 레이크를 운영하므로, 이를 모르고 Snowflake를 언급하면 스택 리서치 부족 신호로 읽힌다는 서술.
"Tell me about a time you disagreed with a teammate's approach to a data problem. How did you raise it? What happened?" / "A senior stakeholder asks for a dashboard by Friday. You know the data quality isn't there yet and shipping it would mislead the business. How do you handle it?" / "Tell me about a time you had to give difficult feedback to someone who was underperforming on a shared pipeline." / "Describe a decision you made that turned out to be wrong. What did you do?"
Netflix 컬처 덱의 네 가지 문화적 패턴을 기준으로 채점된다고 서술됨: Freedom and Responsibility(스스로 판단을 내리고 결과를 책임졌는가, 매니저를 기다리지 않았는가), Context not Control(지시가 아니라 맥락을 구해서 더 나은 결정을 내렸는가), Highly Aligned Loosely Coupled(목표에는 정렬하되 상시 체크인 없이 실행했는가), Radical Candor(어려운 피드백을 직접적이고 친절하게, 설탕발림 없이 전달했는가). 스토리는 구체적이어야 하며, 실제로 사용한 말을 인용하는 것이 핵심이라고 반복 강조됨.
"I told her, 'this approach is going to break when we hit 10x scale, here is why, and here is what I think we should do instead.'" — 인터뷰어에게 이야기한 정확한 문구를 그대로 인용하는 구체성이 Netflix가 보상하는 요소라고 서술됨.
"I'm a team player and I always find consensus." — 합의를 추구하는 태도는 Netflix 문화와 반대되며, 그들은 의견 충돌을 만들고 에스컬레이션하고 결정을 내릴 수 있는 사람을 찾는다는 서술.
원문에 명시적인 수치 가중치는 없으나, 저자는 이 문화 패턴들이 Partnerships 라운드뿐 아니라 모든 라운드에서 관찰된다고 서술하며, 문화 덱을 읽지 않는 것이 Netflix에서 가장 큰 필터링 요인(the number one filter)이라고 표현한다.
Netflix는 자사 컬처 덱을 공개적으로 게시하며, 이를 정독하지 않고 면접에 들어가는 것은 지원자가 실제로 이 회사에서 일하고 싶어하지 않는다는 신호로 읽힌다고 저자는 강조한다. 다섯 가지 패턴은 다음과 같다: (1) Freedom and Responsibility — 규칙이 없는 대신 전적인 책임을 진다. 매니저의 지시 없이 스스로 움직인 경험담이 필요하다. (2) Context, not Control — 리더는 지시가 아니라 맥락을 제공한다. 맥락을 구해서 스스로 판단을 내리는 태도가 중요하다. (3) Highly Aligned, Loosely Coupled — 팀은 전략에 정렬한 뒤 독립적으로 실행한다. 목표를 받아 스스로 끝까지 끌고 갈 수 있어야 한다. (4) Pay Top of Market — Netflix의 보상 철학으로, 협상 방식에도 영향을 준다. (5) The Keeper Test — "이 사람이 떠나려 할 때 붙잡기 위해 싸울 것인가?"라는 기준이며 저자는 그 바가 높다고 서술한다. 지원자의 스토리는 팀이 붙잡고 싶어할 만한 사람처럼 들려야 한다.