System Design: от паники к алгоритму
Курс «System Design: от паники к алгоритму» поможет уверенно проходить секцию System Design на технических собеседованиях, структурно разбирать архитектурные задачи и повысить шансы на трудоустройство в бигтех или переход на уровень Senior-разработчика.
Кому подойдёт курс
Программа рассчитана на разработчиков, которые хотят перестать угадывать «правильную архитектуру» на собеседовании и научиться рассуждать как зрелый инженер.
- Вы метите в крупные технологические компании: Яндекс, Ozon, Т-Банк, VK, Сбер, Авито, Wildberries и другие, где System Design часто входит в интервью.
- Вы хотите перейти из middle в senior, но рост грейда упирается в архитектурное мышление и умение проектировать системы.
- На текущих проектах у вас мало задач по System Design, поэтому практический опыт сложно получить на работе.
- Вы хотите не просто пройти собеседование, а понять, как масштабируемые системы работают под капотом.
Что вы научитесь делать
- Разбирать задачу System Design по понятному алгоритму, а не начинать с хаотичного рисования схемы.
- Задавать уточняющие вопросы и сужать область проектирования в первые минуты интервью.
- Оценивать нагрузку: DAU, RPS, storage, bandwidth и основные ограничения системы.
- Выбирать базы данных, индексы, кэш, очереди, брокеры сообщений и стратегии масштабирования под конкретную задачу.
- Аргументировать архитектурные решения и объяснять trade-off’ы интервьюеру.
- Проектировать типовые системы: мессенджер, ленту, видеоплатформу, билеты, поиск, autocomplete и ride-sharing.
Программа курса по неделям
Неделя 01. Алгоритм интервью и первый слой архитектуры
Блок 1. Алгоритм интервью
- Как устроено System Design-интервью. Что на самом деле оценивают и почему «единственно правильного ответа» не существует.
- Сигналы инженерной зрелости. По каким фразам и решениям интервьюер отличает Senior от Junior и Middle.
- 5-шаговый фреймворк разбора. Скелет, который превращает задачу «спроектируй X» в понятный план на 45 минут.
- Уточняющие вопросы. Что спросить в первые 5 минут, чтобы сузить задачу и не уйти в неверную сторону.
Блок 2. Первый слой архитектуры
- Capacity planning через ×10 DAU. Как прикидывать RPS, storage и bandwidth на салфетке без страха перед числами.
- REST API на собеседовании. Контракты, Idempotency-Key и почему подход Monolith First может быть сильным архитектурным решением.
- Сквозной кейс: лента Avito. Прогон всего фреймворка на живом примере от постановки задачи до архитектуры.
- Сеть и доставка. Load Balancer, API Gateway, CDN, DNS и входной контур современной распределённой системы.
Неделя 02. Ядро баз данных
Блок 1. Хранение и запросы
- Модели данных и выбор БД. SQL vs NoSQL по делу: когда нужен документ, когда key-value, когда графовая модель.
- Индексы под собеседование. B-Tree vs LSM и объяснение, почему запрос «тормозит», на уровне, где сложно подловить.
- Транзакции и ACID. Что реально гарантирует база данных, а что часто ошибочно додумывают разработчики.
- Уровни изоляции и аномалии. Dirty read, phantom read, write skew и выбор уровня изоляции под задачу.
Блок 2. Распределённые данные
- Репликация. Single-leader и leaderless-подходы: как пережить падение узла и не потерять данные.
- Distributed consensus и Raft. Как кластер договаривается о лидере без академической перегрузки.
- Шардирование и партиционирование. Как разрезать данные, когда они больше не помещаются на один узел.
- CAP и PACELC. Теоремы, которые часто цитируют неправильно, и их практическое применение в архитектуре.
Неделя 03. Кэш, очереди и устойчивость
Блок 1. Кэш и очереди
- Кэширование. Стратегии и архитектура: где поставить кэш и что он действительно ускорит.
- Проблемы кэша. Инвалидация, cache stampede, устаревшие данные и частые ловушки интервьюеров.
- Очереди и брокеры. Message Queue vs Event Stream, Kafka, выбор между async и sync-взаимодействием.
Блок 2. Согласованность между сервисами
- Идемпотентность и transactional outbox. Как не отправить платёж дважды и не потерять событие.
- Распределённые транзакции. 2PC, 3PC, saga и способы согласовать данные между сервисами без общей базы данных.
Блок 3. Отказоустойчивость
- Retries, timeout, backoff. Как ретраить запросы, чтобы не устроить лавину на упавший сервис.
- Circuit breaker и bulkhead. Как локализовать отказ, чтобы сбой одного компонента не уронил всю систему.
- Rate limiting. Token bucket и sliding window для защиты от перегрузки и абьюза.
- Масштабирование и graceful degradation. Как деградировать контролируемо, а не падать целиком.
Неделя 04. Первые боевые кейсы
Блок 1. Мессенджер и лента
- Мессенджер на примере Telegram. WebSockets vs polling, presence, доставка и порядок сообщений, хранение истории.
- Лента на примере Avito Объявлений. Fan-out on write vs fan-out on read, ранжирование, кэш ленты, media pipeline.
Блок 2. Видеоплатформа
- Видеоплатформа на примере YouTube. Upload, транскодирование, CDN-доставка и обзор рекомендательных механизмов.
Неделя 05. Сложные кейсы и поведение на собеседовании
Блок 1. Три сложных кейса
- Билеты на примере Яндекс Афиши. Double booking, борьба за одно место и виртуальная очередь под пиковую нагрузку.
- Поиск и autocomplete на примере Яндекс и Google. Inverted index, Elasticsearch, trie, relevance и ранжирование.
- Ride-sharing на примере Яндекс Такси и Uber. Geospatial-индексы, geohash, quadtree, матчинг, real-time tracking и surge pricing.
Блок 2. Поведение на интервью
- Тайминг 45 минут. Как распределить время между требованиями, оценками, архитектурой и обсуждением trade-off’ов.
- Думать вслух. Как показывать ход рассуждений и помогать интервьюеру следить за вашей логикой.
- Первые 5 минут. Какие вопросы задать, чтобы не проектировать лишнее.
- Когда интервьюер «копает». Как реагировать на уточнения, выходить из тупика и объяснять «почему», а не просто пересказывать паттерны.
Почему этот курс полезен для подготовки к System Design
System Design на собеседовании проверяет не знание модных терминов, а способность принимать инженерные решения в условиях ограничений. На курсе вы учитесь не заучивать готовые схемы, а строить архитектуру через требования, нагрузку, данные, отказоустойчивость и компромиссы.
Такой подход особенно полезен для разработчиков, которые готовятся к интервью в бигтех, хотят повысить грейд до Senior или систематизировать знания о распределённых системах.
Это пробный урок. Оформите подписку, чтобы получить доступ ко всем материалам курса. Премиум
- Урок 1. 00:12:240.1 С чего начать регистрация и обзор платформы
- Урок 2. 00:07:110.2 Напутствие перед стартом
- Урок 3. 00:09:200.3 Зачем тебе System Design ставим цель на курс
- Урок 4. 00:10:450.4 Как учиться, чтобы знание доставалось под давлением
- Урок 5. 00:09:370.5 Культура общения на курсе как спрашивать и отвечать
- Урок 6. 00:09:120.6 Обзор программы что разбираем за пять недель
- Урок 7. 00:11:220.7 Как сдавать домашки
Курс успешно стартовал - Неделя 0 уже доступна. Как обычно, новые уроки будут добавляться по мере выхода соответствующих материалов в оригинальном курсе.
Архив курса станет доступен после его полного завершения.
Желаем всем приятного и продуктивного изучения материалов! 👍