Your GitHub profile can increase the chances of landing your next programming job, but it can also act as a double-edged sword.
The résumé filtering challenge
Some companies rely on GitHub profiles when evaluating software engineers and dismiss candidates that don’t have one. People tend to have radically different opinions about whether this is a good practice.
Dismissing a candidate just because their GitHub profile is either empty or non-existent should not be the default approach. Having said that, it is still widely used as an additional filter in the interview process, and for good reasons. Filters need to be in place in order to reduce the number of candidates that get through the whole interview process to save the time and cost of hiring.
Prior to organising an interview with a candidate, a résumé goes through a screening process and most of the time it’s pretty hard to make an informed decision with the limited information available on the document itself. Links to other online resources such as a personal website or blog, a LinkedIn profile, or GitHub repositories are usually appreciated and tend to give more credibility to a résumé if they are already in it, regardless of the actual quality of the content of those links. No one enjoys googling candidates’ names to try and find some additional information about them. If they are present you are saving the hiring manager some work and it will have an initial positive impact, it’s just basic psychology.
Some companies go a little too far and use Git Awards to find candidates based on the programming languages they are recruiting for, or at least it happened to me a few times already. It might make sense, but I’m not sure it’s a very effective approach.
When a résumé is not very impressive or convincing, hiring managers tend to fall back to other sources like GitHub to dig a little bit more into the profile of the candidate in search of more information. A badly written resume together with a GitHub profile that is empty, non-existent, or full of badly written code will definitely increase the chances of your application being discarded.
The decision should not be made only due to the lack of a GitHub profile though, but more due to a combination of things. Rejecting applications due to the lack of open source projects is just an excuse for being lazy and not willing to review profiles appropriately. If candidates have the right experience on their resume but a not-so-interesting GitHub profile, they should still move forward in the interview process, there is no excuse for not doing so. A quick call is still a cost-effective way to gather a little more information if it’s needed.
Empty or irrelevant GitHub profiles are also the standard. The opposite is usually pretty rare, and that’s where a great GitHub profile can have a big impact. Someone that built some great projects or has made good contributions to some open source software will probably be prioritised over other candidates. And it’s not because they are considered more passionate, but because their skills are easier to validate. Developers can be passionate about the work they do within the companies they work for, it’s just harder to tell without any visibility.
Most of the code we write is private
Most developers spend the majority of their time working for companies that don’t really tend to open source software by default. Even personal projects are often kept in private repositories.
While it’s understandable that most developers don’t really want to commit extra time to contribute to open source software, I am sure most of them make use of open source technologies every day. It should be expected from experienced people to contribute to these technologies since they are powering their software running in production, even if it just means opening up an issue with the steps to reproduce it. If you are not doing it, I would strongly encourage you to do so.
In addition, if you are writing great production code every day for your company I believe you should have some good quality code that can be open sourced and does not really need to be private. Open sourcing can not only help your personal profile but also the company’s profile trying to hire the best people. Make open sourcing software part of your company culture.
Be aware of the pitfalls
Your open source projects should have tests, documentation, contribution guidelines and so forth to actually count. A bunch of trivial and unfinished projects can do more damage than good.
The person reviewing your résumé might not find enough information about your past experience. If all he can find on your GitHub is a bunch of empty or unfinished projects, it will probably cause your application to be discarded right away.
My next advice might sound bizarre but I actually experienced it quite a few times when hiring for Scala developers. If you are applying for a position that requires a particular skill, and you put that skill at the top of your résumé, then please avoid having a bunch of recent tutorial projects using that technology on GitHub. The credibility of your résumé will go straight down the drain. Just be honest, or if you think you can fool whoever is going to interview you later on about your level of experience, at least, keep those tutorials private.
How would a fast track actually work?
Showcasing your coding skills can help getting more visibility during the initial part of an interview process. It’s quite standard to have to complete a dreadful coding exercise prior going through a full interview process. Depending on the position, it might make sense to allow a candidate to skip the coding test if there’s already a bunch of good quality code on his GitHub profile.
In addition, most of the best developers out there will probably be hired pretty quickly after they start to look for a new place to work. Having a fast track in your interview process could be beneficial to speed things up for some obviously skilled developers and outpace the competition. They are the ones that usually won’t sit around for weeks waiting for your feedback.
It’s worth mentioning that I’ve also managed to bring in candidates that built some great open source projects but then turned out to be a complete disaster in a face to face interview. So, yes, you can have a great portfolio on GitHub but if you don’t demonstrate a good attitude towards teamwork, a solid software design knowledge, or adequate communication skills, it won’t guarantee that you will get through the rest of the interview process.
You can’t make your hiring process 100% fair, you can just try to improve its effectiveness. The key is trying not to waste everybody’s time by bringing in candidates without the right skill set. Companies tend to compromise and prefer the risk of discarding good candidates rather than hiring bad ones.
If you haven’t been on the other side of the fence reviewing résumés, please try it out. Pick random software engineers on LinkedIn and try to get an idea of who you would bring in for an interview. You’ll quickly realise it’s not really straightforward to evaluate software developers without looking at some code, and you will probably learn how to make it easier for people to review your profile the next time you are looking for a new place to work.
Showcasing your coding skills can help increase the credibility of your résumé. It’s easy to write down words on a document, but demonstrating actual skills is hard, and evaluating them effectively within a short period of time is even harder.