← Whatnot Interview Insights

Whatnot·Software Engineer·Onsite - System Design / Architecture·Intermediate

IntermediatePrefer not to say
May 2026

Summary

Did a system design round for a Software Engineer role at Whatnot and it did not go well. The question started broad enough that I felt okay, but then it got into territory I just wasn't ready for and I kind of fell apart.

Questions Asked (3)

Q1

Design a platform similar to LeetCode, including core features and a contest/competition mode.

System DesignProduct Sense & Ideation
Author's notes

The high-level stuff was fine.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design the core platform (problem repository, code execution, submission evaluation) before tackling the contest mode with real-time leaderboards and anti-cheating. Focus on the unique challenges of secure code execution at scale and fair competition, and discuss trade-offs in your design.

Pro tip: Emphasize the importance of sandboxing and resource isolation for untrusted code execution, and propose a scalable architecture using container orchestration (e.g., Kubernetes) with autoscaling. Also, highlight the need for idempotent submissions and exactly-once processing to handle retries and ensure fairness.

1. Clarify Requirements and Scale

Ask about expected user base, problem volume, submission frequency, and contest scale. Define functional and non-functional requirements, including latency, availability, and security.

2. High-Level Architecture

Outline the main components: web/app servers, problem service, submission service, code execution service, database, cache, and message queue. Sketch a block diagram and data flow.

3. Deep Dive: Code Execution and Evaluation

Explain how to securely run untrusted code: sandboxing (containers, gVisor, Firecracker), resource limits, and isolation. Discuss test case execution, result aggregation, and scaling the execution fleet.

4. Contest Mode Design

Detail contest features: registration, problem set, timed submissions, real-time leaderboard, and scoring. Address challenges like concurrent submissions, leaderboard updates, and anti-cheating measures.

5. Scalability, Reliability, and Trade-offs

Discuss scaling strategies (horizontal scaling, caching, sharding), fault tolerance, and monitoring. Highlight trade-offs between consistency and availability, and between security and performance.

Key Points to Mention

  • Secure sandboxing for code execution (e.g., containers, microVMs) with resource limits (CPU, memory, time).
  • Scalable architecture using message queues (e.g., Kafka, RabbitMQ) and worker pools for asynchronous submission processing.
  • Real-time leaderboard implementation using WebSockets or server-sent events, with efficient ranking algorithms (e.g., Redis sorted sets).
  • Anti-cheating measures: plagiarism detection, submission rate limiting, and randomized test cases.
  • Data model for problems, submissions, and contests, including versioning and test case management.
  • Caching strategies for problem statements and leaderboards to reduce database load.

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

Q2

How would you handle executing code submitted by users on your platform?

System DesignTechnical Trade-offs
Author's notes

This is where I completely lost the plot.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the requirements: what kind of code, who submits it, and what the expected scale is. Then propose a secure, isolated execution environment using sandboxing and resource limits, and discuss trade-offs between isolation strength, performance, and operational complexity.

Pro tip: Emphasize defense in depth: combine multiple isolation layers (e.g., containers, seccomp, network restrictions) and assume any single layer can fail. Also mention the importance of monitoring and auditing for abuse.

1. Clarify requirements

Ask about the nature of the code (e.g., scripts, full programs), expected load, latency requirements, and security constraints. This shapes the entire design.

2. Choose isolation strategy

Select an appropriate sandboxing technology (e.g., containers, VMs, gVisor, WebAssembly) based on the required isolation level and performance overhead.

3. Enforce resource limits

Apply CPU, memory, disk, and network quotas to prevent resource exhaustion and denial-of-service. Use cgroups, ulimits, or similar mechanisms.

4. Secure the environment

Restrict filesystem access, disable unnecessary syscalls, and isolate networking. Use read-only mounts, seccomp profiles, and network policies.

5. Monitor and iterate

Implement logging, monitoring, and alerting for suspicious activity. Continuously update the sandbox as new threats emerge.

Key Points to Mention

  • Sandboxing technologies: containers (Docker), VMs, gVisor, WebAssembly, or language-specific sandboxes.
  • Resource limits: CPU, memory, disk I/O, network bandwidth, and execution time.
  • Security measures: seccomp, AppArmor/SELinux, read-only filesystems, network isolation, and least privilege.
  • Trade-offs: isolation strength vs. performance overhead, complexity vs. maintainability, and cost.
  • Operational concerns: scaling, orchestration (Kubernetes), and handling untrusted code at scale.
  • Monitoring and abuse prevention: logging, rate limiting, and anomaly detection.

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

Q3

What database would you choose for this system and what factors influenced that decision?

System DesignTechnical Trade-offsData Modeling
Author's notes

Coming from a frontend background, DB questions always make me sweat a little.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the system's requirements—data model, read/write patterns, scale, consistency needs, and latency—then evaluate database options against those criteria. Recommend a primary database with justification, and mention complementary databases if needed, explaining trade-offs.

Pro tip: Acknowledge that no single database is perfect; show maturity by discussing how you'd evolve the choice as the system scales, and mention operational considerations like team expertise and managed services.

1. Clarify Requirements

Ask questions to understand the system's data model, access patterns, scale, consistency, and latency requirements.

2. Identify Candidate Databases

List 2-3 database types (e.g., relational, document, wide-column, graph) that could fit the requirements.

3. Evaluate Trade-offs

Compare candidates on scalability, consistency, query flexibility, and operational complexity.

4. Make a Recommendation

Choose a primary database and justify it, noting any complementary databases for specific use cases.

5. Discuss Evolution

Explain how the choice might change as the system grows, and mention monitoring and migration strategies.

Key Points to Mention

  • CAP theorem and consistency models (strong vs. eventual)
  • Read/write patterns and query flexibility (e.g., joins vs. denormalization)
  • Scalability and partitioning strategies (sharding, replication)
  • Operational considerations (managed services, team expertise, cost)
  • Data model fit (e.g., relational for transactions, document for flexible schemas)
  • Real-world examples of similar systems and their database choices

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