It's a normal practice in the tech industry to ask a candidate for their GitHub account to see what projects they are doing, have done and what contributions they have made to other projects. While this is not a bad idea, it certainly is not the best to really get to know whether a candidate has the skills to get the job done. I said "skills", but perhaps even more important than skills is the candidate's curiosity.
The problems with checking out a person's github account and history of contributions are many:
- You can get a general overview on what work they have done, what languages they seem to code in most frequently, but it doesn't get close to explaining what problems the candidate has encountered and what solutions they came up with
- If you want an in-depth review of their skills, you need to actually read the code that person has written. Although it may be a good exercise to do, it's far from efficient as it consumes a lot of time to understand the context of the application and the code itself. Multiply this by the number of candidates you have to review and you're bound to get in a "review-overflow" state (I know... It's a bad one...).
- There are plenty of interesting skills a candidate may or may not have which cannot simply be "pushed" to github, such as DevOps skills which aren't really based on writing application code, or even soft-skills like asking for help when needed, and team-work.
You see, the problem here is that it's far more interesting to see what problems a person has encountered, and how he or she has solved them, rather than look at code.
Hence, I believe it's far more interesting to ask a candidate for their Stack Overflow account.
- First of all, if someone has no questions asked on Stack Overflow, I think it's safe to assume they haven't written much code in their life (or they are not too good at reaching out when stuck). This may not be so true in the case of not having any code pushed to GitHub.
- Another soft-skill: does the person give answers to other people's questions? If so, they are likely you help out other people at your company
- Stack Overflow gives you a fast way of scanning through all of the problems the candidate has encountered while developing apps. This is a great way of telling what experience he or she has, and generally also indicates the complexity of the apps they have written or contributed to
- You can see the evolution the candidate has done over the years as they encounter new problems. In my case, my history reveals I started out by writing some PHP code, then moved onto scripting Python, from then moved to building web apps in Python on Google App Engine (managed DevOps and scaling by Google) and now have moved onto developing web apps but managing DevOps myself and learning some SysAdmin and scaling stuff.
In general, Stack Overflow gives a better understanding on whether or not the person is a good problem solver. And in my eyes, experience doesn't even get close to being as important as being a fast learner and problem solver.