Free preview

Requirements

Why this matters: the requirements list here is unusual because what it omits is more interesting than what it contains. Reading it critically is the exercise.

The backend design must address the following functional and non-functional requirements.

Functional requirements

RequirementWhat the source says
Dialogue managementInterpret user input, maintain context, and generate relevant, human-like responses
Natural language understanding (NLU)Identify intent and extract key entities from user input
PersonalizationAdapt to user preferences and history to provide tailored interactions
FeedbackImprove accuracy and performance over time using user feedback

Non-functional requirements

RequirementWhat the source says
ScalabilityHandle increasing user traffic and workloads efficiently
AvailabilityEnsure consistent uptime for users
ReliabilityGenerate stable and predictable responses under varying conditions
Low latencyMinimize response times through efficient inference and caching
Privacy and securityProtect user data and ensure compliance with privacy standards

The relationships between them look like this:

Key takeaway

Four functional requirements — dialogue management, NLU, personalization, feedback — of which only feedback is off the critical path, which is why it runs asynchronously. Five non-functional ones, of which reliability's "predictable responses" cannot mean deterministic because generation samples. And two absent requirements matter more than any present one: cost, which uniquely drives model and batching decisions here, and factual accuracy, which has no architectural answer. NLU survives as a component but its justification has changed — embedding, routing, and pre-screening rather than intent classification.

Interview signal by level

LevelWhat a strong answer sounds like
L4Recites the list: "dialogue management, NLU, personalization, feedback — and scalability, availability, reliability, low latency, privacy."
L5Separates timescales: "three functional requirements are request-time and one — feedback — is an offline improvement loop, which is why it's asynchronous and behind pub-sub rather than inline."
Staff+Adds what's missing: "I'd add cost as a non-functional requirement — GPU inference is expensive enough that cost per request drives model size, quantization, and batching policy in a way no other requirement does. And I'd flag that factual accuracy isn't listed anywhere, though moderation is in the architecture — so safety is designed for but not specified. I'd also be careful with 'predictable responses': generation samples, so predictable has to mean predictable quality and latency, not identical text. The distinctive lever here is falling back to a smaller model under load rather than shedding it."

Next: the resource estimation, and the arithmetic mistake that reveals what the system actually costs.

Enjoying the preview?

Create a free account to unlock the rest of this course, the in-browser judge, and live AI mock interviews.

Sign up free to continue