System Design: Scalable Interview Question Bank Platform
Context
Design a multi-tenant SaaS platform for organizations to create and manage an interview question bank used during live technical interviews. The system must support authoring, collaborative review, tagging, difficulty calibration, fast search/browse, strict versioning, and a menu-style selection flow used by interviewers in real time.
Assume a target scale such as:
-
5,000 organizations, 2 million total questions, 50 million versions, 500 million events (views/uses), 200k monthly active users (authors/interviewers), 20k peak RPS reads, 1k peak RPS writes.
-
P95 API latency targets: reads ≤150 ms, writes ≤300 ms, search ≤300 ms, selection flow ≤150 ms.
Requirements
-
Core features
-
Authoring with rich text and attachments; collaborative editing and comments.
-
Tagging (topics, skills, languages), difficulty calibration, and versioning (immutable versions, draft → review → publish workflow).
-
Search and browse with filters/facets; semantic and keyword search; suggestions.
-
Menu-style selection flow for live interviews (guided, filterable, and diverse question menus).
-
Technical specifications to provide
-
High-level architecture and data/storage choices.
-
API endpoints covering CRUD, versioning/publish, tagging, search, selection, calibration, analytics.
-
Data models and indexing strategy (keyword + semantic; facets; incremental updates).
-
Recommendation/ranking approach for the menu flow (scoring and diversification).
-
Multi-region deployment and data replication strategy.
-
Caching layers and invalidation.
-
Consistency vs availability trade-offs by subsystem.
-
Rate limits and quotas.
-
Monitoring, alerting, and SLOs.
-
Cost considerations and optimizations.
-
Permissions/roles and abuse prevention (moderation, audit, anti-scraping, usage caps).
-
Offline editing and sync/conflict resolution.
State assumptions where needed and justify design choices.