Design an online coding platform

Quick Overview

This question evaluates a candidate's ability to design scalable, secure distributed systems with emphasis on architecture, data modeling, service design, sandboxed code execution, and performance under high load for an online coding platform.

Design an online coding platform

Company: Meta

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Onsite

Design an online coding practice and interview platform (similar to well-known coding challenge sites). The platform should allow: - Users to sign up, log in, and manage profiles. - Users to browse, search, and filter coding problems. - Users to write, run, and submit code solutions in multiple programming languages through a web-based editor. - Automatic judging of submissions against hidden test cases, with results (e.g., Accepted, Wrong Answer, Time Limit Exceeded). - Tracking of user statistics and progress (e.g., solved problems, difficulty distribution). **Requirements and considerations:** 1. **Functional requirements** - Problem management: create, update, and categorize coding problems (by difficulty, topic, etc.). - Code execution: run user-submitted code safely and efficiently in isolated environments. - Submissions: store submission history and results per user and per problem. - Ranking/leaderboards: optionally show user rankings. 2. **Non-functional requirements** - High availability and scalability to support millions of users and high QPS during peak times. - Low latency for listing problems and fetching problem details. - Reasonable turnaround time for judging submissions. - Strong isolation and security for untrusted user code. 3. **Constraints (assume)** - Target: 5M registered users, up to 200k daily active users. - Peak: 10k code runs per minute. Describe how you would design this system end-to-end. Talk about: - High-level architecture and major components. - Data modeling and storage choices. - Code execution and sandboxing, including how to scale the judge/execution layer. - Handling of traffic patterns, caching, and performance optimizations. - Key trade-offs and how you would evolve the design as traffic grows.

Overview: This question evaluates a candidate's ability to design scalable, secure distributed systems with emphasis on architecture, data modeling, service design, sandboxed code execution, and performance under high load for an online coding platform.

|Home/System Design/Meta
Meta logo
Meta
Dec 8, 2025
mediumSoftware EngineerOnsiteSystem Design
5
0

Design an online coding practice and interview platform (similar to well-known coding challenge sites).

The platform should allow:

  • Users to sign up, log in, and manage profiles.
  • Users to browse, search, and filter coding problems.
  • Users to write, run, and submit code solutions in multiple programming languages through a web-based editor.
  • Automatic judging of submissions against hidden test cases, with results (e.g., Accepted, Wrong Answer, Time Limit Exceeded).
  • Tracking of user statistics and progress (e.g., solved problems, difficulty distribution).

Requirements and considerations:

  1. Functional requirements
    • Problem management: create, update, and categorize coding problems (by difficulty, topic, etc.).
    • Code execution: run user-submitted code safely and efficiently in isolated environments.
    • Submissions: store submission history and results per user and per problem.
    • Ranking/leaderboards: optionally show user rankings.
  2. Non-functional requirements
    • High availability and scalability to support millions of users and high QPS during peak times.
    • Low latency for listing problems and fetching problem details.
    • Reasonable turnaround time for judging submissions.
    • Strong isolation and security for untrusted user code.
  3. Constraints (assume)
    • Target: 5M registered users, up to 200k daily active users.
    • Peak: 10k code runs per minute.

Describe how you would design this system end-to-end. Talk about:

  • High-level architecture and major components.
  • Data modeling and storage choices.
  • Code execution and sandboxing, including how to scale the judge/execution layer.
  • Handling of traffic patterns, caching, and performance optimizations.
  • Key trade-offs and how you would evolve the design as traffic grows.

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...