Meta System Design Interview: Coding Contest Platform
Based on questions reported for Meta interviews
The interviewer opens
Hi, and thanks for joining. Welcome to your interview for the software engineer role at Meta. We'll design a system together, and you can sketch on the whiteboard on the right of your screen as you talk. If you need to step out or take a break, the Pause button at the top right will pause the interview.
The problem is a coding contest platform, which is the kind of bursty, real-time system Meta cares about. It's up in the Problem tab now. Please read through the requirements and ask me anything you'd like clarified before you start drawing.
The problem
Design a coding contest platform like LeetCode's weekly contest: thousands of people join a timed contest, submit code that is run against hidden tests, and watch a live leaderboard, with several contests running at the same time.
Must do
- Users register for a contest and see its problems only once it starts
- Users submit code in a chosen language and get a verdict from hidden tests
- A live leaderboard ranks participants by score and penalty time
- Several contests can run at the same time
Must hold
- Submitted code is untrusted and must never harm the platform or other users
- Stays responsive through the rush at contest start and in the final minutes