Понимание того, как оценивается System Design Interview и как интервьюер управляет его сложностью, критически важно для успешного прохождения. В этой главе разберём критерии оценки по каждому этапу интервью и механизм адаптации сложности.
Критерии оценки по этапам интервью
Интервьюер оценивает кандидата по нескольким ключевым аспектам на каждом этапе System Design Interview. Понимание этих критериев поможет правильно расставить акценты.
Формализация требований
Оценивается способность кандидата выявлять и структурировать требования к системе.
Хорошо
- Задаёт уточняющие вопросы
- Выделяет функциональные и нефункциональные требования
- Определяет scope и границы системы
Плохо
- Сразу переходит к решению
- Делает предположения без уточнения
- Не определяет приоритеты
Границы системы и публичный API
Оценивается понимание того, как система взаимодействует с внешним миром.
Хорошо
- Чётко определяет API endpoints
- Продумывает форматы запросов/ответов
- Учитывает версионирование API
Плохо
- Пропускает определение API
- Неконсистентные контракты
- Не думает о backward compatibility
Основные потоки данных
Оценивается понимание write path и read path в системе.
Хорошо
- Чётко разделяет write/read paths
- Использует sequence diagrams
- Продумывает async обработку
Плохо
- Смешивает потоки в одну кучу
- Не учитывает асинхронность
- Забывает про error handling
Концептуальная и реальная схема данных
Оценивается способность проектировать модель данных под требования.
Хорошо
- Начинает с концептуальной модели
- Обосновывает выбор типа БД
- Продумывает индексы
Плохо
- Сразу выбирает технологию без анализа
- Игнорирует access patterns
- Не думает о денормализации
Масштабирование системы
Оценивается понимание стратегий масштабирования и их trade-offs.
Хорошо
- Знает разницу vertical/horizontal
- Понимает sharding strategies
- Учитывает bottlenecks
Плохо
- "Просто добавим серверов"
- Не учитывает stateful компоненты
- Игнорирует data consistency
Читаемость и ясность диаграмм
Оценивается способность визуально коммуницировать архитектуру.
Хорошо
- Аккуратные, читаемые схемы
- Логичное расположение элементов
- Подписи и пояснения
Плохо
- Хаотичные линии и блоки
- Нет подписей компонентов
- Непонятные связи
Уровни оценки (грейды)
Интервьюер оценивает кандидата по шкале грейдов, которая определяет уровень самостоятельности и глубину понимания системного дизайна.
Junior
Кандидат способен работать только с happy path и требует значительной помощи интервьюера для продвижения по задаче.
Характеристики:
- Понимает базовую логику системы
- Нуждается в наводящих вопросах
- Не учитывает edge cases самостоятельно
- Ограниченное понимание масштабирования
Middle
Кандидат способен самостоятельно работать в рамках отдельных модулейсистемы без постоянной помощи.
Характеристики:
- Самостоятельно проектирует отдельные компоненты
- Учитывает основные edge cases
- Понимает базовые паттерны масштабирования
- Может обосновать технологический выбор
Senior
Кандидат способен нести полную ответственность за проектирование системы от начала до конца.
Характеристики:
- Самостоятельно ведёт весь процесс проектирования
- Предвидит проблемы и предлагает решения
- Глубоко понимает trade-offs
- Учитывает operational aspects (monitoring, debugging)
Senior+ / Staff
Кандидат демонстрирует образцовый уровень проектирования, выходящий за рамки стандартных ожиданий.
Характеристики:
- Предлагает инновационные решения
- Учитывает долгосрочную эволюцию системы
- Думает о cross-cutting concerns (security, compliance)
- Может объяснить решения на уровне бизнеса
Механизм вариации сложности
Важно понимать, что интервью начинается с максимальной свободы и сложности. Интервьюер постепенно адаптирует уровень в зависимости от того, как кандидат справляется.
Старт
Senior level
Максимальная свобода
При затруднениях
Middle level
Больше подсказок
Сильные затруднения
Junior level
Конкретные вопросы
Как повысить оценку
- Проактивно двигаться вперёд без ожидания вопросов
- Самостоятельно поднимать важные темы (edge cases, scaling)
- Объяснять trade-offs без дополнительных вопросов
- Предлагать альтернативные решения
Что снижает оценку
- Ожидание подсказок от интервьюера
- Неспособность обосновать решения
- Застревание на одном этапе
- Игнорирование подсказок интервьюера
Ключевые выводы
Интервью всегда начинается на Senior уровне — вам даётся максимальная свобода показать свои способности.
Подсказки — это калибровка — каждая подсказка от интервьюера корректирует оценку вашего уровня.
Проактивность критична — чем больше вы ведёте процесс самостоятельно, тем выше оценка.
Trade-offs важнее "правильных" ответов — умение объяснить компромиссы ценится выше знания конкретных решений.
