Monday, August 27, 2012

GitHub: ищем разработчиков там, где они и должны быть

Одна из отличительных черт хорошего рекрутера (впрочем, как и любого другого профессионала своего дела) – постоянное стремление к чему-то новому. Если в 2007 году в странах СНГ использование LinkedIn для поиска специалистов было своего рода новинкой, то сейчас этим уже никого не удивишь. Да и просто получить ответ от кандидата, используя типовой способ контакта через LinkedIn становится все труднее.

Более того, чрезмерная активность непрофессиональных рекрутеров уже создает определенные ограничения дальнейшему развитию этой сети. Кстати, проблема эта глобальная, поэтому говорить, что плохие рекрутеры только у нас, не приходится.:) Как подтверждение – статья Glen Cathey на эту тему.

Но к чему это я? Сегодня я хочу написать об инструменте, который пока не так популярен среди ИТ-рекрутеров, но, как по мне, заслуживает внимания. Тем более, что совсем недавно этот сервис впервые привлек внешнее финансирование (ни много ни мало – 100 млн долларов), что обещает его дальнейшее развитие.

GitHub – это площадка, где разработчики могут выкладывать свои проекты и совместно работать над ними (для проектов с открытым исходным кодом сервис бесплатный). Более подробно о GitHub можно узнать на страничке Wikipedia, а я попытаюсь обосновать, почему он может быть интересен специалистам по подбору персонала.
Первый GitHub-репозиторий был создан 12 января 2008 года, а на сегодняшний день (25 августа 2012-го) их насчитывается уже почти 3 миллиона (2 993 253, если уж быть совсем точным). Но конечно же, рекрутерам интересны прежде всего сами разработчики, которые пользуются услугами этого сервиса.

Давайте посмотрим на динамику роста пользователей GitHub с 2008 года по сегодняшний день.

На 25 августа 2012-го их общее количество составило 2 миллиона 108 тысяч человек. По-моему, достаточно веский аргумент, чтобы обратить на себя внимание IT рекрутеров.:)

Как мне удалось получить эти данные? Статистику я собирал, используя внутренние средства поиска GitHub.
Ниже таблица полей, по которым есть возможность проводить поиск среди пользователей сервиса.

prefix
description
fullname:
the users full name
repos:
the number of public repos a user has
location:
the location of the user
language:
the primary language of the project
created:
the date it was created
followers:
the number of followers

К сожалению, location здесь – это просто текстовое поле, которое пользователи заполняют по собственному усмотрению, что значительно усложняет поиск или сбор статистики по тому или отдельному региону.

Но вернемся к общей базе пользователей сервиса. 2 млн человек – вполне интересная цифра, но сколько из них являются действительно активными?

Для этого определим общее количество users, количество repositories у которых равно нулю и у которых нет ни одного последователя (followers):

followers:0 repos:0

Теперь становится понятно, что на самом деле большинство пользователей GitHub (около 58%) не так уж активно пользуются сервисом.

Попробуем отследить динамику их отношения к общей базе пользователей.

Как видим, среди зарегистрированных пользователей процент «неактивных» постоянно увеличивается.

Повод ли это говорить об ограниченном потенциале сервиса как источника информации о кандидатах? Отнюдь нет, ведь у нас все-таки есть возможность узнать что-то о больше чем 800 тысячах специалистов, которые размещают свои проекты на GitHub. Да и количество репозиториев, размещенных на сервисе, растет достаточно динамично.

А теперь посмотрим, как можно сегментировать активную часть пользователей сервиса.
Первый критерий – количество репозиториев у того или иного пользователя:

Второй – количество «последователей»:

Как видим из графиков, большинство активных пользователей имеют от 1 до 3 репозиториев. Что касается количества followers, то здесь наиболее распространена группа от 1 до 5. Тем не менее, есть 58 пользователей, у которых больше 1000 «последователей».

Как же в практике рекрутинга можно применять GitHub? 

Ищете Python разработчика в Киеве с количеством последователей на GitHub больше 10 человек?

language:Python location:[Kyiv OR Kiev OR Киев OR Київ] followers:[10 TO *]

Их всего 6: Alexey Kachayev, Igor Davydenko, Roman Vorushin, Volodymyr Hotsyk, Max Klymyshyn, Vasyl Dizhak.

Конечно, вы найдете этих специалистов и в Linkedin.

В чем же преимущество GitHub? Прежде всего, хочу заметить, что это еще один источник информации о ваших кандидатах, и воспринимать его как основное место для поиска ИТ-специалистов точно не стоит.

Но если вы:
  • ищете специалистов с опытом участия в Open source-проектах; 
  • хотите предоставить своему клиенту (не имеет значения, это внешняя компания-клиент или ваш коллега, внутренний клиент) более полную информацию о кандидате; 
  • ищете дополнительные детали о кандидате, чтобы вовлечь его в диалог; 
  • хотите отыскать специалистов, которые известны в кругах разработчиков…
…то я советую вам не упускать из виду такой ресурс, как GitHub.

Ну и еще один момент. Вы обратили внимание, что практически  у всех специалистов из предыдущего примера на GitHub был указан их личный e-mail? :) 

Но еcть один вопрос по этому сервису, на который у меня нет однозначного ответа – это поиск специалистов в определенной стране. Я уже упоминал, в поле location: каждый пользователь волен писать, что ему заблагорассудится.  Вот только некоторые из забавных примеров: «located in Planet Earth», «located in The Moon», « located in 3rd rock from the sun». Кто-то указывает страну, но ничего не пишет о городе. Кто-то наоборот упоминает только страну или штат. В таких условиях очень легко потерять нужного кандидата.
Один из простых вариантов решения проблемы – указание через OR  всех вариантов написания страны и ее наибольших городов. Например, для поиска в Украине эта строка может быть такой:


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

12 comments:

Joes said...

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

Dmitriy Budashny said...

language:Python location:[Kyiv OR Kiev OR Киев OR Київ] followers:[10 TO *]

Проблема в том, что запрос покажет только тех, у кого проектов на Python больше, чем проектов на других языках.

Victor Soroka said...

"Joes said...
К слову, их больше чем 6 - я забыл прописать город, думаю что не только я."

Да, похоже Location одно из слабых мест GitHub... Кстати я так и не смог узнать у какого количества пользователей это поле пустое. Есть идеи как можно это сделать?

Victor Soroka said...

"Проблема в том, что запрос покажет только тех, у кого проектов на Python больше, чем проектов на других языках."

Да,согласен.. похоже обойти такое оганичение никак нельзя

ziDev said...

Идеи по автоматизации процесса
- можно использовать github api
- к выборке можно применть алгоритмы классификации и datamining'a

Victor Soroka said...

Да, можно было бы попробовать написать простенький сервис который позволит сделать поиск по GitHub более user friendly для рекрутеров. Например, страна это пикликст и в зависимости от выбраной страны отправлять запрос по API который включает в себя список всех больших городов (в разных вариантах написания). Есть заинтересованные?

Pavel Drobushevich said...

Есть ещё одна узкая проблема с поиском по языку. Многие репозитории содержат код на разных языках и насколько я понимаю в поиске учитывается primary язык, который собственно высчитывается по количеству строк, а вот это и плохо. Я видел хорошие проекты на erlang, у которых стоял javascript, потому что erlang код очень компактный, а web интерфейс на js, который просто так, сбоку. Или например для js хреново с зависимостями, поэтому часто в проект кладёшь сторонние библиотеки и js накапливается. Вообщем как-то так, сложно, у меня вообще есть private проект, там так полдюжины языков...
Ещё одна штука. В гитхаб, чтобы поработать с другим проектом, надо форкать и он появляется в твоих репах. По этому я бы, например, при анализе различал:
- если это собственный проект, то интересно число интересующихся этим проектом (форки, вотчеры)
- если это форк чужого, интересно сколько было сделано этим человеком пулреквестов и сколько из них принято.
И вот второе гораздо интереснее всего. Так как показывает насколько человек командный игрок, как он работает с чужим кодом и презентует его.
Ещё есть интересный проект по ещё большей социолизации гитхаба
http://coderwall.com
LinkedIn кстати именно у этого проекта стырил skills с endorse. Только в отличии от LinkedIn в этом проекте в скилы ещё попадают автоматом репозитории на этих языках. И ещё интересная штука, что можно указать компанию и оно собирает рейтинг компании.

Victor Soroka said...

Паша, спасибо за детальный комментарий.
На Coderall обязательно посмотрю. Как там у них с поиском?:)
По поводу Endorsment то что то похожее пытался делать и BranchOut. LinkedIn конечно интересен прежде всего из за своего масштаба.

Pavel Drobushevich said...

Нету у них поиска :) Но они от горшка полвершка, мот ещё сделают.

Pavel Drobushevich said...

Попалась в ленте. Статья конечно техническая, но может будет интересна
Analyzing Millions of GitHub Commits what makes developers happy, angry, and everything in between?
http://www.igvita.com/slides/2012/bigquery-github-strata.pdf

Victor Soroka said...

Очень занятная статистика.
Спасибо

plutov.by said...

Возможно, кому-то будет интересно, как узнать свой самый продуктивный день в GitHub - http://plutov.by/post/github_commit_day

Post a Comment

Related Posts Plugin for WordPress, Blogger...