Я чуть больше года назад оставлял
заметку о том, какие вопросы мне задавали на собеседованиях.
В последние несколько месяцев мне самому доводилось достаточно собеседовать людей, поэтому в этой заметке я расскажу какие вопросы задавал я и почему.
Техническое интервью с кандидатом у нас занимало примерно 1.5 часа.
Собеседование с применением обычной белой доски (whiteboard) и маркера. Мы не использовали схему вопрос-ответ, а само собеседование шло в виде беседы, по мере которой с каких-то общих тем мы углублялись в конкретные детали.
В первую очередь мы со своей стороны рассказывали, что у нас за продукт с технической точки зрения, что мы делаем по инфраструктурной части, как проиходит работа в команде платформы и взаимодействие с разработчиками и другими отделами. Объясняли кандидату почему мы сейчас ищем человека в команду, какие ближайшие планы по развитию команды и продукта с технической точки зрения, и т.д.
По резюме кандидата мы особо не спрашивали, но учитывали во внимание то, что если человек 5 лет работал с сетями и прочими цисками, то нет смысла спрашивать его про модель OSI и что такое пиринг VPC.
Первый часть с которой мы начинали, это попросили кандидата на доске нарисовать как он видит схему инфраструктуры какого-нибудь веб-проекта. Начиная с самого простенького что у нас просто есть инстанс или железный сервер (мы кстати рекомендовали привязываться к любому удобному облачному провайдеру или вообще bare-metal).
По мере роста инфраструктуры задавались наводящие вопросы по теме:
- как бы ты реализовывал балансинг на инстансах, автоскейлинг группу, и т.д.
- что бы ты делал если начинает расти нагрузка на базу, репликации, индексы, кеш, очереди
- если сломался сервер, как бы ты траблшутил все это
- зачем нужен CDN, как ходит трафик к твоему приложению, зашифрован ли он, на каком этапе происходит терминирование SSL
- как бы ты реализовывал бекапы
- какой мониторинг бы использовал и почему, когда стоит платить деньги за какой-нибудь datadog, а когда уже стоит завозить свой условный Prometheus-стек, то же самое касается логгинга
Вторая часть плавно переходила в понимание и огранизацию процесса CI/CD.
Как кандидат видит пайплайн, какие инструменты бы он использовал, как поддерживать адекватные косты для всего этого хозяйства (например юзать спот инстансы) и прочее.
Если у кандидата имелся опыт работы с Kubernetes задавали несколько вопросов по куберу, так как у нас его уже активно используют. Вопросы больше были из разряда:
- какие проблемы решает кубер, а какие нет
- в чем отличие контейнерной виртуализации от полной
- для чего придумали HELM и как его используют
Обычно этого было достаточно для понятия уровня кандидата. Но иногда если оставалось время, то могли спросить какой-то каверзный вопрос из разряда, где на жестком диске находится каталог /proc или как посмотреть нетстатом established UDP соединения.