← Coupang Interview Insights

Coupang·Software Engineer·Onsite - System Design / Architecture·Senior

Senior
Jun 2026

Summary

System design round at Coupang for a software engineer role. The prompt was a video upload system, YouTube-style, and it went pretty deep into chunking, resumable uploads, and the full processing pipeline. Felt like a lot to cover in one session.

Questions Asked (1)

Q1

Design the video upload subsystem for a large-scale video platform. Users upload files ranging from hundreds of MB to tens of GB, often on unstable mobile connections. Walk through your APIs, data model, storage strategy, processing pipeline, and how you'd handle failures.

System DesignTechnical Trade-offsAPI & Integrations
Author's notes

This is a beast of a question.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements (file sizes, connection reliability, scale, latency, consistency) and then walk through the design in a structured way: APIs, data model, storage, processing pipeline, and failure handling. Emphasize trade-offs and justify choices based on the constraints.

Pro tip: Highlight the importance of resumable uploads and idempotency to handle unstable connections and avoid duplicate processing. Also, discuss how to leverage cloud services (e.g., S3 multipart upload) while addressing potential vendor lock-in and cost considerations.

1. Clarify Requirements and Constraints

Ask questions to understand scale (e.g., uploads per second, total storage), file size distribution, connection reliability, latency expectations, and consistency requirements. This ensures the design meets actual needs.

2. Design APIs and Data Model

Define RESTful APIs for initiating uploads, uploading chunks, completing uploads, and checking status. Design a data model for upload sessions, video metadata, and processing jobs, considering idempotency and resumability.

3. Choose Storage and Processing Pipeline

Select storage solutions (e.g., object storage for raw files, CDN for delivery) and design a processing pipeline (e.g., transcoding, thumbnails) using queues and workers. Discuss trade-offs between managed services and self-hosted.

4. Handle Failures and Ensure Reliability

Describe strategies for handling network failures (resumable uploads, retries with exponential backoff), data integrity (checksums), and idempotent processing. Include monitoring and alerting for failures.

5. Discuss Scalability and Trade-offs

Explain how the design scales horizontally, handles peak loads, and optimizes cost. Compare alternatives (e.g., chunked vs. multipart uploads) and justify decisions.

Key Points to Mention

  • Resumable uploads using chunked or multipart uploads to handle unstable connections and large files.
  • Idempotency keys for upload sessions and processing jobs to avoid duplicates on retries.
  • Use of object storage (e.g., S3) with lifecycle policies and CDN for efficient storage and delivery.
  • Asynchronous processing pipeline with message queues (e.g., Kafka, SQS) and worker pools for transcoding.
  • Failure handling: retries with exponential backoff, dead-letter queues, and monitoring/alerting.
  • Data model considerations: metadata storage (e.g., DynamoDB, Cassandra) and consistency trade-offs.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.