Привет, меня зовут Ваня Емельянов, я руковожу разработкой видеохостинга Дзена и провожу собеседования в свою команду.
Полгода назад мы поменяли процесс найма бэкенд-разработчиков: заменили одно алгоритмическое интервью на решение реальных задач из бизнеса и назвали этот этап Production Code. В статье расскажу, как получилось найти компромисс между нежеланием кандидатов решать алгоритмы и желанием бизнеса проверить навыки кандидатов, как устроен новый процесс и что о нем говорят.
Как проходят технические интервью в Дзене для бэкенд‑разработчиков
Первый этап — Whiteboard Interview (более известный как «алгоритмическое интервью»). Кандидат решает две задачи на программирование простого и среднего уровня в онлайн-редакторе. Интервьюеры оценивают сложность получившегося алгоритма и задают каверзные и не очень вопросы.
Исторически в Дзене было два алгоритмических интервью — с разными задачами и интервьюерами. Это исключало субъективизм с нашей стороны и позволяло проверить умение кандидата построить рабочее решение из базовых структур и способность самостоятельно находить и исправлять баги.
Звучит неплохо, но у всего есть узкие места. Например, Whiteboard Interview не проверяет опыт и навыки решения рабочих задач. С его помощью мы можем оценить только умение преобразовывать алгоритм в рабочий код — как хорошо кандидат знает стандартные алгоритмы/структуры данных и может быстро собрать из того, что есть, готовое решение.
Тем не менее, это хороший инструмент для своих задач — совсем отказываться от алгоритмического интервью мы не хотели, но по обратной связи поняли, что надо что-то менять. И поменяли: заменили одно алгоритмическое интервью на Production Code. На этом этапе кандидат решает реальные задачи, которые когда-то были или есть в Дзене прямо сейчас.
Например, мы можем попросить кандидата:
реализовать API транзакции над базой данных и над внешним сервисом, который может возвращать ошибку;
написать код для сервиса по раздаче счетчика просмотров с высокой нагрузкой;
реализовать простой сервис для работы с оповещениями;
реализовать агрегацию определенных данных по потоку событий;
написать рабочие тесты на свой код и так далее.
Что же нам дал Production Code?
Основная цель этого этапа для кандидатов — решить задачу так, как бы они делали это на работе. По сути, написать код и пройти код-ревью. Можно гуглить, писать код в удобном окружении для себя, в своей IDE — таким образом, теперь мы можем проверить навыки кандидатов в решении практических задач.
Пример второй секции был для меня необычен, первый раз такое проходил. Лично мне понравилось, что есть простор, где развернуться. По сути, по тому, как выполняешь такую задачу, можешь сам контролировать свой рост. Я после прохождения несколько раз уже возвращался с мыслью «а что и как я бы ещё мог сделать и на что стоило обратить внимание». Всё же алгоритмические задачи в этом плане несколько зажаты и менее практичны — там может всё сойтись на том, знаешь ли ты некий подход или алгоритм или нет.
Еще у нас появился четкий регламент прохождения интервью и понятные критерии оценки по знанию:
языка программирования (Java, C++);
базовых алгоритмов;
баз данных и интерфейсов взаимодействия с ними;
инструментам IDE (хоткеи, авто-рефакторинг);
устройства многопоточных приложений;
тестирования и так далее.
Интересный вариант, вначале немного растерялся, но в целом подход очень показательный для интервьюера с точки зрения оценки навыков собеседуемого. На ходу приходится придумывать рабочее решение, которое может иметь большое количество разных подходов. Со своей стороны я могу сказать, что мог показать лучший результат, но прошло как прошло 😅
Также мы переработали процесс онбординга интервьюера, чтобы упростить ему понимание, что нужно делать. Впервые попробовали формат, когда интервью проводят сами авторы задач и погружают в специфику коллег, и создали внутреннюю базу знаний с пошаговым описанием проведения и ревью этого этапа.
Итак, с мая по сентябрь полет успешный — мы собрали отзывы и увидели, что процесс стал более понятным и прозрачным для обеих сторон. Новые задания получились с вызовом и близкими к реальности, а конверсия в найме даже увеличилась, более 50% кандидатов успешно прошли новый формат интервью. Точно оставляем этот этап и уже думаем, как масштабировать его на другие технические направления Дзена.
Формат интересный, один из лучших, что я встречал. Включает в себя алгоритмическую составляющую и возможность поконструировать какие-то компоненты.
Если вы проходили собеседование в Дзен или задумались об этом и хотите поделиться обратной связью по процессу уже сейчас, будем рады поболтать в комментариях!