Why do employers check job candidates' GitHub profiles?

Ben Halpern on May 18, 2018

It seems to me like a pretty weak way to get an apples-to-apples impression of a candidate, but I’d love to hear others’ thoughts.

markdown guide

If a candidate is active on Github I like to check their profile to get a sense of what they are interested in and what their code looks like.

If a candidate is not active I don't hold it against them, I just ask different questions.


I do the same. Since I'm usually asked to do the tech part of the interview process, I think it is a nice and easy way to extend the picture of the candidate. But it is not a must-have.

I also like it, because I'm curious and love to get more inspiration. I try to keep this out from the evaluation though. I say "try", because once looked at the profile we're unconsciously biased anyway. But I hope I still gave every candidate an equal chance, no matter if and how much they have shown publicly.


My issue with it is that not everyone has free time to do a lot on GitHub. That's mostly why mine's full of half finished projects.


Half completed person projects > nothing.

When I have to look it is more about 'what problem are you trying to solve' or 'are they following best practices for the ecosystem'.

I never discount 1/2 completed personal projects. They show character.


Squeeze every minute out of the day ⌚️⌚️⌚️


The question as it’s stated sounds to me as “Why do people love cherry? It seems to me a pretty weak way to eat till full.”

I believe nobody makes a decision on the candidate based on GH profile only. But if Jean has one and John has none, it tells me that probably Jean’s more engaged in development in general and in open source in particular.

I like to work with people who love what they are doing.

Also, GH profile completely covers the write-code/whiteboard part of the interview. If the candidate loves to do whiteboard—fine, let’s do whiteboard :)


It also could just tell you that Jean has more free time and John has none.


Which roughly means Jean is a better developer. Period.

It might also mean John doesn't publish what he writes.
Also upon further inspection of Jeans code we may find horrible spaghetti code.
Your period was way too much.

Or it means John has a family and obligations outside of work?

If you are trying to imply Jean obviously has not, that’s not the case.

Free time is not taken from family; it appears because doing OSS and publishing code on GH [roughly] makes anybody a better (and therefore faster) developer.

Better developers have more free time even during working hours. That simple.

That is not true. Good developers use their working hours to get more work done. Not to work on OSS (unless their employer wants them to do that). If I finish my work early (which I regularly do), I pull tickets from the backlog. There is always more work to do.

unless their employer wants them to do that

We have a liberty to choose an employee, the slavery has gone. And I see no reason to work for an employer forbidding OSS contributions.

I pull tickets from the backlog

I am a strong believer in the necessity to grow up as a developer in different areas, which is not always possible just closing the backlog. I advocate doing OSS for the self-growth. And seeing the GH profile that clearly shows such attempts I unintentionally increase the candidate’s “reputation.”

The last but not the least, if I may, why would you bother doing this: github.com/jmkoni/record-collector ? I am sure the answering this question to yourself might shed a light on what do I mean.

Yes? But the employer is paying the employee for their time and expects them to work on, well, WORK while they are at work. And, while you might not see a reason, I've worked at plenty of jobs where my employer did not want me working on OSS during the day. They were perfectly good jobs and I liked what I was doing.

And that project? That was a random code challenge that I decided to put up on my github. Not really OSS... just a garbage Rails project.

You are speaking from a place of IMMENSE privilege and I hope you can recognize that at some point. In the meantime, I am happy to not be working on a team with you.

Also, I'm a terrible example. I don't have kids and actually have 8 hours to work on some dumb project.

I did not make a statement in the vacuum, I was answering a particular comment about having more free time.

Under these circumstances my period is fine.

Periods rarely are fine but setting that aside you took one of many possible explanations for why one person might have more free time than another and portrayed it as vastly more likely than any other explanation.
Also, the assumption that better developers have more time during working hours is faulty, if I find myself with excess time at work I do one of three things.
1) find a way to add value to the project I'm working on either by testing or by finding ways to improve the Project.
2) Go off the clock and study up on new Technologies.
3) Do some small tasks for one of my other customers who always seem to have something lying around that needs a helping hand.

All this being said I have now been convinced that is time to clean up my Github and add a nice new project since the qualtiy of code I currently have on it is horrible stuff I wrote while watching cartoons.


I like doing this but not as a requirement. Basically, if you have a project on GitHub, I can bring it up at your interview and ask you things like:

  • Why did you go with this arcitecture? Did it end up being ideal and could you have done it another way?

  • This code looks really interesting, can you explain it to me?

Especially when I interview senior developers it's helpful to know how well they can explain a concept to a stranger as that's a big part of their job.

But a GitHub account is never a requirement. It simply helps steer the interview.


Here is my personal opinion about why I'd appreciate some GitHub account and why I value organizations that do.

  1. A public repo shows initiative. Either you took the initiative to learn something or you built something and have the courage to share it. In the end, you did more than what is expected of you.

  2. Open source enriches us all. Think of Linux and the millions of servers deployed thanks to it.

  3. It shows initiative. It is a special kind of action. Most people only react to change. But to initiate it, is quite different.

Any organization that cares enough to take a look at my profile instead of the average white board test is the kind of people I'd like to collaborate with.


I agree, it is a good way to determine a candidate's ability and interest in their work. It does a pretty good job of predicting if a candidate will be a good fit. The big problem is, if employers consider a lack of github to mean "this candidate does not show initiative", that's going to exclude candidates who for a variety of reasons may not be able to work on technical projects in their spare time. Those candidates are more likely to come from underrepresented groups like people of color or women, which will continue to cause our industry to lack diversity and equal opportunity.


Theres no hard evidence that underrepresented groups will lack a gh profile. Why do you say that?


It doesn’t actually show initiative and I really wish people would stop making that up. It only shows a set of developers that like working on open source projects or contribute as part of their jobs. Nothing more. I absolutely love what I do and have been doing it for decades. I’m a work-a-holic and have been known to literally put in 90-100+ hours/week when needed (which is too often). However, when I sign off, I sign off. I spend time with my family. I bike. I binge Netflix. I travel. I fly planes. I go camping. I do ANYTHING but write more code.


When I (freelance) work for a client that doesn't use github as their remote, I get no history. When (most of the time!) their repos are private, you can't see the code I've written. I'm not going to spend my free time writing extra code for free just for potential future clients/employers.

It's an awful way to get an impression of a candidate, unless your criteria is purely 'how much OSS do they contribute to?'.


Not entirely true. You can choose to show private activity. This is useful for people seeing how often you are active, whether or not you participate in code reviews, etc.

Personally if I’m looking at a resume, I won’t discount people with non-super-active github profiles, but ones with it stand out.


It's an awful way to get an impression of a candidate, unless your criteria is purely 'how much OSS do they contribute to?'.

I wholeheartedly agree.


A well documented public portfolio is a much stronger representation of what a candidate can contribute than anything else because it is literally the closest thing you can get to the employee working for you. A public portfolio with contributions to OSS and personal projects shows so much more value than a 2 - 3 hour interview ever can.

The current interviewing process for software engineers heavily favors code golfers, and this attitude leads to an industry where startups, after the release of Pokemon Go, chase AR for investment dollars on unused product functionality. It results in tech giants that say things like 'Move Fast and Break Things'. An employer who values a GitHub portfolio looks like an employer who wants engineers deeply involved in their community that can also provide real world value.


I know we don't really look at them that much unless the candidate specifically pointed to it for samples of their work. Sometimes I'll check and see if they have any cool stuff up there if they link it on their resume or portfolio site, but it's extremely non-required. (Esp since, if you work for a private company that uses source control, most of your interesting work is going to be in private repos anyway, haha.)


I don't think many employers see it as very, very important but IF you have side-projects and / or other work on Github it's a good indicator to see how structured someone works. In many interviews I did earlier this year, my Github was mentioned. Mostly in a positive way as I like working in a structured way. The actual code was barely mentioned


funny thing, a few weeks ago i wrote back a company who want me to lease their developer. i am really thinking about that, because it could really help to scale.

i received a CV file. a normal CV only makes me think "what should i do with that?". i don't care which school a person visited, if the person has a degree or not. there are really awesome delevopers out there which have no degree or not even a basic graduation and there are persons which have multiple academic titles but which are not able to do basic git branching (and are not willing to learn and do it)
a gitlab or github profile would helped me much more. beeing a developer myself i would like to see code of the person. read some discussions, read issues the person raised.


I guess they use it to evaluate your profile, but I seriously can't imagine some guy going through my repos or contributions and taking notes about them.
In my particular case, they won't get any real information from doing that. If you go check my github profile you'll see only the 5% of the code I'm working on, as I store most of my projects in other git platforms.


GitHub can be really useful to get a sense of what someone is learning, what tech they have used, to see their code-style, etc. It can be a good talking point, E.g: What made you choose this framework? Why did you architect things this way?

Having a good GitHub profile is just one aspect of a candidate's ability, but it can be an important one.

I am usually involved in front-end/cross-functional candidate interviews. It depends what role you're hiring for, but as an example: if an engineer has been working in the front-end for 10+ years and can't walk me through a single code example from their GitHub profile, then that same information has to be teased out in other ways.

If you are going to interview for a job as a software engineer, it's reasonable for your prospective employer to want to see an example of your work. Candidates that can show lines of code they have written and demonstrate a good understanding of what they did, will obviously do better than candidates that show nothing.


I think it can be a useful signal when considered in conjunction with other things, but I don't put a ton of weight on it. As someone who's in their 30s now, has a house and had a kid within the last year - I know firsthand that finding time to program outside of work can be difficult/impossible.


Try doing it with 2 kids. I wake up early and then get 1 maybe 2 hours to either go for a workout or do something for me.


Github profiles are nice, but not consequential, to a hiring. If you are abusive on Github, that is definitely a red flag. Pretty much the same way as a racist Twitter account. A Github account, and subsequent scrutiny is valuable to us as employers because it reveals how this person solves intra-personal disputes. Now, that is not the only criteria, but a damn good peek at your qualities. I don't want to expose my trusted employees to a megalomaniac cunt.


To add another aspect: if there is a profile and has activities, it can also support me to steer the interview in specific directions. Maybe I see that they are interested or even experts in certain topics, which are relevant to our business and work, I can prepare questions and discussion starters beyond the regular ones.
But you can also include your interests and domain expertise in your application, and then the profile is not needed.


Do they?

I always hear that, but in about a year of interviews I never once had an interviewer mention my GitHub profile... 🤔


I do check.

But I don't rely on it.

It is just another conversation starter for me. It shows me what they might be tinkering with, where their non-work interests lie in the tech realm, what they might be studying.

I don't code review them or pick a part their pull requests to things. I don't use it to stalk them and see code quality.

Just one more thing to have in a conversational interview (so I can skip stupid things like whiteboard coding).


I just like seeing everything that people are working on nowadays. I think it's fun to see what people work on in their spare time!

I don't use it to make hiring decisions though. I like hearing about side projects and how people have worked effectively with a team in the past.


When available, it can demonstrate the candidate's passion for their craft.

It showcases which technologies they would choose on their own. How they write code in their free-time / side project(s) is also a good indicator of what to expect at work.

In addition, the frequency and time of their check-ins is also a good indicator of how they spend their time. This is also an indirect indicator of "culture fit". Do they code all the time? Do they code over the weekend? Do they have side-projects? Are their nights and weekends free?

It is one of the ways to spot a 10x developer.


When I've interviewed candidates, it only comes up if they volunteer the information. I don't go searching for their usernames on github based on what I find by stalking them elsewhere.

So it's the candidate wanting to show their work. If they came to the interview and I had no idea what was on their github profile, they'd be justified in thinking we either weren't interested or had taken on too many candidates to allocate time for.

Like others have said, though, unless they have a pinned project which is evidently awful, nothing I see there is going to put me off, even if they only have a bunch of empty hello-world projects.


I don't think it's a good way to finally decide on a candidate, but a good starting point early in the screening phase.

There is a class of developers that exaggerates their skills to hope to catch attention. We had this for a frontend position recently where the candidate said he worked senior React developer at a few different companies in the last years. We usually ask for some code samples in the process and accept, that code from former employers can't be shared, but offer to give us a GitHub link or other public contributions to get an impression. If we then receive a GitHub account with half-ready React todo apps, it does t really support the senior developer story. Usually we then hear something like "just hire me and you will see how good I am", which from our experience often is enough to reject a candidate.

On the other hand, if we receive a few of from high school and can look around and see what the developer is learned in the years, it's a good indication to invite them for an interview.

The real comparison between different applicants is very complex though and can't be performed based on GitHub contributions, without excluding talented people on the way, in my opinion.


DHH, the creator of Ruby on rails, once said that they mostly hire people based of their GitHub commit to the Ruby or rails projects.

It helps him to understand the candidate's level of commitment, coding practices and many other things needed to work in his company.

I guess that's the main reason.

To understand the mindset of a candidate, it's not how often they push .

But how well they code and how well they mingle with the team and follow best practices.


Haven't been in an interview from the employers side myself... not even in one in which I needed my Github in the first place, BUT, I think it's to verify how good are you working with other people, how good are you at communicating issues or possible solutions or even if you apply good practices into your personal projects. There are plenty of things that are reflected in a workspace.


I would disagree with you on this one.
Company have to know who there're interviewing or employing. As Github is a public space, it's ok to check what your profile looks like.
I feel the same for Facebook. If your profile is a mess, I don't want to work with you. (or at least, hide it behind a nickname)


I wonder what if I have an empty Facebook profile (created 10 years ago to occupy the name) just because I refuse to feed people like Zuckerberg?


I think it's not so much about reading the code itself, but how it changed over time. How you refactored your way out of a mess, radically changed a particular feature or fixed a bug without causing ripples.
So even if your code looks shitty, someone realizing that it incrementally became less shitty as they move up the commit log can be pretty useful, IMO. It tells them about the dev's ability to adapt to change while maintaining a certain harmony in the code, sticking to patterns, standards etc.

Plus, people also like to look at how good your tests are; as in, do they logically cover a significant part of the app's functionality.


I am guilty. When I have to interview somebody I will check out their github activity, and other development activity (forum/blog posts, etc.).
If there is enough activity it will show more what kind of developer they are than their resume will. Especially when they have personal projects.
It will also give me discussion topics both sides are probably interested in. I can see the things they made, and can discuss why they made certain decisions. Get into their thought process.
Generally the work you do at a company is something you have to do, not something you want to do yourself. Work in your github is quite often something you did want to do yourself.

And while I'm checking out their activity I might also find interesting/cool software/techniques/etc. I did not know about.


For me it helps connect the part of their resume that lists "technologies I've worked with" or "languages I know" part a bit more practically. I still take it with a grain of salt, but it does help when your dealing with a large volume of resumes.

For example if they list react as one of their skills and I see any react project, and I mean you could make a few changes to a generic create-react-app, I sort of know that at least this candidate does indeed know something about it and it gives us something to talk about in the interview.

Again, massive grain of salt, and if they don't have any projects it just alters the line of questioning a bit. Also larger projects they've worked on could very well be in private repos, but it doesn't take long to skim through a github profile.

Disclaimer that I'm biased towards this type of checking, because I had a built up github profile before I started applying for jobs.


It is indeed weak, but organizations need a way to justify expense. Look back to the 80s and 90s; when two candidates applied for the same role the one with college degree go it. Even if the non-degree person had experience.

GitHub is a way for organizations to see you actually do something; other than BS your way through the interview process (which is also broken, but that's another topic).


Checking a Github profile is one way to see code samples from a prospective employee. It's also frequently used as a proxy for asking about candidate side projects. An active github profile shows that candidates code in their spare time. I did a talk on this very question recently, and how checking Github profiles is the same as asking about side projects (and why both of them are discriminatory against underepresented groups in tech) beautiful.ai/deck/-LBBNBKF5JwsC5q8...


This article blog.jcoglan.com/2013/11/15/why-gi... makes some good points why github should not be a standard in job recruiting.


Much better that taking for granted the projects/achievements/solutions the interviewee says it has done.


They even look at social networks so all the more for Github :)

so does not have a GitHub account?

I am pretty fine with that. I just don’t need John in our team.

Those few professionals having OSS do fit, John does not. That simple.

code of conduct - report abuse