Наша команда разработки уже больше 4 лет растёт примерно на 20% в год. Мы постоянно ищем технических специалистов и совершенствуем наём. Перепробовали много подходов, чтобы сделать процесс эффективнее: от изменений порядка этапов отбора до больших конкурсов для аналитиков и программистов. За несколько лет активного подбора мы накопили большой опыт, и сегодня я хочу рассказать о том, как работает часть нашей HR-команды.
Под катом описываю, как сейчас у нас выглядит процесс найма в C2C — команду, которая развивает и поддерживает функции Авито для частных пользователей. Мы переделали структуру интервью, разделили его на секции, включили задания по программированию. Нашли собеседующих внутри команды, подготовили их и потренировали совместными скайпами и личными интервью, научили писать отзывы о кандидатах.
Вводная часть
Команда C2C работает для самого массового сегмента наших пользователей — частных лиц. Каждое изменение в функциональности сразу же заметно миллионам людей. Это большая ответственность. C2C делится на юниты, каждый из которых отвечает за свою часть пользовательских сценариев. Есть юнит, который разрабатывает функции для тех, кто ищет на Авито (поиск по тексту, фото и карте, поисковые фильтры), для тех, кто договаривается о сделке (у нас собственный мессенджер) и так далее.
Каждый кандидат в техническое направление команды C2C проходит через два или три этапа.
- Знакомство + технический скайп.
- Интервью.
- Знакомство с командой (опционально).
Такой процесс отнимает больше времени, чем собеседования в другие команды. Но мы сознательно пошли на этот шаг, так как в итоге мы сильно выиграли в качестве подбора. Многоэтапный процесс принес выгоду всем: и бизнесу, и тем, кто выходит к нам на работу — первый получает высококлассного специалиста, идеально подходящего под существующие задачи, второй же приходит в крутой коллектив и работает над теми задачами, которые ему интересны.
Начальные этапы
Всё начинается со знакомства с кандидатом по почте, телефону или в мессенджере. HR заранее дает ему всю информацию по проектам и задачам, рассказывает про наши этапы отбора, чтобы необходимость написать алгоритм на листочке не стала неожиданностью.
Мы намеренно используем бумагу — так видно ошибки и исправления в процессе решения задач. Это помогает понять ход мыслей кандидата: где его пришлось наводить, где он додумывает решение сам и так далее. Таким образом мы понимаем некоторые потенциально слабые места, которые на испытательном сроке можно/нужно подтянуть.
После этого планируем техническое скайп-интервью, (где обязательно будет код и технические вопросы).
Скайпы проводят руководители команд или разработчики. Такое интервью занимает до 45 минут. Время для собеседования назначается гибко: иногда проводим скайпы рано утром или после 20 часов. После этого интервьюер пишет протокол собеседования и обратную связь в стандартизированном виде. Это позволяет потом через год легко воспроизвести у себя в голове ход скрининга. После 40 минут скайпа и решения одной-двух задач уже становится понятно, стоит ли нам продолжать общение лично.
Дмитрий Кунин, руководитель разработки юнита Trust & Safety:
«Скайп интервью — минимальная инвестиция времени, которая позволяет понять, насколько компания и кандидат друг другу подходят, предположить какую именно команду может усилить кандидат и, главное, чем. И вот это «чем» определяется некоторым спектром задач, где оценивается иногда даже не точный и правильный ответ, а ход мысли, сообразительность и умение предлагать нестандартные решения. Нет, про то, как покрасить M&M’s, мы не спрашиваем — вопросы относятся строго к предметной области».
Обычно мы ориентируем кандидатов на обратную связь в течение семи дней, но стараемся отвечать быстрее. Иногда получается так, что прямо на скайпе мы можем сообщить кандидату, что ему нужно подтянуть, посоветовать курсы, книги, подкасты. Были случаи, когда кандидаты возвращались к нам спустя несколько месяцев уже ориентированными именно на наши задачи и подготовленными к ним.
Очное интервью
Очное интервью в офисе состоит из четырёх частей, по часу каждая. Мы выбираем удобный вариант для кандидата: можем разделить интервью на два дня или провести все разом. Иногородним сотрудникам оплачиваем проезд. За четыре часа мы проводим кандидата через секции по программированию, архитектуре, платформе. В конце знакомим с потенциальным руководителем.
За это время мы оцениваем, подходит ли человек к нам по культуре и духу, рассказываем о юнитах и процессах работы, отвечаем на вопросы, пытаемся понять, будет ли кандидату интересно с нами работать.
Для принятия качественного решения нам очень важно оценить кандидата с разных сторон. Поэтому каждый час интервью проводит отдельно взятый коллега, специализирующийся на своей секции собеседований.
Иван Лукьянов, директор по разработке С2С:
«Мы считаем, что чем выше уровень специалиста, тем более тщательным должен быть отбор. Большое собеседование неизбежно, если мы хотим убедиться, что мы готовы много лет делать крутые вещи бок о бок с будущим коллегой».
В секции программирования мы просим решать задачи на алгоритмы. Да, на листочках.
Когда говорим про архитектуру, нам важно понять, работал ли кандидат с крупными приложениями, какое у него видение.
В следующей секции подробно говорим о скиллах кандидата и его прошлом опыте.
Дмитрий Корольков, руководитель разработки юнита Мессенджер:
«Текущие тренды в highload-разработке и достаточно низкий порог входа делает Golang весьма привлекательным для изучения языком программирования. Сейчас на рынке достаточно много резюме с упоминанием Go, однако, людей, знающих как устроен runtime языка “под капотом” — на порядок меньше».
Вот примеры того, о чём мы можем спросить разных разработчиков.
- Golang-разработчиков мы можем спросить об оптимизации приложения (например, если есть задача отдавать данные в формате JSON и видно, что в профиле сериализация отнимает много времени). Обсудить, в чём преимущество горутин над потоками. Ну и, наконец, спросить, чем занимается runtime в Go.
- Когда собеседуем iOS-разработчиков, проверяем глубину владения платформенным языком программирования. Можно сказать, что разбираем конкретные примеры кода, и как он в итоге будет/не будет работать. Спрашиваем про различные особенности платформы, например про управление памятью.
- Если говорим с php-программистом, обязательно спросим, как устроены массивы в PHP.
- С android-разработчиком мы, скорее всего, обсудим все возможные способы не потерять состояние экрана (пользовательский ввод, данные, выполняющиеся операции). Поговорим о способах выполнить что-то асинхронно и обработать результат.
- На собеседованиях фронтенд-разработчиков мы проверяем знание JS, задаём вопросы про HTTP-протокол и принцип работы браузера, а также проверяем базовые знания алгоритмов.
Во время финальной секции HR вместе с руководителем расспрашивают кандидата по резюме, рассказывают про задачи и процессы в Авито.
Сергей Машков, руководитель разработки юнита BuyerX:
«Важно не только быть уверенным в том, что кандидат соответствует техническим ожиданиям, но и понимать, что он вписывается в культуру компании в целом и конкретного юнита и/или команды в частности. Получение этого знания и является главной целью финального интервью».
Мы не делаем акцент на какую-либо секцию, важны результаты всех этапов. Без технических знаний невозможно делать хороший продукт для пользователей. Но точно так же для нас важно, чтобы сотрудник разделял ценности команды и компании. Мы хотим быть уверены, что на него можно положиться в работе. Умение работать в команде, ориентированность на конструктивное обсуждение и решение проблем — важные пункты для нас. Инженеры в Авито — командные игроки.
Так же как и со скайп-интервью, мы всегда можем дать кандидату обратную связь, подсказать аспекты, которые можно будет потом подтянуть. На принятие окончательного решения мы берём, как правило, не более семи дней. Этого достаточно, чтобы всё проанализировать. HR остаются на связи и всегда готовы ответить на вопросы кандидатов. По итогам обсуждений мы связываемся с финалистом, уточняем его впечатления и делаем предложение о работе. В некоторых случаях мы предлагаем устроить дополнительную встречу с командой.
Итого
В итоге мы видим, что новый подход оправдал себя. Компания получает профессионалов высокого уровня. Новые коллеги говорят, что наши собеседования помогли им определиться с выбором в пользу Авито, так как показали весь спектр будущих задач. Мы планируем придерживаться описанного подхода и дальше.
Надо сказать, что даже если кандидат не прошёл наши секции, то это время не потрачено впустую — наши интервьюеры стараются дать соискателям обратную связь, совет, куда можно расти дальше и на что ориентироваться в своём развитии.
После принятия оффера кандидат попадает в свою команду в Авито. Коллеги интегрируют его в дела и задачи. Параллельно команда HR ведёт сотрудника в период его адаптации. Подробнее про первые дни в Авито можно почитать тут. А я готов ответить на вопросы про то, как опробовали и внедряли новую схему собеседований.
Автор: StanYurk