Найти в Дзене
Это Павлов | Pro IT

Подготовка к System Design Interview

В последнее время этап System Design Interview становится все популярнее. Нередко этап SD назначают даже тем, кто идет на позицию мидла. Тут конечно, возникает закономерный вопрос: зачем и нафига? А это для того, что бы посмотреть уровень инженерной экспертизы, умение выбирать технологии под задачу и аргументировать решения. Периодически провожу интервью-секцию по дизайну систем и у меня есть что сказать тем, кто к ней готовится. Практика - Начните с проектирования систем, с которыми вы уже знакомы или работали. Анализируйте текущие решения и ищите возможности для оптимизации. - Проектируйте популярные сервисы, такие как YouTube, Tinder или шахматные платформы. После этого изучите реальные кейсы и подходы компаний, чтобы понять, насколько ваши идеи совпадают с реальностью. - Решайте архитектурные задачи (kata’s) на ресурсах типа Architectural Katas. Они предлагают отличные сценарии, хотя готовых ответов нет, что стимулирует самостоятельную работу над решением. - Участвуйте в описании а

В последнее время этап System Design Interview становится все популярнее. Нередко этап SD назначают даже тем, кто идет на позицию мидла.

Тут конечно, возникает закономерный вопрос: зачем и нафига? А это для того, что бы посмотреть уровень инженерной экспертизы, умение выбирать технологии под задачу и аргументировать решения.

Периодически провожу интервью-секцию по дизайну систем и у меня есть что сказать тем, кто к ней готовится.

Практика

- Начните с проектирования систем, с которыми вы уже знакомы или работали. Анализируйте текущие решения и ищите возможности для оптимизации.

- Проектируйте популярные сервисы, такие как YouTube, Tinder или шахматные платформы. После этого изучите реальные кейсы и подходы компаний, чтобы понять, насколько ваши идеи совпадают с реальностью.

- Решайте архитектурные задачи (kata’s) на ресурсах типа Architectural Katas. Они предлагают отличные сценарии, хотя готовых ответов нет, что стимулирует самостоятельную работу над решением.

- Участвуйте в описании архитектуры вашего проекта на работе. Пишите Architecture Decision Records (ADR), документируйте ключевые решения и обсуждайте их с командой.

Общение

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

- Узнайте, есть ли на вашей работе архитектурный комитет, и постарайтесь стать его участником. Это отличная возможность получить опыт работы с крупными проектами и принимать важные решения.

- Обсуждайте архитектурные решения с вашим архитектором. Понимание принятых ранее решений поможет вам развить критическое мышление и научиться обосновывать свои предложения.

Теория

- "Книга с кабанчиком" - Высоконагруженные приложения М. Клеппман

- Посещайте ресурс ByteByteGo, где сложные концепции объясняются простыми словами и наглядными примерами.

- Паттерны корпоративных приложений М. Фаулер

Интервью

- Не бросайтесь сразу в проектирование. Внимательно прочитайте задачу, соберите требования, узнайте какая нагрузка предполагается.

- Задавайте вопросы, уточняйте требования и скоуп задачи.

- Регулярно сверяйте проектируемую архитектуру с требованиями. Оценивайте, насколько она соответствует функциональным и нефункциональным требованиям, учитывает ли исключительные случаи и потоки данных.

Вот и все, удачи на интервью!

Еще больше постов про IT в моем
telegram-канале

Пиши в комментариях, что можете посоветовать тому, кто готовится проходить интервью по system design. Делитесь своим опытом.