Design a minimal ChatGPT with presets
Company: OpenAI
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Technical Screen
Design a minimal ChatGPT-like conversational service that supports saving and applying reusable presets (system prompts) per user/team. Specify: core components and their responsibilities; data model for presets (fields, ownership/scope, versioning, soft delete), and how presets are referenced in a chat session; public APIs (CRUD for presets, list/search, apply-to-session, clone/share), including request/response examples and auth/RBAC; session state handling and context-window management (how messages and presets combine, truncation strategy); storage choices for messages and presets, indexing, and caching; scalability plan (stateless workers, queueing/backpressure, autoscaling), latency/SLO targets, and cost controls; multi-tenant isolation, rate limiting, and quota; safety/privacy controls (PII redaction, preset approval flow), audit logging, and observability; failure modes and fallbacks (preset missing, model timeout, partial outage); extensibility (A/B testing different presets, preset libraries, shareable links). Provide capacity estimates for 100k DAU and a sequence of calls for
(a) create preset and
(b) send message using a preset.
Quick Answer: This question evaluates a candidate's competency in designing multi-tenant conversational AI services with reusable, versioned presets, covering API design, data modeling, session state and context-window management, scalability, multi-tenant isolation, privacy, and observability.