Design a Multi-Tenant Cloud IDE: Isolation, Workspaces, Run/Build, Failure Modes
Company: OpenAI
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Onsite
Design a cloud IDE: a browser-based development environment in which each user gets a workspace containing their project files, a terminal, and the ability to run and build their code, with an editor that feels responsive.
Focus on four areas: **multi-tenancy** (many untrusted users sharing infrastructure), **workspace management** (creating, starting, stopping and resuming workspaces), **running and building code**, and **failure modes**.
```hint Untrusted code by design
Every user runs arbitrary code, including code that is malicious or simply buggy; decide what boundary contains a workspace, and what it must be unable to reach.
```
```hint Most workspaces are idle
Think about what state a workspace must keep while nobody is using it, and how fast it must come back when its owner returns.
```
### Clarifying Questions
- How many users and concurrently active workspaces, and what resources does a typical workspace need?
- Which languages and toolchains must be supported? Do users bring their own container images?
- Must running applications be reachable over the network, for example to preview a web server?
- How quickly must a stopped workspace resume, and must files survive indefinitely?
- Is real-time collaboration (several users in one workspace) in scope?
### What a Strong Answer Covers
- An isolation model for untrusted code, covering compute, network, storage and noisy neighbors
- The workspace lifecycle, persistence of files and environment, and fast start and resume
- The architecture of the run and build path: resource limits, build caching, and how output and preview ports reach the browser
- Connectivity for the editor, terminal and language services, and routing of traffic to the right workspace
- An analysis of concrete failure modes, with detection and recovery for each
- Capacity estimates, cost controls for idle workspaces, and abuse prevention
### Follow-up Questions
- A host running 50 workspaces dies. What does each user experience, and what is lost?
- How would you stop users from mining cryptocurrency or launching attacks from their workspaces?
- How would you make a workspace for a large repository start in seconds?
- How would you add real-time collaborative editing to a workspace?
Overview: Design a browser-based cloud IDE where many untrusted users each get a workspace with files, a terminal and the ability to run and build code. Cover multi-tenant isolation, workspace start, stop and resume, the run and build path, and concrete failure modes. It tests sandboxing, lifecycle design and reliability.