CandyJar — профиль разработчика под микроскопом

CandyjarTeam
6 min readMar 26, 2020

--

“Как трудно заинтересовать кандидата, когда ты сам не разработчик” — слышу я от коллег в IT-рекрутинге. Мы в candyJar знаем как. Давайте расскажу.

Чтобы заинтересовать кандидата, мы сначала должны его изучить: узнать что ему интересно, какие технологии он уже использует в работе, в каких проектах работает. Давайте посмотрим, как candyjar может дать нам эту информацию.

Когда мы заходим на профиль любого разработчика, мы видим такую вот страницу.

Профиль состоит из следующий разделов: “Контакы”, “Языки программирования”, “Опыт работы” и “Проекты”. Разберемся, куда смотреть и что все это значит.

Раздел “Контакты”.

CandyJar старается максимально собрать все контакты которые может найти: социальные сети, резюме, почту, телеграм. Тут можно не заострять много внимания.

Раздел “Языки”. Do you speak C++? — Nein, Ich spreche Python.

В этом разделе мы видим список языков, на которых пишет разработчик. Можем быстро определить на чем он писал 5 лет назад и на чем пишет сейчас. На этом примере видно, что разработчик с 2013 года активно писал на Python, а последние несколько лет отдает предпочтение языку Scala.

Дальше смотрим детальную информацию по каждому языку.

1) Years — количество лет опыта в opensource разработке на Python. Тут стоит понимать, что опыт разработчика набирается не только в те моменты, когда он непосредственно сидит за компьютером и щелкает клавиши. При решении любой задачи большая часть времени уходит на обдумывание. В это время он не пишет код, он может валяться на диване, гулять в парке или общаться с другими разработчиками. Поэтому эту цифру нужно понимать примерно так: “у разработчика есть как минимум 6 лет опыта на Python”.

2) Projects — количество проектов, в которых участвовал разработчик на Python. В данном примере 39 проектов.

3) loc (lines of code) — количество строк кода. Здесь мы видим количество строк , которое написал разработчик на языке Python. Но надо понимать, что прямой зависимости состоятельности от количество строк нет. Много не означает качественно. Чаще даже наоборот: чем опытнее разработчик, тем меньше строк кода он пишет для решения задачи. Но чтобы дойти до такого уровня, как правило, нужно написать ни одну тысячу строк ‘плохого’ кода.

4) Year — год, когда разработчик последний раз писал на этом языке. Если разработчик уже несколько лет не использует язык в работе, то скорее всего, он уже не в курсе современных трендов и технологий.

5) Список проектов разработчика. На каждый проект можно кликнуть и открыть его первоисточник на гитхабе.

6) Skills — это разные дополнительные технологии и фреймворки, которые разработчик использует в работе. Эта информация полезна если вы ищите разработчика с конктректными навыками. В нашем примере у разработчика есть 17 проектов на базе веб-фреймворка tornado и 2 проекта на django.

7) Productivity — продуктивность показывает как часто и интенсивно работает разработчик. Каждый зеленый квадратик — это неделя работы. Чем квадратик темнее, тем больше коммитов сделал разработчик в эту неделю. Эти квадратики косвенно показывают стиль работы: иногда набегами и интенсивно (человек быстро решил прокачать свои навыки в определенной области), а иногда равномерно и не спеша (каждый день уделяет немного времени opensource разработке).

Что еще может рассказать нам шкала продуктивности ?

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

1 ) В июле месяце зеленых квадратиков нет. Все они серые. Это значит, что разработчик в этом месяце не работал. Вероятно, был в отпуске. Мы узнали, что человек целый год непрерывно трудился, чтобы потом на месяц уйти в отпуск и не думать о работе.

2 ) Также нет зеленых квадратиков на самой первой строчке и на самой последней. Все эти дни приходятся на субботу и воскресенье. Это означает, что в выходные человек отдыхает, попросить его что-то сделать в эти дни будет плохой идеей.

3 ) Мы заметили что в декабре квадратики темнее, чем в остальные месяцы. Это означает, что в этом месяце он делал больше коммитов, решал больше задач. Надеемся, что он успел доделать свой проект до конца года :)

Раздел “Опыт работы”.

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

Раздел “Проекты”.

Проекты — это репозитории разработчика. Их может быть много. Например, у нашего разработчика 39 проектов на Python. Но важно не количество. Намного полезнее получить ответы на следующие вопросы: над какими проектами он работает в этом году? О чем эти проекты? Какие задачи он решал в этих проектах? Есть ли у него опыт участия в больших opensource проектах.

Давайте посмотрим, какую информацию дает нам candyjar.

1 ) В самом начале мы видим шильдик “my” — означает, что это собственный проект разработчика. Если шильдика нет, значит разработчик присоединился и работает в команде другого проекта.

2 ) Название проекта.

3 ) Основной язык проекта. Если мы ищем Python разработчика, то в первую очередь нам интересно изучить его Python проекты.

4 ) Commits — количество коммитов в проекте. Если проект — это строящийся дом, то коммит — это маленький кирпичик дома. Проект соостоит из коммитов также, как и дом из кирпичиков. Чем больше коммитов, тем больше проект. Каждый коммит — это небольшая решенная задача. Когда над проектом работают несколько разработчиков, каждый из них решает свои задачи, делает свои коммиты. Например, в проекте ‘gae-init’ всего 1К (1000) коммитов. Это домик среднего размера. Наш разработчик сделал в этот проект 175 коммитов (завершил 175 определенных задач).

5 ) Dev — количество разработчиков в команде. Чтобы над проектом успешно работали большое количество разработчиков, у ребят в команде должны быть хорошо прокачены soft skills: умение общаться в команде, описывать проблему, задать вопрос, правильно реагировать на критику.

6) Stars — звезды. Что такое звезда? Это что-то вроде лайка в социальной сети. Но если лайки в социальных сетях обычно ставят на интересные посты или фотографии, то звезды на гитхабе уже ставят за крутые и полезные проекты. Например, мне нужно решить какую-то проблему. Но разработчик Артем уже тоже сталкивался с этой проблемой раньше, решил ее и поделился результатами на гитхабе. Тогда мне уже будет проще использовать его наработки, вместо того, чтобы заново делать то же самое. В этом случае я с удовольствием поставлю его проекту звезду. Артем будет видеть, что его труд не пропал зря, он сделал полезное и для себя, и для других ребят. Это ценно!

7) Year — Год последнего коммита. Этот параметр показывает когда последний раз велась работа над проектом. CandyJar сначала показывает наиболее актуальные проекты, а завершенные убирает вниз.

Что нам могут рассказать проекты разработчика?

Рассмотрим один из проектов Артема.

Проект называется “gae-init”. Написан он на Python (92%). Еще чуть-чуть javascript. В команде проекта 18 разработчиков. Это много. Всего они сделали 1000 коммитов. Из них Артем сделал 175 коммитов. Этот проект очень популярный, так как 504 других разработчиков поставили ему звезду. Это круто! Из описания проекта мы узнаем, что это движок гугла для разработки приложений. Сам проект разрабатывается на базе фреймворка Flask. Из шкалы продуктивности проекта мы узнаем, что работа над проектом ведется прерывесто (например, в 2018 с марта по июнь над проектом не работали). Рядом с некоторым квадратиками еще стоят синие кружечки. Это те дни, когда именно наш разработчик Артем участвовал в проекте.

Что в итоге?

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

Появились вопросы? Подписывайтесь на наш канал https://t.me/CandyJar, пишите комментарии. Обновляемся часто, отвечаем быстро :) Кстати, ты уже используете наше chrome расширение ? :)

--

--