🔜 Это будет первый из двух постов про System Design.
Сегодня — поговорим о том, с чего чаще всего все начинается и чем все ограничивается (а не должно бы): виденьем со стороны кандидата.
Именно так обычно воспринимается SD-интервью:
«Ну, давай, спроектируй систему. Мессенджер/ маркетплейс/ очереди на парковку в Сколково/ платежную систему».
И здесь важно: хорошее System Design-интервью — это не про угадайку.
Это вообще не про придумывание правильной архитектуры.
Это про то, чтобы показать, как ты думаешь.
🎯 Что на самом деле смотрят на SD-интервью:
1️⃣ Аргументация.
Ты не просто рисуешь квадратики.
Ты объясняешь:
– почему здесь REST, а не gRPC,
– почему не пошел в микросервисы,
– зачем тебе кэш,
– как это вообще связано с бизнес-целями.
2️⃣ Контекст.
Хороший кандидат начинает не с рисования схемы, а с вопросов:
– Сколько пользователей?
– Какая нагрузка?
– Какая отказоустойчивость критична?
– Какие есть SLA и SLO?
– Что важнее: write latency или read speed?
3️⃣ Границы ответственности и масштабирование.
Тут видно, насколько ты умеешь мыслить слоями:
– frontend/backend/API gateway,
– storage, queues, stream processing,
– observability, alerts, autoscaling.
4️⃣ Доменные границы и архитектурная чистота.
Ты можешь не знать всех паттернов, но если ты говоришь про идемпотентность, eventual consistency, CQRS — ты уже показываешь, что в теме.
А если вдруг, можешь поддержать разговор на темы: onion, DDD, layered - совсем замечательно!
5️⃣ Проактивность.
Ты не боишься называть ограничения, риски, зоны роста.
Говоришь: «вот тут будет bottleneck, если пойдем на новый рынок».
Это уже взрослый уровень.
И вот в чем трюк: System Design — это не “построй идеальную систему”.
Это “построй систему, которую ты сможешь эволюционно развивать”.
Не важно, что ты предложишь — важно, как ты мыслишь, почему это выбрал, и как это отразится на продукте и команде.
Частый вопрос: А можно готовиться с помощью ИИ?
Можно. ИИ подскажет "умные слова", найдет примеры. Но если ты не можешь обосновать решение вживую — ты все равно не пройдешь этап.
Поэтом: да, пользуйтесь любыми инструментами и даже "зовите друзей на помощь", но только приходите подготовленные и в состоянии поддержать разговор по схеме, которую нарисовали!
Если вы хотите больше узнать про SD, то вот ссылки (видео, аудио-подкаст, репа на гите и статья):
- Секреты успешного System Design Interview: Design Uber (интервью на русском)
- Как подготовиться и пройти System Design Interview. Александр Поломодов
- Podlodka #224 – System Design
- GitHub репозиторий «learn-system-design» от Александра Поломодова
- System Design для начинающих: всё, что вам нужно. Часть 3
А завтра поговорим про проведение SD, но со стороны найма!
Зачем вообще SD нанимающей стороне, что оно проверяет на самом деле, и как договориться со всеми, что вы оттуда хотите вытащить.
А пока — проверьте себя:
– вы бы начали с рисования схемы или с вопросов?
– вы бы думали про продукт или про архитектурную чистоту?
– вы бы строили навсегда — или как MVP, эволюционно?
#architecture #people_management