Как оценить кандидата на вакансию разработчика

Всем привет! Меня зовут Игорь, я один из основателей компании proghub.ru, мы предоставляем бизнесу и рекрутёрам продвинутые инструменты скрининга кандидатов технических направлений. Иными словами, помогаем повысить продуктивность найма внедряя автоматические инструменты.

Решил поделиться своими исследованиями и мыслями по теме скрининга в современных реалиях.

Оценка навыков программирования соискателя-разработчика стала неотъемлемым этапом любого технического собеседования. По данным исследования CodinGame'S Tech Recruiting Survey Report 2020, основная проблема 81% рекрутеров - поиск квалифицированных кандидатов. Большинство ошибочных наймов происходит из-за не выявленной нехватки технических навыков у кандидата.

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

Чтобы быть талантливым программистом, мало иметь технические навыки. Но именно технические навыки можно замерить достаточно точно.

По данным исследования CodinGame'S Tech Recruiting Survey Report 2020, 81% HR считают поиск квалифицированных кадров основной сложностью при найме разработчиков.

Результаты опроса о сложностях рекрутеров при найме разработчиков
Результаты опроса о сложностях рекрутеров при найме разработчиков

Изучите портфолио

У каждого разработчика, сколь джуном бы он не был, должно быть портфолио.

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

По данным исследования CodinGame'S Tech Recruiting Survey Report 2020, 70% рекрутеров считают предыдущий опыт работы важным для найма, а 47% просматривают GitHub и личные проекты кандидатов.

Результаты опроса разработчиков и HRов о важных аспектах кандидатов
Результаты опроса разработчиков и HRов о важных аспектах кандидатов

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

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

Хорошие коммуникационные навыки полезны на любой позиции, и портфолио - один из способов проверить способность кандидата объяснять и показывать вещи.

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

Пример вебсайта-портфолио
Пример вебсайта-портфолио

GitHub аккаунт

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

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

Прежде чем закапываться в код проектов, вы можете проверить следующие простые метрики:

  • Число подписчиков - простой показатель репутации и знаменитости
  • Дата регистрации в GitHub может вскрыть ложь в опыте работы
  • Релевантные ключевые слова в языках и технологиях
  • Число репозиториев кандидата (их проекты или участие в проектах других) и тип проектов
  • Публичная активность за год
Пример привлекательного профиля Github
Пример привлекательного профиля Github

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

Спросите как используют StackOverflow

StackOverlflow в простейшем определении - сайт с вопросами и ответами на все вопросы, связанные с программированием.

Разработчики спрашивают и отвечают на вопросы, активные пользователи получают баллы и бейджи за вклад в проект. Этот сайт - сосредоточение знаний, и разработчик будет обращаться к нему каждый день.

Примеры вопросов на разные темы с главной StackOverflow
Примеры вопросов на разные темы с главной StackOverflow

Оценка профиля кандидата в StackOverflow - идеальный способ оценить уровень знаний кандидата и его вовлечённость в сообщество разработчиков. И его английский тоже. Вы можете легко оценить репутацию разработчика на сайте и ознакомиться с его лучшими ответами.

Репутация на StackOverflow объективнее, чем кажется. Пользователи с высокой репутацией - разработчики, которые 1) регулярно появляются на сайте; 2) задают уместные вопросы; 3) помогают другим благодаря своей экспертизе.

Live coding

Процесс лайвкодинга при удалённом интервью
Процесс лайвкодинга при удалённом интервью

Live coding - способ проверки навыков программиста, когда рекрутёр в прямом эфире следит за разработчиком во время написания кода. Это может быть произвольная программа или конкретная задача. Однако live coding interview - одно из сложнейших и стрессовых событий во время рекрутинга для разработчика, а потому их зачастую недооценивают.

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

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

Зачастую бывает полезно отследить, какие вопросы задаст вам кандидат перед тем, как приступить к заданию. Вы можете отследить, встретит ли разработчик сложности и будет ли обращаться к Google.

Обычно live coding проводится через удалённый показ рабочего стола. Вы даёте разработчику задание и смотрите, как он его выполняет. Для этого можно согласовывать звонки в Skype, Zoom и т.п., или использовать специализированные инструменты для организации Coding Interview из одной страницы браузера. Ничего лишнего. Вы даёте разработчику задание и смотрите, как он его выполняет.

Live Coding - это не экзамен на время. Разработчик не должен найти верный ответ за кратчайшее время, рассматривайте упражнение как конструктивный диалог за общим занятием.

Тестирование

Тесты по программированию - один из самых эффективных способов проверить кандидатов перед наймом. С фиксированным временем создания теста вы можете проверить любое число кандидатов.

С тестами по программированию не всё так однозначно, как может показаться. Очень многое зависит от реализации теста и качества подобранных заданий.

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

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

Вам может казаться, что собственные методы скрининга бесплатны. Но сотрудники тратят на них время, оплачиваемое компанией. Стоимость найма программиста из 25 кандидатов с 3 собеседованиями превысит 1.500$, а стоимость скрининга в РФ одного senior-разработчика в среднем обходится компании в 3000 руб.

Хорошие тесты по программированию позволяют не только оптимизировать стоимость найма, но и улучшить опыт кандидатов по сравнению с нетехническими собеседованиями, которые обычно идут первыми. Тесты по программированию - способ провести tech-friendly рекрутинг.

По данным исследования CodinGame'S Tech Recruiting Survey Report 2020, 65% разработчиков назвали нескучные тесты по программированию в форме тестов приемлимым способом проверки навыков, а 62% - традиционные задачи на практические задачи.

Результаты опроса о интересных для разработчиков способах проверки их качеств
Результаты опроса о интересных для разработчиков способах проверки их качеств

Интересные задачи на программирование позволяют сэкономить время при техническом рекрутинге и представляют полноценную замену whiteboard тестов, давая кандидату возможность продемонстрировать свои навыки на деле.

При этом отдельные платформы предлагают быстро и просто возможность собрать тесты из готовых заданий на технологии и языки. Рекрутёру не придётся бегать за CTO или программистами.

Буду рад ответить на вопросы о наших продуктах! Пишите на support@proghub.ru или в телеграм. До скорого!

22
5 комментариев

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

Github - рабочие проекты нельзя выкладывать открыто на Github по соображениям коммерческой тайны, а на собственные опенсорс проекты не хватает времени (но хотелось бы, поэтому мечтаю, уйдя на пенсию, делать какой-нибудь опенсорс для души...).

StackOverflow - сидела там, когда было лишнее время, но последние несколько лет банально некогда (но вот уйдя на пенсию... :)

Максимум на что удается изредка выделить время - это ведение своего маленького ИТ-блога - https://www.e-du.ru/ но количество статей уменьшается, т.к. с возрастом количество проектов по работе растет и на всё остальное не остается времени.
Это я к тому, что оценивать по активности в сети - мне кажется не совсем лучший показатель - чем больше работы и опыта, тем меньше проявляешь активность в сообществах.

3

Очередной маркетинговый скам и почва для прогрессирующего рака у хрюш. Видимо, не скоро ещё придёт понимание, что хороший разработчик - это прежде всего инженер, с характерным психотипом, присущем профессии, а не хорошо говорящая социальная макака, наполняющая гитхаб (как справедливо заметил выше комментатор - не все пилят опенсорс, не все хотят выкладывать свои пет-проекты публично) пустыми репами ради объёма и звёздочек и надроченная проходить интервью в leetcode. 

2

главный вопрос - что вы имеете ввиду когда говорите хороший разработчик?

2

Конверсия имеется, можно посмотреть? узнать? Условно прошли N тест, по метрикам системы ок - K, отвалились или не отвалились через пару месяцев - Z?

Мимоходом
Stackoverflow - один из топовых вопрос как выйти из vim. Подразумевается ли, что HR умеет отличить мусор, от реально тех дел.
GIthub - не все в опенсорсе сидят. 

А так имеем план как обмануть систему. Пишем вопрос про BLM на SO, коммитим readme в проекты, далее на 2-й монитор или с мобилы подключаем более опытного коллегу и он в ухо говорит ответы. Единственный топ навык - социальный )

1

По конверсии пока выходит ~40% тех кто успешно все проходит, т.е. хороший результат тестов/задач. Отвалились/не отвалились - не знаем, это решает компания. Есть статусы кандидатов, не все ими активно пользуются так что они не отображают реальных показателей.

За стэк и гитхаб верно говорите) Они хороши как дополнительный маркер, вроде "обратите на этого кандидата".

А план хороший :)

2