GitHub

Поиск профилей на GitHub

Глобальная социальная сеть для программистов, которая выполняет одну важную функцию - возможность совместной разработки. GitHub полезен для всех жителей планеты как один из источников Open Source движения. Кроме размещения кода GitHub предоставляет множество дополнительных функций, например, возможность публиковать книги, статьи и распространять их без первоначального финансового вложение. В начале 2019 года GitHub запустила краунфандинговую площадку, поэтому любой проект может заявить о сборе средств и любой желающий может принять участие в его финансировании. Для рекрутeров это один самых важных инструментов для поиска кандидатов. Такое сосредоточение программистов со всего мира можно найти только на GitHub и StackOverflow.

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

Внутренний поиск

Самый простой, а вместе с тем и самым проверенным способом поиска профилей пользователей на GitHub является система внутреннего поиска. Заходим на страницу https://github.com/search/advanced прокручиваем страницу до конца, до раздела “Users options” вводим нужные нам параметры. А именно нас интересуют всего 2 параметра и два поля, которые помогут нам отфильтровать и найти то что нам нужно. Первое это географический признак - “From this location”. В этом поле можно писать как на английском языке, так и на русском и даже сокращённо, например, СПб или Spb. И второе поле - это язык программирования “Working in this language”. Например, для поиска фронтенд разработчиков нужно выбрать JavaScript. Нажимаем кнопку “Search” или клавишу Enter и получаем результат.

Рис.3.1.

Как я уже писал ранее GitHub предоставляет возможность огромное количество дополнительных функций. Одной из них является возможность размещать и публиковать статические сайты. Некоторые разработчики публикуют свои блоги, портфолио или резюме с помощью GitHub Pages. Получается, что среди великого множества кода можно искать резюме кандидатов. Обязательно используйте данный способ поиска, потому что он ведёт к резюме и контактам кандидатов, а это ускоряет процесс. Итак в верху найдите поисковое окно и введите поисковый запрос

extension:json filename:cv "russia" backend

Вместо json можем написать md или tex, вместо cv - resume, а вместо frontend - backend или javascript. Слева будет меню разделов нам нужны два это “Code” и “Users”. Открывайте репозитории и профили и изучайте информацию. И обязательно авторизуйтесь на сайте иначе раздел “Code” будет для вас закрыт для просмотра.

Рис.3.2.

Как получить эл.адрес пользователя?

Из предыдущих двух примеров мы узнали, не только, то как искать профили кандидатов, но и получить их контакты. Как минимум эл. почту. Мы можем получить контакты пользователя непосредственно в профиле слева под фотографией размещаются контакты и короткая информация пользователя, если он решил их указывать. И второй способ это попытаться найти резюме кандидата. Но что делать если профиль есть, а резюме нет. Как получить эл. почту и отправить ему сообщение? Есть несколько простых способов получить контактную информацию. Часть приёмов покажу сдесь, остальные будут показаны в главе “Python scripts”.

Третий способ получить эл. почту кандидата - это использование API GitHub. Открываем новую вкладку в браузере и вставляем ссылку. Вместо xxxxxxx пишем username пользователя.

https://api.github.com/users/xxxxxxx/events/public

Для примера возьмём мой профиль, возьмём username и вставим в ссылку.

https://github.com/Dmitryi - ссылка на мой профиль
Dmitryi - username
https://api.github.com/users/Dmitryi/events/public

Затем что бы среди этого кода найти адрес эл.почты нажимаем Ctrl+F у вас появится окно поиска либо вверху либо в низу и вводим знак собачки “@” (без кавычек).

Четвёртый способ поиска адреса эл. почты заключается в поиску в комментариях репозиториев пользователя.

В профиле пользователя нажимаем на вкладку “Repositories” и выбираем первый репозиторий, который создан самим пользователем. Если репозиторий изначально был создан не нашим кандидатом, а скопирован у другого, то под названием репозитория увидите название “Fork”. Пока их не трогайте. Кликаем на название репозитория и заходим на главную страницу. Обратите внимание на меню вкладок “commits”, “branch”, “releases”, “contributor” и “MIT”. Нам нужна первая вкладка “commits”, нажимаем на неё. Видим все комментарии к файлу. Справа каждому файлу есть три кнопки “Файл”, “рандомный набор латинских букв и цифр” (их как правило 7) и “<>” (угольные скобки.). Нам нужна средняя кнопка из семи букв и цифр. Нажимаем и в строке отображения url адреса видим примерно такую ссылку

https://github.com/Dmitryi/gocareera/commit/48d3e7f93d9f0b3074978024372f24eaaac9d936 - исходная ссылка
.patch - добавляем в конце
https://github.com/Dmitryi/gocareera/commit/48d3e7f93d9f0b3074978024372f24eaaac9d936.patch - получаем страницу с результатом

В итоге получаем новую страницу с кодом и со всеми данными. В верхнем левом углу будет заветный эл. адрес.

Рис.3.3.

Пятый способ для того что бы найти эл. адрес пользователя пригодится в том случае если у пользователя есть репозиторий с использованием JavaScript, Ruby или Rust. В ситуации с ЯП JavaScript нам понадобится файл package.json, в репозитории ЯП Ruby необходимо найти файл filename.gemspec, а в ситуации с ЯП Rust откройте файл Cargo.toml. Хочу сразу предупредить, что данный способ не является надёжным с точки зрения поиска эл. почты, но в качестве дополнительного источника рекомендую использовать. И несмотря на то что разработчики далеко не всегда указывают свои контакты в этих файлах, данный метод очень простой и не требует забираться в комменты. Всё что вам нужно зайти в репозиторий проекта, найти файл либо package.json либо Cargo.toml, в зависимости от ситуации. Данные файлы всегда находится в корне проекта, а файл filename.gemspec, может находится как в корневой папке проекта, так и в других папках. Открываем файл и находим раздел autor. На скриншоте ниже видно как разработчик указал своё имя и фамилию, а так же эл. почту.

Рис.3.4.

Шестой способ поиска профилей кандидатов на GitHub я использую тогда, когда найти сам профиль кандидата, с первого раза не получилось. Предполагается, что нам известно имя и/или фамилия программиста или его никнейм из другой соц. сети. В левом верхнем углу, в поле поиска, вставляем или пишем ивестные нам данные. И иногда так получается, что профиль не находится. Для начала попробуйте убрать из поиска имя кандидата. Дело в том, что пользователи именно имена могут писать по разному, а как ни странно фамилии стараются писать одинаково. В результате вы получите список однофамильцев. Этот список может быть большим на 50 страниц, но всё равно это уже что-то с чем можно работать. Моя практика показывает, что кандидаты как правило используют одни и те же фотографии в профилях разных соц. сетей, так что это может помочь.

А как быть если и такой метод не принёс результат? Поиск по фамилии не обнаружил профиль пользователя?! В этом случае конечно есть gitlab и bitbucket. На этих сервисах тоже можно поискать, но остановимся по github. Как видно из рисунка ниже мой поиск по имени и фамилии не дал ничего и только во вкладке Code есть один результат. Данную вкладку я как раз и предлагаю использовать в подобных ситуациях. Заходим во вкладку Code и видим фамилию и имя, совпавшие с нашим поиском, а так же никнейм. Кстати именно поэтому никнейму я нашел профиль пользователя, которого искал. Идентифицировал пользователя только по фотографии.

Рис.3.5.

Седьмой способ Очень простой, но с важной оговоркой. Сначала о самом методе получения эл. почты потенциального кандидата. В репозиториях кандидата ищем репозиторий (прошу прощения за повторения) с названием dotfiles. Дело в том, что ОС GNU Linux и Mac OS позволяют пользователям настраивать различные программы, в том числе и систему контроля версий git. Следовательно в репозитории dotfiles находим файл gitconfig и открываем его. В самом верху можем увидим имя и фамилию пользователя и эл. почту. К сожалению не у всех пользователей есть репозиторий dotfiles, а если даже и есть, то не все создают конфигурационный файл для git.

Рис.3.6.

Внешний поиск

Искать профили пользователей на GitHub можно и с помощью поисковых систем Google, Yandex, Duckduckgo. Однако поисковый запрос, который мы создадим будет искать и по компаниям и группам какого-нибудь митапа или мероприятия. Это означает, что вам придётся больше просматривать и в ручную выбирать профили. С другой стороны возможно получится найти профили тех кандидатов, которых при внутреннем поиске не удалось найти. Поэтому возьмите себе на вооружение и этот способ поиска кандидатов. Вот пример поискового запроса.

site:github.com -intitle:"at master" -inurl:"tab" -inurl:"jobs." -inurl:"articles" "React" "Russia"

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

Полезные советы

  1. Не учитывайте и не делайте никаких выводов о профессиональных навыков пользователя по тому сколько у него репозиториев и сколько он делает комментариев или пишет ошибок. В реальности чаще всего эта информация не имеет никакого отношения к уровню профессиональных навыков программиста.
  2. Не стоит путать то на чём программист пишет (язык программирования) на работе с тем, что выложено на github. Да это разные вещи. В коммерческой разработке программист может ежедневно использовать PHP, а в репозитории будут проекты в которых использован Python или Ruby. Поэтому когда будете писать программисту сообщение укажите, что вы нашли его проекты на GitHub и в соответствии с этой информацией предлагаете ему рассмотреть вакансию. Это вам позволит быстрее понять друг друга.
  3. Бывают и пустые аккаунты. Это означает, что пользователь удалил всю информацию, но пустой профиль остался. В этом случае контакты получить с GitHub не возможно.
  4. Старайтесь найти профили пользователя на других ресурсах, потому что GitHub может здорово помочь, но и его всё таки не достаточно. Для рекрутера, кроме задачи найти кандидата и его контакты стоит ещё одна важная задача - это правильно идентифицировать пользователя и его навыки. В главе “Python Scripts” мы коснёмся как искать профили в других соц. сетях, а в главе “Стратегия” будут писать и про идентификацию пользователя.