← Coupang Interview Insights

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

Senior
May 2026

Summary

Coupang system design round, got asked to build an IAM system from scratch. Pretty broad scope and I wasn't fully prepared for how deep they wanted to go on the authorization side specifically.

Questions Asked (6)

Q1

Design an Identity and Access Management system that supports both human users and machine/service identities, with authentication, authorization, and audit capabilities.

System DesignTechnical Trade-offs
Author's notes

I started with the data model which felt safe, principals, resources, roles, policies.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then propose a unified identity model that treats humans and services as first-class principals with distinct credential types. Walk through authentication, authorization, and audit layers, highlighting trade-offs like centralized vs. federated auth and RBAC vs. ABAC. Conclude with how you'd handle key challenges such as token revocation, key rotation, and audit log integrity.

Pro tip: Emphasize that machine identities need different lifecycle management (e.g., short-lived credentials, automated rotation) than human users, and mention how you'd prevent privilege creep through periodic access reviews.

1. Clarify Requirements and Scale

Ask about expected number of users/services, latency requirements, compliance needs (e.g., SOC2, GDPR), and existing infrastructure. This scopes the design and shows you avoid over-engineering.

2. Design Identity Model and Authentication

Propose a unified principal model with types (human, service) and attributes. For authentication, discuss options like OIDC for humans, mTLS or JWT for services, and how to handle credential storage and rotation.

3. Design Authorization and Policy Enforcement

Choose an authorization model (RBAC, ABAC, or ReBAC) and explain how policies are evaluated and enforced at the API gateway or service mesh. Discuss trade-offs between centralized and decentralized enforcement.

4. Implement Audit and Monitoring

Describe how to capture immutable audit logs for all authn/authz decisions, including who, what, when, and why. Mention log integrity (e.g., append-only, cryptographic signing) and real-time alerting for anomalies.

5. Address Scalability, Reliability, and Trade-offs

Discuss how to scale the system (caching, sharding, federation), handle failures (graceful degradation, fallback auth), and key trade-offs like consistency vs. availability in policy decisions.

Key Points to Mention

  • Unified identity model for humans and services with distinct credential types (e.g., passwords, OAuth tokens, mTLS certificates).
  • Authentication protocols: OIDC/OAuth 2.0 for humans, mTLS or SPIFFE for services, and token introspection/revocation.
  • Authorization models: RBAC for simplicity, ABAC for fine-grained control, and policy engines like OPA.
  • Audit logging: structured, immutable logs with correlation IDs and integration with SIEM for anomaly detection.
  • Scalability considerations: caching authorization decisions, sharding identity stores, and using a distributed policy decision point.
  • Security best practices: least privilege, short-lived credentials, automated key rotation, and periodic access reviews.

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

Q2

How would you handle temporary credentials for service workloads so that long-lived secrets aren't sitting around in config files?

System DesignAPI & Integrations
Author's notes

This part I actually felt decent about.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by acknowledging the risk of long-lived secrets in config files and advocate for dynamic, short-lived credentials issued by a central identity service. Then describe a concrete pattern such as IAM roles for service accounts or a secrets manager with automatic rotation, and explain how workloads retrieve and refresh credentials without hardcoding them.

Pro tip: Emphasize that the best solution eliminates secrets entirely by using identity-based authentication (e.g., mTLS, SPIFFE, or cloud IAM roles) rather than just rotating static keys. Also mention the importance of auditing and monitoring credential usage to detect anomalies.

1. Identify the problem

Explain why long-lived secrets in config files are risky: they can be leaked, accidentally committed, or stolen, and they are hard to rotate.

2. Choose a dynamic credential mechanism

Propose using a central identity provider (e.g., AWS IAM, HashiCorp Vault, or SPIFFE) that issues short-lived credentials based on the workload's identity, such as a Kubernetes service account or instance profile.

3. Integrate with the workload

Describe how the service retrieves credentials at runtime (e.g., via SDK, sidecar, or init container) and automatically refreshes them before expiry, avoiding any manual intervention.

4. Secure the credential lifecycle

Outline best practices: least privilege, short TTLs, automatic rotation, and revocation. Ensure credentials are never logged or stored on disk.

5. Monitor and audit

Mention logging and monitoring of credential issuance and usage to detect anomalies, and the ability to quickly revoke compromised credentials.

Key Points to Mention

  • Use of cloud IAM roles (e.g., AWS IAM Roles for Service Accounts, GCP Workload Identity) to avoid static keys.
  • Secrets management tools like HashiCorp Vault, AWS Secrets Manager, or Azure Key Vault with dynamic secrets.
  • Short-lived tokens (e.g., OAuth2, JWT) with automatic rotation and renewal.
  • Identity-based authentication (mTLS, SPIFFE) to eliminate secrets altogether.
  • Least privilege principle and scoped permissions for each workload.
  • Audit logging and anomaly detection for credential usage.

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

Q3

Walk through your approach to policy evaluation, specifically how you'd resolve conflicts when a user has multiple roles with overlapping or contradictory permissions.

System DesignTechnical Trade-offsData Modeling
Author's notes

Blanked for a second here.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the requirements and constraints of the policy evaluation system, then walk through a layered evaluation model that resolves conflicts through precedence rules and explicit deny semantics. Emphasize trade-offs between simplicity, performance, and flexibility, and how you would handle edge cases like role hierarchies and dynamic permissions.

Pro tip: Mention that you would make conflict resolution deterministic and auditable—logging which policy won and why—because in large-scale systems like Coupang's, debugging permission issues without a clear audit trail is a nightmare.

1. Clarify Requirements and Constraints

Ask about scale, latency requirements, consistency needs, and whether permissions are static or dynamic. This shows you don't jump to solutions without understanding the problem.

2. Define a Policy Model

Describe how policies are represented (e.g., role-based, attribute-based) and how they map to users with multiple roles. Mention the need for a clear data model that supports efficient lookup.

3. Establish Conflict Resolution Rules

Propose a precedence order: explicit deny > explicit allow > inherited allow, or role priority. Explain how you'd handle overlapping permissions and ensure deterministic outcomes.

4. Design the Evaluation Algorithm

Outline an efficient algorithm that aggregates permissions from all roles, applies conflict resolution, and returns a decision. Discuss caching, indexing, and performance optimizations.

5. Address Edge Cases and Trade-offs

Cover scenarios like role hierarchies, temporary roles, and policy changes. Discuss trade-offs between simplicity (e.g., deny-overrides) and flexibility (e.g., priority-based).

Key Points to Mention

  • Explicit deny takes precedence over allow (deny-overrides) to ensure security.
  • Role hierarchy and inheritance: how permissions propagate and how to resolve conflicts when a user has roles at different levels.
  • Performance considerations: caching evaluated permissions, using bitmasks or sets for fast intersection/union, and avoiding N+1 queries.
  • Auditability: logging the evaluation process and the winning policy for debugging and compliance.
  • Scalability: handling millions of users and roles, possibly using a distributed policy engine or precomputed permission sets.
  • Trade-offs: simplicity vs. flexibility, and how to evolve the system as requirements change.

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

Q4

How would you design the auditing layer so that every access decision is logged without creating a bottleneck in the critical path?

System DesignTechnical Trade-offs
Author's notes

Async write to an append-only log, fan out to whatever downstream system does compliance reporting.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the requirements: what needs to be logged, the acceptable latency overhead, and the durability guarantees. Then propose an asynchronous, non-blocking logging pipeline that decouples audit logging from the critical path, using in-memory buffers and a dedicated logging service. Finally, discuss trade-offs around consistency, reliability, and performance, and how to handle failures without impacting access decisions.

Pro tip: Emphasize that audit logs must be tamper-evident and immutable, and suggest using a write-ahead log or append-only store with cryptographic hashing to ensure integrity. Also, mention that sampling or aggregation can reduce volume while preserving security insights.

1. Clarify requirements and constraints

Ask about the volume of access decisions, latency SLAs, regulatory requirements, and what data must be logged. This ensures the design meets business and compliance needs.

2. Decouple logging from the critical path

Propose an asynchronous approach where access decisions are made first, and audit events are emitted to a high-throughput, non-blocking channel (e.g., in-memory queue or Kafka).

3. Design the logging pipeline for scalability and reliability

Describe a pipeline with buffering, batching, and backpressure handling. Use a distributed log like Kafka for durability and decoupling, and consumers that write to a tamper-evident store.

4. Address failure modes and trade-offs

Discuss what happens if the logging pipeline fails: do you block access, drop logs, or buffer locally? Explain the trade-offs between consistency, availability, and latency.

5. Ensure audit integrity and compliance

Mention immutability, cryptographic hashing, and access controls for the audit store. Also, consider retention policies and the ability to query logs for forensics.

Key Points to Mention

  • Asynchronous logging with in-memory queues or Kafka to avoid blocking the critical path
  • Batching and compression to reduce I/O overhead and network calls
  • Backpressure and circuit breakers to handle logging system failures gracefully
  • Tamper-evident storage using append-only logs and cryptographic hashing
  • Trade-offs between consistency (e.g., at-least-once vs. at-most-once delivery) and performance
  • Monitoring and alerting on logging pipeline health to detect bottlenecks or failures

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

Q5

What are the main scaling challenges for an IAM system and how would you approach them?

System DesignTechnical Trade-offs
Author's notes

Talked about caching policy decisions at the edge, read replicas for the policy store, and sharding by tenant.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the scope and scale of the IAM system (e.g., number of users, requests per second, geographic distribution) and the specific challenges that arise at scale. Then, structure your answer around key scaling dimensions—data volume, request throughput, latency, consistency, and security—and propose concrete architectural approaches and trade-offs for each.

Pro tip: Emphasize that scaling IAM is not just about handling more requests but also about maintaining low-latency authorization decisions and strong consistency for critical operations like permission changes. Mention the importance of caching and eventual consistency for read-heavy paths while ensuring strong consistency for writes.

1. Clarify Requirements and Scale

Ask questions to understand the expected scale (e.g., millions of users, thousands of requests per second), latency requirements, consistency needs, and geographic distribution. This ensures your answer is tailored to the specific context.

2. Identify Main Scaling Challenges

List the primary challenges such as handling high read/write throughput, maintaining low latency for authorization checks, ensuring data consistency across distributed systems, managing large volumes of policies and permissions, and dealing with security and compliance at scale.

3. Propose Architectural Approaches

Discuss strategies like sharding/partitioning user data, using caching (e.g., Redis) for frequent authorization decisions, employing a distributed policy decision point (PDP) with a central policy administration point (PAP), and leveraging eventual consistency where acceptable.

4. Address Trade-offs and Mitigations

Explain trade-offs between consistency and availability (CAP theorem), latency vs. accuracy, and cost vs. performance. Describe how to mitigate issues, such as using read replicas, asynchronous replication, and fallback mechanisms.

5. Summarize and Conclude

Recap the key challenges and your proposed solutions, emphasizing how they address the specific scale and requirements. Highlight any monitoring, testing, and iterative improvement plans.

Key Points to Mention

  • Horizontal scaling of authentication and authorization services using stateless components and load balancing.
  • Caching strategies for authorization decisions (e.g., token introspection results, policy evaluations) to reduce latency and load on backend stores.
  • Data partitioning/sharding of user identities and policies to distribute load and enable parallel processing.
  • Consistency models: strong consistency for permission updates vs. eventual consistency for read-heavy operations, and how to handle propagation delays.
  • Security considerations at scale: DDoS protection, rate limiting, encryption, and compliance with regulations (e.g., GDPR, PCI).
  • Use of standards like OAuth 2.0, OpenID Connect, and SAML, and how they impact scalability (e.g., token validation overhead).

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

Q6

How would you support multi-tenancy in this system, particularly around isolation between tenants sharing the same infrastructure?

System DesignData Modeling
Author's notes

Namespace everything by tenant ID, enforce it at the query layer, and don't let any cross-tenant join happen without an explicit federation model.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the system's scale, tenant types, and compliance needs, then propose a layered isolation strategy (data, compute, network) with trade-offs between cost and isolation. Emphasize that the right approach depends on tenant size and regulatory requirements, and describe how you'd evolve from shared to isolated resources as tenants grow.

Pro tip: Show maturity by acknowledging that perfect isolation is expensive and often unnecessary; propose a tiered model where small tenants share resources with logical isolation, while large or regulated tenants get dedicated infrastructure, and explain how you'd migrate between tiers.

1. Clarify requirements and constraints

Ask about tenant scale, data sensitivity, compliance (e.g., PCI, GDPR), performance SLAs, and cost tolerance to determine the appropriate isolation level.

2. Choose an isolation model

Propose a model: shared database with tenant ID, schema-per-tenant, database-per-tenant, or dedicated infrastructure, and justify based on requirements.

3. Design data isolation and access control

Detail how to enforce tenant boundaries in queries, storage, and APIs, including row-level security, tenant-aware connection pools, and encryption per tenant.

4. Address compute and network isolation

Explain how to isolate compute (e.g., separate containers, namespaces, or VMs) and network (VPCs, security groups) to prevent cross-tenant interference.

5. Plan for scalability and operations

Discuss monitoring per tenant, noisy neighbor mitigation, cost allocation, and how to migrate tenants between isolation tiers as they grow.

Key Points to Mention

  • Trade-offs between isolation levels: cost, complexity, performance, and security
  • Data isolation techniques: shared schema with tenant ID, schema-per-tenant, database-per-tenant
  • Compute isolation: containers, VMs, serverless, and resource quotas
  • Network isolation: VPCs, subnets, security groups, and service meshes
  • Tenant-aware access control and authentication (e.g., JWT with tenant claims)
  • Noisy neighbor problem and strategies like rate limiting, resource quotas, and dedicated instances

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