Что такое system design интервью и зачем оно

Разбираемся, что вообще происходит на system design секции и почему это не про «правильный ответ».

System design интервью — открытая инженерная задача, где вас просят спроектировать большую систему (ленту, чат, поиск) и оценивают ход мысли, а не единственно верное решение.

Чем это отличается от алгоритмов

На алгоритмической секции есть точный ответ и тесты: ваш код либо проходит, либо нет. На system design всё иначе. Вопрос звучит расплывчато — «Спроектируйте Twitter» — и единственно правильного решения не существует. Есть набор разумных решений с разными компромиссами, и ваша задача — выбрать подходящие под названные ограничения и объяснить, почему.

Это ближе к реальной работе senior-инженера: вам дают неопределённость, вы её сужаете уточняющими вопросами, предлагаете архитектуру, обсуждаете риски и узкие места.

Как обычно проходит секция

Типичный формат — 40–50 минут, виртуальная доска или whiteboard. Сценарий почти всегда такой:

ЭтапДоля времени
Сбор требований, уточнение скоупа~5–10 мин
Оценка масштаба (QPS, объём данных)~5 мин
API и модель данных~5–10 мин
Высокоуровневая схема~10 мин
Детализация и узкие места~10–15 мин

Как работает под капотом

Интервьюер держит в голове свой «эталонный» список тем, которые хотел бы услышать: балансировщик, кэш, реплика БД, очередь. Каждый раз, когда вы сами поднимаете нужную тему, в его чек-листе ставится галочка. Если вы молчите — он подкидывает наводящий вопрос («а что если трафик вырастет в 100 раз?»). Поэтому ваша цель — вести диалог инициативно, проговаривая решения вслух, а не ждать вопросов.

Частые ошибки

  • Сразу прыгать в код и базы данных, не уточнив, что вообще строим.
  • Молчать и думать про себя — интервьюер не видит ваших мыслей.
  • Перечислять модные технологии (Kafka, Cassandra) без объяснения, зачем они здесь.
  • Спорить с интервьюером вместо того, чтобы воспринимать его подсказки как сигнал.

Итог

  • System design — открытая задача без единственного ответа; оценивают мышление и компромиссы.
  • Формат — диалог на 40–50 минут с понятной структурой по этапам.
  • Ведите беседу инициативно и проговаривайте каждое решение вслух.
Проверьте себя
1. Чем system design интервью принципиально отличается от алгоритмического?
AНужно писать работающий код с тестами
BЕсть открытая задача без единственного верного ответа
CОценивается только скорость решения
DЗапрещено задавать вопросы интервьюеру
2. Что лучше всего делать во время решения у доски?
AМолча думать и показать готовую схему в конце
BПроговаривать решения и компромиссы вслух, ведя диалог
CСразу начать с выбора конкретной БД
DПеречислить как можно больше модных технологий