Design an online code judge.
MediumLet's refine the design of an online code judge. At its heart, this system takes code submissions, runs them against predefined test cases, and determines if the submission is correct. However, building a robust, scalable, and maintainable judge requires careful consideration of various factors, specifically focusing on the code design. We want to simulate a real-world coding judge, taking into account compilation, execution, and result aggregation. The system should be able to support multiple programming languages and handle potentially malicious or resource-intensive code. Error messages should be as descriptive as possible to help debug.
Requirements
Interview Simulation
Experience a realistic interview conversation. The interviewer will ask clarifying questions,and you'll reveal your understanding of the requirements.
Let's start by understanding the scope. What are the core functionalities this system needs to provide?
💡 Interview Tip
Identify the Actors (Who uses the system?) and their Use Cases (What are they trying to achieve?). Start with the 'Happy Path' scenarios.