Пора поговорить про System design

Товарищ-тестировщик рассказал, что на 30% собеседований ему давали задачки по архитектуре. Мне казалось, что секцию System design компании в РФ проводят только для сеньор-разработчиков и тимлидов. Однако, требования к кандидатам растут. На изменения рынка стоит реагировать, поэтому давайте разбираться.

System design – это процесс проектирования систем. В контексте собеседований бэкенд-разработчиков это выглядит так:

  • ты приходишь на собеседование длительностью 30-60 минут
  • тебе дают задачку формата «спроектируй твиттер» или «сделай схему работы яндекс.такси»
  • ты уточняешь требования и рисуешь решение в Miro или подобных сервисах
  • по пути объясняешь что как должно работать, например, рассказываешь какой тип базы данных нужно использовать или какой способ взаимодействия сервисов
  • интервьюер оценивает твои хард- и софт-скиллы

На ютубе много видео тренировочных собеседований. Например:

Задачи на собесах дают согласно твоей специализации и грейду. Например, тестировщиков могут просить не рисовать, а показать возможные точки отказа системы.

Я как нанимающий менеджер провожу собеседования по System design для разработчиков уровня мидл и выше. Архитектурная сессия позволяет мне: 1. увидеть как человек будет решать задачки, близкие к реальности 2. верифицировать предыдущие оценки интервьюеров Я бы проводил этот этап для всех ролей в команде, в том числе продакт-менеджеров.

Готовьтесь к System design, даже если вы не сеньор. Похоже, это станет обязательным этапом 🙂