In this piece, I am going to cover how to:
- utilize the built-in search engine of GitHub to find software engineers,
- X-ray GitHub to find software engineers,
- find developers based on their code contribution, and
- contact the potential candidates you have found.
1. Searching for GitHub users
GitHub has a pretty advanced built-in search engine here: https://github.com/search/advanced.
The Boolean operators AND, OR, and NOT are supported, but the maximum number of operators you can use is 5. Some searches will end prematurely when the server times them out, but I have only experienced this when listing millions of results. You can recognize this timeout if you see this exclamation mark.
Another limitation of this engine is, that you have to fit in 128 characters.
Although finding users is not the primary usage of this search engine, it’s pretty easy to run a search for users from a certain location who are programming in a certain language — they for sure sound like potential candidates :).
To start, scroll down in the search site linked above, type in a location, then hit the Search button.
Although the given example of San Francisco, CA implies that adding the state (US) or country (rest of the world) after the name of the city is the best way to use this field, that’s actually not true. Searching for “San Francisco, CA” will give you user profiles who have set up either San Francisco OR CA as their location, as seen on the picture below.
This is still useful, but certainly not what you would expect with this writing format. So if you are determined to only see the results who describe the location name with adding the state/country (this can be pretty useful if you are for example looking for people from York, UK) you will have to change this:
Note: This editing can’t be done on the original search window, just on the results page. Keep in mind that some people fill out the location field with just the country, while some others fill out the city. It’s best to make sure you have searched for both options.
The next step is to narrow down users who code in a specific language. The filters on the left side can help you choose from the most popular languages in the area. However, with a bit of URL editing, you can essentially choose any programming language.
If you want a programming language which is not present on the list, just change the ‘Python’ in the URL — for example for Visual Basic software engineers in London use this URL:
The spaces will be filled out automatically.
GitHub classifies the repositories into the following languages — essentially this is your menu.
2. X-raying GitHub
Finding people who are using one programming language might be enough for you, but often you need proficiency in at least 2. For that, you are going to need the ability to X-ray Github.
Unlike Stackoverflow, GitHub has no part in the URL which directly shows you that a certain page is a profile page. So when you are searching GitHub you have to use a similar technique than what you can do with LinkedIn, locate certain parts of the page which are specific to user entries. An example for that might be the text “contributions in the last year” found here.
Check this search to find just user profiles.
The minimum you would like to search for is again the location and the programming language, and that is extremely easy: just add it to at the end of the string. The language is not visible in the rendered page, but is in the source code.
You can add more locations with an OR statement. Keep in mind that some users will have cities, some will have countries. You can use the languages from the table above.
3. Searching for codes on GitHub
Software engineers use the internal search engine of GitHub to find codes from other developers (and the “folders” storing codes, known as the repositories). After you find the code, you can obviously check who created/contributed to it. This presents the opportunity to find people based on the output of their work. What better way can you imagine to narrow down your pool to people who are skilled for the job?
There is unfortunately a downside with this search method: you can’t filter based on location. Adding additional criteria on the results page in the form of location:Paris does not change anything in the output as well. So this method is mostly useful for virtual opportunities or for companies with relocation packages.
The idea requires cooperation with your Hiring Manager. Ask them about a function, a short piece of example code the future hire will work with, and might currently use as well. Then you can return to the GitHub advanced search and use it to find codes of software developers containing the part provided by your HM. Once you find a code, you found the user who created it.
Let’s use the inverse square root implementation in Quake 3 (found here, supposedly it’s a difficult code :)) as an example to show this in practice. It’s C++ code, so you either have to select C++ in the dropdown list of the languages or use .cc or .cpp as extensions.
Here is what you will get, a ton of software developers using float invsqrt in C++ in a similar way than in the code used by your company/client.
The key with this is obviously your connection with the Hiring Manager, and whether he/she can come up with a specially important code example.
4. Finding contact details of candidates found on GitHub
Needless to say, the hunt for contact details is going to be the most difficult part while sourcing on GitHub. Thankfully in more and more cases there is an email address or a website listed on the profile, and you can contact your potential candidate on these. Things get a little more complicated if this information is not given. One of your options to contact someone is to use one of the extensions mentioned in the main post, just the other way around — finding other profiles based on the GitHub profile. Alternatives to that are running a Google Image Search (right click — search Google with this Image), or running a username check on namechk.com
Previously, there was a wonderful trick with an API link which showed you the email address of most users but that appears to have been addressed by GitHub and is not showing all addresses anymore. You can still check it, because some users might still have the addresses and/or you can find other useful information like a Gravatar profile link.The API link is https://api.github.com/users/flavienlaurent/. For any other user, just change the “flavienlaurent” part of the username.
This post first appeared on sourcingrecruitment.info