Companies
Amazon Data Engineer Interview Questions & Process (2026)
— docs/Amazon Data Engineer Interview Questions & Process (2026).pdf
Amazon의 Data Engineer 채용 프로세스는 리크루터 콜부터 오퍼까지 보통 3~6주로, 필자의 관찰상 Google(6~12주)이나 Meta(4~10주)보다는 빠르지만 DoorDash나 Stripe보다는 느린 편이다. 가장 큰 특징은 Leadership Principles(LP)가 기술 라운드를 포함한 모든 라운드에서 함께 평가된다는 점으로, 필자는 대략 절반의 평가가 기술 외적인(LP) 요소에서 결정된다고 본다. SQL과 시스템 설계가 깔끔해도 자신의 작업에 대해 깊이 있게(Dive Deep) 이야기하지 못하면 탈락하는 경우가 흔하다고 저자는 지적한다.
| # | 단계 | 형식 | 소요 시간 | 평가 항목 |
|---|---|---|---|---|
| 1 | Recruiter Screen | Phone call | 30 min | Role fit, salary, visa, basic LP screen |
| 2 | Online Assessment | HackerRank | 60~90 min | 코딩 문제 2개, 가끔 SQL 포함 |
| 3 | Phone Screen | Video call | 60 min | 기술 문제 1개 + LP 심층 질문 |
| 4 | Onsite Loop | 4~5 rounds, 45~60 min each | 1 day (분산 가능) | SQL, Coding, System Design, Behavioral, Hiring Manager |
| 5 | Debrief & Decision | Internal — 전체 인터뷰어 + Bar Raiser 싱크 | 영업일 3~5일 | 종합 hire/no-hire 결정 |
고객 주문 테이블이 있다. 고객별로 가장 최근에서 두 번째로 최근인 주문을 찾아라. 주문이 1건뿐인 고객은 제외하라. 그 다음 남은 각 고객에 대해 가장 최근 주문과 두 번째 최근 주문 사이의 간격(일 단위)을 계산하라.
고객별로 파티션한 ROW_NUMBER로 순위를 매긴 CTE를 만들어 순위 1과 2만 필터링한 뒤, 셀프 조인하거나 피벗하는 방식으로 접근한다. SQL 문법만 암기하고 쿼리 구조 자체를 고민해보지 않은 지원자를 걸러내는 유형의 문제다.
"여기서는 순위로 필터링해야 하니 ROW_NUMBER를 쓰겠습니다. RANK는 동점 처리 때문에 이 중복 제거 목적에는 맞지 않습니다."처럼 사고 과정을 코딩 내내 계속 말로 설명한다. 완벽한 SQL을 조용히 작성하기만 하면 사고 과정을 평가할 수 없어 'no hire'로 이어질 수 있다는 것이 필자의 강조점이다.
"보통 이런 건 ChatGPT를 씁니다" 또는 "저는 SQL을 잘 안 쓰고 저희 팀은 ORM을 씁니다" — DE 역할에 맞지 않는다는 신호로 읽힌다.
order_id, customer_id, status(placed/paid/shipped/cancelled), timestamp를 가진 주문 이벤트 딕셔너리 스트림을 받는다. 일부 이벤트는 순서가 뒤바뀌어 있고 일부는 중복이다. 각 주문의 최종 상태를 반환하는 함수를 작성하라.
상태 관리, 멱등성, 순서가 뒤바뀐 이벤트 처리를 시험하는 실전 데이터 엔지니어링 문제로, 알고리즘 퍼즐이 아니다.
코드를 쓰기 전에 엣지 케이스부터 질문한다 — "두 이벤트의 타임스탬프가 같으면 어떻게 하나요? shipped 이후에 cancelled 이벤트가 오면 무시해야 하나요, 아니면 환불로 처리해야 하나요?" 이 라운드에서 특히 강조되는 Leadership Principle은 Insist on the Highest Standards다.
"Amazon.com의 실시간 광고 클릭 분석용 데이터 파이프라인을 설계하라" / "1000만 셀러의 성과 지표를 매일 집계하는 시스템을 설계하라" / "제품 추천 엔진용 데이터 인프라를 설계하라"
5~7분간 요구사항(데이터량, 지연 요구사항, 소비 주체)을 명확화하고, 3~5분 개략적 용량 추정으로 설계를 실제 숫자에 근거시킨다. 10~15분간 Ingestion→Processing→Storage→Serving 흐름의 상위 아키텍처를 스케치하며 AWS 서비스명을 명시하고, 15~20분간 인터뷰어가 지목한 영역(장애 처리, 백필, 스키마 진화, 데이터 품질)을 심화한 뒤, 마지막 5분간 대안과의 트레이드오프를 설명한다. 알아둘 핵심 AWS 서비스: S3(스토리지 — 라이프사이클 정책, 인텔리전트 티어링, 파티셔닝), Redshift(웨어하우징 — distkey/sortkey/vacuum/analyze), Glue(ETL과 데이터 카탈로그), EMR(대규모 Spark 워크로드), Kinesis(스트리밍 — Data Streams와 Firehose의 차이를 알아야 함), DynamoDB(저지연 키-값 조회), Lambda(이벤트 기반 처리), Step Functions(오케스트레이션).
"데이터 볼륨은 얼마나 되나요? 지연 요구사항은? 누가 이 데이터를 어떻게 소비하나요?"로 5~7분간 요구사항부터 확인한다.
"Kafka를 쓰겠습니다" — 틀린 답은 아니지만, Amazon 내부 기본값은 Kinesis이므로 이렇게 말한다면 곧바로 트레이드오프를 설명하고 Kinesis가 Amazon 네이티브 옵션임을 인정하는 것이 좋다.
"복잡한 데이터 파이프라인 이슈를 디버깅했던 경험"(Dive Deep) / "본인 책임이 아니었는데도 데이터 품질 문제의 오너십을 가졌던 경험"(Ownership) / "촉박한 마감 속에서 데이터 프로젝트를 전달했던 경험"(Deliver Results) / "충분히 좋지 않은 데이터 솔루션에 대해 반대 의견을 냈던 경험"(Insist on the Highest Standards) / "이해관계자에게 데이터 품질에 대한 나쁜 소식을 전해야 했던 경험"(Earn Trust) / "불완전한 정보로 데이터 아키텍처 결정을 내려야 했던 경험"(Bias for Action) / "복잡한 데이터 파이프라인을 단순화했던 경험"(Invent and Simplify)
Bar Raiser는 하나의 LP(예: Dive Deep)를 골라 STAR 스토리를 요청한 뒤, 5~7개의 후속 질문으로 기술적 세부사항, 의사결정 과정, 결과를 12~15분간 파고들고 다음 LP로 넘어간다. "어떻게 개선했나요?"에 "파이프라인 실행 시간을 개선했습니다"처럼 답하면 "얼마나 개선했나요? 병목은 무엇이었나요? 처음에 시도했다가 실패한 방법은? 다른 누가 관여했나요? 반대 의견은 없었나요?" 같은 후속 질문이 이어지며, 구체적으로 답하지 못하면 스토리가 무너진다.