Absolutely not. I've interviewed people who had amazing Github profiles who couldn't write a simple loop on the whiteboard. Either they hadn't written the code in their github, or they code only by copy/paste.
ps. It might be a good idea to be slightly more gender neutral in your question. :)
About your PS: using "he" and its associated pronouns as the neuter pronoun is a well-established and common occurrence. It's not being sexist, or non-gender-neutral, it's just a way to have neuter pronouns without awkward constructions such as "they" or "he/she". Those are fine, but they read awkwardly to some people. Using "he" is a perfectly acceptable alternative.
I think the whiteboard experience is very loosely correlated to programming ability and hope that the simple loop fiasco was an exaggeration. Many good programmers have a great deal of social anxiety, and being put under the microscope is not how they work. A better test of their prowess would be to hire them as a contractor if they can talk shop and have some live projects/open source code out there that isn't obviously copied. Short of that you could always stick them in a room for half a day, with an internet connection for their own laptop, ask them to solve a problem, then have them explain their rationale, stepping you through the code when they are done. Either of these would be a much better measure of how the candidate would perform for you if hired.
@jedberg is totally right!
It's like judging people by the way how they pack their suitcase.
To be perfectly honest, you can obtain metrics from Github that have nothing to do with coding, but behavioral analysis. I'll not go into details, because I think it's an unfair advantage.
Github is mostly used for personal projects. You can find a lot of dotfiles, frameworks, many smaller and some larger projects done for a hobby/friend/school/course or out of frustration/boredom.
What my Professor did is the way to go! Just hire that guy for a project, see how it's going and come together in a meeting to talk about the code, the solution and rationale behind the thinking. Then either conduct another team project to understand how he integrates in your company, or just hire that guy. Simple as that.
well, honestly and with a guilty tone I write a lot of code, work on projects and do stuff, close to good at github.
But, when put to test on my ability with time limits and sneak peeks, I do tend to forget why I'm writing that loop for.
I know several ROM/app developers in the Android community (including one close friend) that have been approached solely based on their contributions to their own Github account and organizations they are a part of on there. At least one of them was not even a college graduate and was offered competitive pay + benefits by several different companies. However, each also ended up going through at least part of the traditional interview process as well (phone calls, in person, etc). I don't believe any of them had to write code though.
In all of the cases, the companies were interested in not only their Android development skills, but that they had shown they could collaborate/communicate well with others. Each had also been a core contributor a major Android ROM project for at least 2 years, besides maintaining their own side projects.
Here is my stored.
I was hired via somebody looking at my Github repo. My English wasn't that good to have a good interview with many company I tried before. My Github wasn't that great to attractive top notch company. My skill isn't that good to be a killer dev.
I was just a so-so dev who really loves to code, and the company hired me based on that. Only looking at my Github repo.
I would still want to spend some time talking with them. It's rarely all about just pure coding ability. I want to know if they can communicate effectively and if they can work as part of a team. If someone showed a great set of open source contributions before interview, I wouldn't necessarily need to see them code in the interview and would focus on the other things important to the role.
It's also worth noting that even good developers might not understand GitHub.
I worked with a guy (around 8-10 years experience, and a good senior dev/technical architect) who spoke to me about someone he was interviewing for a mid-level role. He told me that his GitHub profile was great, and that he had a ton of great code and specs that he had written. In fact, he had forked most of this great code, and the only code that was his was a few tutorials from some books he had read to try and learn C# a year or two ago.
He wasn't a bad developer by any means. He didn't get the job because we couldn't get the budget to land another dev. However, there's a big difference in perception between a good developer on merit, and someone that has written some commonly used tools.
I still want to see the thought process behind problem solving, and associated communication, especially when in unfamiliar territory - code output alone doesn't show that.
But the existence of a github account is strongly correlated to a hire. It's depressing how many candidates haven't even heard of github...
These days, now that word has gotten out, it's not unusual to see fake GitHubs, with an unmodified fork of another project in say. HR is not equipped to evaluate this, it needs an engineer to git clone and take a look.
No. I wouldn't hire anybody based solely on one signal.
Great hiring requires evaluating more thoroughly than that. Have no less than one conversation with any candidate you're considering. Get a feel for their history, how they communicate, if they've any experience or passion in your domain, etc. E.g. All else equal, I'd more likely hire a candidate for my music start up that had experience integrating music apis, was an avid music lover, etc. That's not required, but helpful.
And yes, I'd still have any candidate write code in an interview. Too many times simple sql queries, OO, or basic understanding of data structures have defeated candidates, despite code samples that implied otherwise. If a candidate can't write simple code to solve simple problems, they likely can't help the company solve much bigger problems efficiently.
Thanks for the info. My point was more to the tune of - when you can tell so much more from a candidate's github work -- his algo's, coding, coding style, commit notes, commit times, descipline.. why would you want to poke his coding again ? Why not just discuss his prior github work and clear the coding part of his interview ? Agreed on the need to check if you can work with him, team work, problem solving ..etc. But isn't github eliminating the need for vetting coding ? Fake github profiles is surprising! Never heard of that before!
Always interview the person. Always give them a code test - at the very least a simple 30 minute test.
My current employer currently hires people without doing any sort of code test, and we have recently had to let people go because they just weren't very good. 30 minutes could have saved us a lot of wasted time and money.
Absolutely not. Online presences, while a plus, should never be used as a hiring requirement. Also, what if they contribute to a bunch of private repos (e.g. their previous company)? You have no way of knowing this beyond what they will tell you.
I'm going to support what could perhaps be a unpopular opinion - there is a lot more to a good programmer than simply writing good code.
I'd take communication skills over someone's ability to optimize a while-loop any day.
As a slightly tangential argument for hiring in general, I would like to offer that no matter what position you are hiring for, only looking at one facet of someone's abilities is very poor judgement.
Another useful angle is to investigate their personal domain; who is hosting DNS, are they using DNSSEC, do they run their own code on platforms they have built-out? Where are their MX pointing?
Gives a good understanding of how much or little they understand implementation & deployment.
And, of course, check that they can sign their e-mails with their own PGP key :)
Only if the job I was hiring for was to write code in a vacuum or a closet. If they needed to interact with customers or my team, I'd have to assess their personality as well.
[+] [-] jedberg|12 years ago|reply
ps. It might be a good idea to be slightly more gender neutral in your question. :)
[+] [-] benaiah|12 years ago|reply
[+] [-] randomdata|12 years ago|reply
[+] [-] meerita|12 years ago|reply
[+] [-] delimitted|12 years ago|reply
[+] [-] X4|12 years ago|reply
Github is mostly used for personal projects. You can find a lot of dotfiles, frameworks, many smaller and some larger projects done for a hobby/friend/school/course or out of frustration/boredom.
What my Professor did is the way to go! Just hire that guy for a project, see how it's going and come together in a meeting to talk about the code, the solution and rationale behind the thinking. Then either conduct another team project to understand how he integrates in your company, or just hire that guy. Simple as that.
[+] [-] bjoe_lewis|12 years ago|reply
[+] [-] unknown|12 years ago|reply
[deleted]
[+] [-] unknown|12 years ago|reply
[deleted]
[+] [-] yareally|12 years ago|reply
In all of the cases, the companies were interested in not only their Android development skills, but that they had shown they could collaborate/communicate well with others. Each had also been a core contributor a major Android ROM project for at least 2 years, besides maintaining their own side projects.
[+] [-] kureikain|12 years ago|reply
I was just a so-so dev who really loves to code, and the company hired me based on that. Only looking at my Github repo.
[+] [-] penguat|12 years ago|reply
[+] [-] SimonPStevens|12 years ago|reply
[+] [-] lhnz|12 years ago|reply
You have to look at the code to see if they're good, and you should have a conversation about it to find out their thinking process.
I'd always give a coding/architecture/design test before getting them in to interview as this would allow me to see how they solve new problems.
[+] [-] EnderMB|12 years ago|reply
I worked with a guy (around 8-10 years experience, and a good senior dev/technical architect) who spoke to me about someone he was interviewing for a mid-level role. He told me that his GitHub profile was great, and that he had a ton of great code and specs that he had written. In fact, he had forked most of this great code, and the only code that was his was a few tutorials from some books he had read to try and learn C# a year or two ago.
He wasn't a bad developer by any means. He didn't get the job because we couldn't get the budget to land another dev. However, there's a big difference in perception between a good developer on merit, and someone that has written some commonly used tools.
[+] [-] brey|12 years ago|reply
But the existence of a github account is strongly correlated to a hire. It's depressing how many candidates haven't even heard of github...
[+] [-] gaius|12 years ago|reply
[+] [-] mzarate06|12 years ago|reply
Great hiring requires evaluating more thoroughly than that. Have no less than one conversation with any candidate you're considering. Get a feel for their history, how they communicate, if they've any experience or passion in your domain, etc. E.g. All else equal, I'd more likely hire a candidate for my music start up that had experience integrating music apis, was an avid music lover, etc. That's not required, but helpful.
And yes, I'd still have any candidate write code in an interview. Too many times simple sql queries, OO, or basic understanding of data structures have defeated candidates, despite code samples that implied otherwise. If a candidate can't write simple code to solve simple problems, they likely can't help the company solve much bigger problems efficiently.
[+] [-] ceekay|12 years ago|reply
[+] [-] aaronsnoswell|12 years ago|reply
[+] [-] wldlyinaccurate|12 years ago|reply
My current employer currently hires people without doing any sort of code test, and we have recently had to let people go because they just weren't very good. 30 minutes could have saved us a lot of wasted time and money.
[+] [-] jaseemabid|12 years ago|reply
[+] [-] contingencies|12 years ago|reply
[+] [-] kingnothing|12 years ago|reply
[+] [-] UK-AL|12 years ago|reply
[+] [-] txutxu|12 years ago|reply
[+] [-] Dirlewanger|12 years ago|reply
[+] [-] mbesto|12 years ago|reply
I'd take communication skills over someone's ability to optimize a while-loop any day.
As a slightly tangential argument for hiring in general, I would like to offer that no matter what position you are hiring for, only looking at one facet of someone's abilities is very poor judgement.
[+] [-] dingaling|12 years ago|reply
Gives a good understanding of how much or little they understand implementation & deployment.
And, of course, check that they can sign their e-mails with their own PGP key :)
[+] [-] alan_cx|12 years ago|reply
[+] [-] kohanz|12 years ago|reply
[+] [-] seivan|12 years ago|reply
[+] [-] SmokyBourbon|12 years ago|reply
[deleted]