
Привет, Хабр! Меня зовут Артём Елизаров, я руковожу отделом разработки фронтальных решений в R-Style Softlab. Значительную часть рабочего времени я посвящаю подбору специалистов и в общей сложности занимаюсь этим уже более 5 лет. В этой статье я хотел бы поделиться опытом проведения собеседований, их спецификой и дать рекомендации тем, кто ищет работу фронтенд-разработчиком.
Воронка кандидатов и время закрытия позиций
Как руководитель, отвечающий сразу за несколько проектов, я заинтересован в том, чтобы штат всегда был укомплектован, а на подряде работали ребята, которым можно доверять. Поэтому выстраивание процесса найма — один из лучших способов снизить риски на проекте. Сегодня под моим руководством несколько лидов, которым я могу доверить подбор людей, что сильно облегчает жизнь, но так было не всегда. Еще недавно 2-3 собеседования каждый день было для меня нормой.
Наш основной стек — React, Redux Toolkit, Effector, поэтому мы работаем на рынке, где много и специалистов, и вакансий. Это позволяет, с одной стороны, не вылазить за рамки бюджетов, а с другой — усложняет задачу найма, так как нужно не только найти, но и удержать будущего сотрудника. Единственное исключение — поиск специалистов со знанием технологий криптозащиты. Здесь нужно быть готовым к тому, чтобы либо тратить ресурсы на обучение, либо конкурировать за счет высокой зарплаты. Мы чаще идем в сторону обучения. В среднем, чтобы закрыть одну позицию в штате, мы проводим от 10 до 15 собеседований, при подборе по договору ГПХ, аутстафу или самозанятости — меньше.
Подготовка вопросов для HR — возможность ускорить прохождение кандидата по воронке. Приведу для примера несколько вопросов, которые могут помочь отсеять неподходящих кандидатов, даже если HR плохо разбирается в ИТ-терминологии.
Примеры вопросов
Назовите разницу между == и === (двойным сравнением и тройным сравнением)
Как проверить, является ли переменная массивом в JavaScript?
Чем отличаются let и var в JavaScript?
Чем отличается null от undefined в JavaScript?
Как вы считаете, React предоставляет декларативный или императивный API?
В чем разница между функциональными и классовыми компонентами в React?
Назовите основные методы жизненного цикла классового компонента по порядку
Назовите самые популярные mutable (мутабельные) методы массива в Javascript?
Как передать данные от родительского компонента к дочернему в React?
Как можно улучшить производительность приложения на React?
Что спрашивать на собеседовании: console.log и livecoding
До недавнего времени в начале каждого собеседования я говорил, сколько будет этапов и как они будут проходить, но сейчас пришел к тому, что не объявляю этапы, а только говорю, что будет livecoding. Это экономит время первого разговора и позволяет в дальнейшем, в случае необходимости, сократить или увеличить число этапов. Сейчас главное для меня при первой встрече — расположить человека на беседу, чтобы он расслабился, не стрессовал и открыто рассказал про интересные проекты и опыт.
Чтобы оценить технические навыки, я даю задачи, где нужно рассказать, что происходит в коде и что выводится в консоль. Это показывает базовое понимание логики работы языка программирования, и далее провожу livecoding.
Для livecoding’а у меня есть 10 задач, одну из которых я предлагаю кандидатам или прошу назвать число от 1 до 10, но в этом случае большинство называют цифру 7
