Как провести техническое собеседование

В прошлой статье я рассказывал, как ищу сотрудников на LinkedIn. В этой опишу, как проходят собеседования, и какие вопросы я задаю кандидатам на позицию DevOps. Также расскажу, как отличить хорошего кандидата от плохого, и на какие красные флаги стоит обратить внимание.

Итак, потенциально интересные кандидаты найдены, приглашения на интервью отправлены. Если кандидат согласился побеседовать, обычно дальнейший процесс состоит из нескольких фаз.

Фаза 0. Уточняющие вопросы перед интервью

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

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

Красные флаги: несоответствие ответов анкете. Иногда бывает так, что кандидат сообщает о себе недостоверную информацию в своем LinkedIn-профиле, или она устарела и больше не актуальна. В таких случаях успешное прохождение нулевой фазы позволяет сэкономить время и избежать неловких ситуаций на личном интервью, если оно состоится.

Are you experienced?
Are you experienced?

Фаза 1. Скрининговое интервью, или интервью-знакомство

Цель этой фазы: познакомиться с кандидатом. Оценить его/ее адекватность, манеру общения, подачу себя и своих навыков и достижений. Обычно в ходе этой фазы становится понятно, подходит кандидат в команду или нет. Также выясняется общий уровень кандидата, его/ее мотивация, ориентиры и ценности. В случае, если вы считаете, что культурно и по опыту кандидат впишется в компанию, найдет общий язык с коллегами и будет приносить прибыль и пользу, то можно продолжать с ним/ней работать.

Красные флаги: токсичность, лень, пассивная агрессия, инфантильность, отсутствие достижений и мотивации.

Сам скрининг также можно разбить на несколько этапов:

  • Презентация компании: краткое описание бизнеса, кто заказчики, если они есть, какие задачи, где офисы, что за команда, что за проекты.
  • Описание роли: рассказ о позиции, которую вы предлагаете кандидату. Важно не просто пересказать job description из объявления о найме на работу, а дать больше инсайдерской информации: например, как проходит онбординг, какая будет команда, какова специфика задач на проекте.
  • Вопросы потенциальному сотруднику: попросить дать описание опыта, проектов, заказчиков, задач, технологий и достижений на прошлых местах работы. Очень важный момент: рассказ кандидата о карьере должен содержать не столько перечисление обязанностей, сколько описание достижений. Неважно, чем человек должен был заниматься на работе, если он ничего не добился. Хорошо, если кандидат использует т. н. “активные глаголы” (active verbs): “я сделала”, “я смогла добиться изменений”, “мне удалось решить задачу”.
  • Ответы на вопросы кандидата: если они появились. Если ответ невозможно дать прямо на интервью, записать его и взять в офлайн, потом прийти с ответом в сообщения.
  • Следующие шаги: озвучить план, по которому вы пойдете дальше. Обычно это еще несколько собеседований (техническое, менеджерское), переговоры об условиях и наем.

Фаза 2. Техническое интервью

Цель этой фазы: выяснить уровень технических знаний кандидата.

Разумеется, конкретные вопросы зависят от специфики компании и проекта. Списки вопросов лучше подготовить заранее, причем сделать их для разных уровней: junior, middle, senior, lead. Если технических знаний не хватает, стоит позвать с собой на интервью пару инженеров разных профилей, например, разработчика и специалиста по базам данных. Но не толпу людей, чтобы кандидат не чувствовал себя неловко, как на защите диплома.

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

Красные флаги: несоответствие уровня технических знаний заявленному кандидатом и/или требуемого для роли; неспособность рассуждать, логически мыслить, связно и понятно излагать идеи и концепты; неумение находить и анализировать информацию.

Ниже примеры моих вопросов для DevOps-специалистов разных уровней.

Junior

Преимущества специалистов этого уровня: при том, что они часто обладают неплохими техническими навыками, их знания рабочих процессов невелики, поэтому “джунов” довольно легко интегрировать в практику так, как вам это нужно.

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

Slowpoke
Slowpoke

Как правило, джуны — это студенты старших курсов, выпускники и люди с опытом работы около года. От них не требуются серьезные технические знания, важнее общее понимание темы и инициативность. Это тот случай, когда сертификаты об участии в профильных мероприятиях и о прохождении курсов имеют значение, поскольку они показывают вовлеченность и интерес к профессии. Для более опытных сотрудников фактически решенные рабочие задачи и достижения важнее.

Примерный список вопросов:

1. Что такое DevOps? Правильный ход мыслей: это философия/методология сотрудничества команд разработки и эксплуатации. Неправльный: это инженер/программист, который все автоматизирует.

2. Какие технологии из области DevOps вы знаете? Хорошо, если кандидат назовет не только названия продуктов (например, Kubernetes, Docker, Jenkins), но и расскажет, для чего они нужны и к какой практике (orchestration, containerization, continuous integration and deployment) они относятся.

3. Какой у вас опыт работы с Linux? Приведите примеры основных команд: как посмотреть список процессов (top), проверить свободное место на диске (df) и т. д.

4. Какой у вас опыт работы с языками программирования? Обычно для задач DevOps нужен Python, Go или аналогичный. Можно попросить кандидата написать цикл перебора элементов или какой-нибудь иной простой код, чтобы понять уровень знаний.

5. Что такое виртуализация и контейнеризация? В чем разница между ними? В чем преимущества и недостатки каждого метода? Этот вопрос уже практически уровня middle, так что тот джун, который на него ответит, это очень неплохой джун. В целом, правильный ответ сводится к тому, что при виртуализации мы используем всю ОС вместе с теми ее компонентами, которые не нужны для непосредственно выполнения задачи, а при контейнеризации только исполняемый код и необходимые библиотеки, поэтому второй подход выгоднее с точки зрения потребления ресурсов, а также он более универсален в плане совместимости.

В принципе, этих вопросов достаточно для интервью на джуна. Если этого требует роль, можно поговорить с кандидатом 5-7 минут по-английски. От специалистов начального уровня обычно не требуют очень глубоких знаний, скорее стоит оценивать то, как человек рассуждает, как работает его логическое мышление. Можно также спросить его, в каких источниках он обычно ищет ответы на вопросы. Google и Stack Overflow будут хорошими вариантами.

Middle

Преимущества и недостатки специалистов этого уровня обычно находятся в равновесии. Как правило это специалисты с тремя-пятью годами опыта, которые понимают, чего ждать от работы, способны самостоятельно выполнять задачи, знают свои сильные и слабые стороны, могут назвать предпочтения по технологиям и методологиям. С кандидатами этого уровня можно углубиться в технические вопросы. Если вы работаете в международной компании, то особое внимание стоит уделить английскому языку. Например, если я понимаю, что кандидат в случае трудоустройства будет общаться с англоязычным заказчиком, то и вопросы ему/ей я задаю по-английски.

Slowbro
Slowbro

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

Примерный список вопросов:

1. Что такое “нода” в Kubernetes? Это основной вычислительный ресурс кластера, обычно виртуальная машина. Хорошо, если кандидат знает, какие существуют типы нод (control plane, compute, load balancer, etc.).

2. Зачем нужны “неймспейсы” в Kubernetes? Это механизм изолирования друг от друга ресурсов, потребляемых разными сервисами. Также он используется для применения политик, общих для одного типа сущностей.

3. Что такое kubelet? Это основной сервис Kubernetes, отвечающий за запуск на ноде контейнеров и обеспечивающий выполнение всех задач кластера.

4. Что такое kubectl? Это инструмент, позволяющий в режиме командной строки выполнять команды в кластере Kubernetes. Будет отлично, если кандидат приведет примеры таких команд и опишет результат их применения.

5. Что такое Helm? Это инструмент для автоматизированного развертывания сервисов в кластерах Kubernetes.


Разумеется, DevOps-инженер middle-уровня работает не только с Kubernetes. Вопросы по другим инструментам вы можете придумать сами по аналогии. Также хочу заметить, что для успешного прохождения интервью кандидат не должен ответить правильно на все вопросы. По моему опыту, обычно бывает достаточно около 80% правильных ответов. Повторюсь, главное убедиться, что человек способен мыслить логически и самостоятельно искать ответы на сложные вопросы. Это база, и если она есть, то научить технологиям — не проблема. В крайнем случае, если процент правильных ответов меньше 80, можно предложить соискателю позицию junior с ростом до middle через некоторое время, или же дать “мидла” авансом.

Senior

Преимущества специалистов этого уровня: как правило, это профессионалы с большим опытом, способные быстро освоиться на проекте и начать эффективно решать задачи.

Недостатки становятся продолжением достоинств: из-за своего большого опыта сеньор может думать, что лучше знает, как ему/ей работать, и не всегда принимает принятые в команде практики. Иногда стоит прислушаться к его/ее мнению и внести изменения в процесс, а если вы не хотите этого делать, нужно объяснить инженеру, почему команда работает именно таким образом.

Вопросы для собеседований сеньоров, как правило, очень специфические. Кроме того, техническое интервью с ними обычно состоит из нескольких итераций, в которых со стороны вашей команды принимают участие инженеры разного профиля. Помните о том, что вы ждете от человека решения конкретных задач в сжатые сроки и принесение им ощутимой выгоды компании в долговременной перспективе, и выбирайте вопросы для интервью исходя из этого.

Фаза 3. Менеджерское ревью и передача кандидата в HR

Цель этой фазы: суммаризировать весь опыт общения с кандидатом и решить, подходит ли он/она для работы в организации.

Менеджерское ревью пишет тот, кто проводил собеседования либо участвовал в них. Оно обычно содержит следующую информацию:

Краткая справка: общая информация о кандидате, его/ее бэкграунд, откуда мы узнали друг о друге, фактура личности в общих чертах.

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

Культурный профиль: почему кандидат впишется в команду и компанию.

Проект: на каком проекте кандидат будет работать и кто будет заниматься его онбордингом, также кого назначить ментором. Если у вас не корпорация, этот пункт можно пропустить.

Позиция и ЛМ: формальное название должности (например, Senior DevOps Engineer) и линейный менеджер.

Красные флаги: список моментов, на которые следует обратить особое внимание.

Мой примерно такой:

  • Очень базовый английский.

  • Хочет работать 100% удаленно, а вакансия подразумевает посещение офиса хотя бы иногда.

  • Нет образования, самоучка.
  • Часто менял работу, не задерживался ни в одной компании больше, чем на 1-2 года.
  • Длительные периоды, когда нигде не работал: возникает вопрос, как зарабатывал на жизнь.
  • Слишком большие зарплатные ожидания, более чем на 20% выше, чем в среднем по рынку.
  • Владеет своим бизнесом или есть другой источник дохода: есть риск, что будет отвлекаться и не сможет уделять работе должного внимания.
  • Всем хорош, но прямо сейчас нет проекта под него/нее.

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

Даже если кандидата не получится нанять прямо сейчас, менеджерское ревью всё равно нужно сохранить на будущее. Эта информация будет полезна в том случае, если откроется новая вакансия. Тогда у вас под рукой уже будет список людей, с которыми вы знакомы и потенциально заинтересованы друг в друге.

Думаю, озвученных в этой статье рекомендаций будет достаточно на первое время для начинающего DevOps-лида или менеджера. Набирайтесь опыта, желаю вам успешных собеседований и удачных наймов!

66
1 комментарий

Найти нормального сотрудника, еще та головная боль.

1
Ответить