Katkat

Design a sandboxed cloud IDE

OpenAISoftware Engineer · Onsite

Last updated

This question evaluates a candidate's competency in designing multi-tenant distributed systems with strong isolation and sandboxing, runtime lifecycle management, real-time output/log streaming, data persistence, autoscaling, and observability.

System design: Sandboxed cloud IDE (Colab-like)

Design a multi-tenant, browser-based cloud IDE/notebook that lets users run code in an isolated sandbox (similar to hosted notebooks).

Core user experience

  • User opens a workspace (project/notebook), edits code in the browser, and runs cells/commands.
  • Output appears in the UI (stdout/stderr, rich output).
  • Users can view streaming logs while code runs.

Requirements

Functional

  • Provision an isolated compute environment per workspace/session.
  • Execute arbitrary user code safely (sandboxing).
  • Stream execution output/logs to the browser in near real time.
  • Support basic file operations (upload/download, persisted workspace state).
  • Basic collaboration is optional (call out if you include it).

Non-functional

  • Strong isolation between tenants (security is primary).
  • Reasonable startup latency for a new session.
  • Support autoscaling and fair resource sharing.
  • Observability: metrics, tracing, audit logs.

Focus areas to cover

  • How you choose and manage the compute substrate (VMs vs containers vs microVMs).
  • Isolation model (filesystem, network, process, credentials).
  • Log/output streaming architecture.
  • Lifecycle management: create, run, idle, suspend/resume, terminate.
  • Data persistence strategy (workspace files, checkpoints).

State assumptions and provide an API sketch and high-level architecture diagram description.