System Design Interview Lab

System Design Interview Lab is an AI-led mock interview for engineers who want to practice the part of system design that is hardest to rehearse alone: discovering requirements, estimating scale, making architecture tradeoffs, and responding clearly when constraints change.

What it does

The app guides a candidate through a complete system design interview around a URL-shortening service:

  • clarifies an ambiguous prompt and records requirements;
  • captures scale estimates and tradeoffs;
  • lets the candidate build a typed, vendor-neutral architecture;
  • runs a deterministic workload simulation against the design;
  • introduces a failure incident and a late viral-link requirement change;
  • asks adaptive follow-up questions;
  • finalizes an evidence-linked rubric report;
  • replays the transcript and architecture checkpoints, or forks a new attempt from a checkpoint.

The result is more than a transcript: every major claim in the report links back to interview event IDs, architecture versions, and simulation evidence.

How it works

A Next.js App Router client owns the interactive interview workspace and canvas. Zustand holds the working state, while a deterministic Web Worker simulator evaluates the candidate's graph without executing arbitrary code. InsForge provides email/password auth, Postgres persistence, row-level security, owner-only Realtime, and Edge Functions for the trusted interviewer and finalizer boundaries.

The browser never receives private challenge requirements, rubric data, privileged credentials, or model-provider keys. Durable Postgres events are authoritative; Realtime accelerates delivery but is not required for replay or correctness. The deployed demo is available at https://system-design-interview-lab.insforge.site and the public source is available at https://github.com/Xuefeng-Zhu/system-design-interview-lab.

Why it matters

Traditional system design practice often rewards polished diagrams without showing whether a candidate can reason under pressure. This project makes the reasoning observable, repeatable, and reviewable: candidates can see not just the final architecture, but how requirements, failures, revisions, and evidence shaped the decision.

Build notes

I used Chatgpt to brainstorm and Codex GPT5.6 ultra to bootstrap the project. Codex accelerated development by helping decompose the interview lifecycle into testable boundaries, implement the authenticated event and versioning flows, harden the Edge Function request contracts, add deterministic simulation and evaluation evidence, and drive the QA and regression-verification loop. The repository README contains setup instructions, architecture notes, security boundaries, and the project's testing/deployment workflow.

Built With

Share this project:

Updates