
Как пройти System Design Interview
Структура секции, формализация задачи, границы системы и архитектурные решения

Структура секции, формализация задачи, границы системы и архитектурные решения
Структура секции, формализация задачи, границы системы и архитектурные решения
Technical Director & Fellow, Т-Технологии
Провёл сотни design-секций как интервьюер
Помогаю готовить кандидатов на Senior+ и Staff
Подкаст «Code of Leadership», канал @book_cube
Пять шагов к уверенному прохождению
Где в найме применима design-секция
Структура: context → requirements → architecture
Формализация: Use Cases, User Story, JTBD, ATAM
Границы, контракты, потоки и компоненты
Грейды и место в воронке
Junior / Middle / Senior / Senior+
Junior/Middle — база и fit
Senior — design/system thinking
Senior+/Staff — design в центре
Смотрим ширину зрелости
Сигналы, что компания ждёт design-интервью
Кандидат претендует на Senior, Senior+, Staff
Роль предполагает проектирование подсистем
Команда работает с распределёнными системами
Есть требования к надёжности и масштабу
От названия до архитектуры
Канва, по которой идёт обсуждение
Название и контекст
Функциональные и нефункциональные требования
Sizing — оценка нагрузки, объёмов, RPS, storage
Архитектура: компоненты, потоки, trade-offs
Ориентировочный тайминг
5 мин — название и контекст, уточнения
20 мин — требования и приоритизация
5 мин — sizing на пальцах
30 мин — архитектура, trade-offs, вопросы
Функциональные и нефункциональные требования
Use Cases · Story · JTBD
Use Cases — актор и система
User Story — ценность для пользователя
JTBD — работа продукта
Один формат + приоритизация MVP
Architecture Tradeoff Analysis Method
Availability + Performance
Scalability + Security
Maintainability через год
Quality Attribute Scenarios
Для подготовки
Wiegers: Software Requirements
Eyskens: Software Architecture for Busy Developers
Bass/Clements/Kazman: Architecture in Practice
ISO/IEC 25010: quality attributes
Контракты и интеграции
Контракты наружу
Клиенты: mobile / web / B2B
Upstream: БД, очереди, внешние API
Протоколы: REST, gRPC, async events
SLA и граница public / internal API
Канон design-секции
Tanenbaum/van Steen — Distributed Systems
Hohpe/Woolf — Integration Patterns
Sam Newman — Building Microservices
Kleppmann — DDIA
Сборка архитектуры
Что рисуем на доске
Edge — CDN, API Gateway, Load Balancer
Compute — stateless services, BFF, воркеры
Data — OLTP, кеши, search, blob
Async/cross-cutting — events, auth, obs
Read / write paths
Write path: данные до durability
Read path: ответ клиенту и кеши
Async path: фоновые задачи
Failure path: отказ зависимости
Senior+ vs Senior
Назвать 2+ альтернативы
Сравнить по конкретным -ilities
Выбор через приоритеты задачи
Ограничения + migration path
Чек-лист перед интервью
Context → Requirements → Sizing → Architecture
Сначала формализуй, потом рисуй компоненты
Используй ATAM для нефункциональных требований
Проговаривай границы, контракты и trade-offs
Интервью, требования, trade-offs
DDIA — Martin Kleppmann
ATAM + Software Architecture in Practice
C4 Model — Simon Brown: c4model.com
ADR/RFC + Fundamentals of Architecture
polomodov.tech
Все слайды и ссылки — в Telegram-канале
Александр Поломодов, Technical Director & Fellow, Т-Технологии
@book_cube