It’s funny, a few days before the OSS-as-hiring-criteria debate emerged on Twitter and HN — mostly stemming from this post by DHH and this post by Ashe Dryden — I had just posted Just Get Hacking (Part 2), encouraging prospective developers lacking a CS background who wanted to get hired to put lots of code on Github.
There are good counterarguments to this. Github is not a portfolio, it’s where your public code lives. My Github has a bunch of projects I should maybe delete; stalled or abandoned projects, one-off projects with poor test coverage, etc. It’s not really a representative sample of my production code. But that’s not why I think it matters.
In her post, Ashe provides several excellent alternatives to OSS contributions as evaluation criteria; these include:
- Pair with the prospective hire
- Contract the prospective hire for a week or two
- Ask for samples
When considering potential hires, Github is not everything. At An Estuary, we definitely request (and prefer) a Github profile with applicant CVs; but it’s not about contributions to OSS projects (i.e., the “unpaid labor” critiqued in Ashe Dryden’s post).
The focus of our company is on professional development. We not only dogfood technically (i.e., using our own software), but also culturally. We want to hire people who are focused on their own professional development, and Github is a good place to document that.
(Also… code samples? If you wrote something worth showing me, why isn’t it on Github, in a gist, on JSFiddle, etc.?)
Our main product is designed to help educators document their professional development. Hackers like us have Github, so if we’re not using it… something might be amiss.
So when I’m looking at a Github profile evaluating a potential hire, I’m not looking for accepted pull requests to Rails. I mean, that would be a plus, but…
A Commitment to Professional Development
That’s what I want to see. Not a portfolio, as James Coglan suggests. He’s not wrong, but as a hiring hacker, at least from my perspective, he misjudges the value of Github profiles.
For me, evaluating Github profiles for potential hires is about a commitment to a profession. And that’s not something that’s real in software at the moment, but it’s something we need to develop.
If building software is just a paycheck, I don’t really want to work with you. No offense, I’m sure there are plenty of organizations out there that are fine with that. You should work for them. I have, and I hated it, but find your own bliss. I don’t want you to miss out on family and kids and friends; I don’t want to miss out on those either. But in those couple of hours between the kids going to bed and sleep closing in… well, I’m hacking away on some odd side project, and that’s who I want by my side while we’re trying to hack things better.
There’s a conflation of OSS contributions (i.e., unpaid labor contributing to free software your company or prospective company uses to make a profit) and having a Github (or Bitbucket or whatever) account that demonstrates a commitment to honing your craft over time. Both are admirable, but I want to hire smart people who are committed to always be learning. Github is a good way to demonstrate that quality, even if yours (like mine) is full of projects that went nowhere.
Sorry, I need evidence of commitment. If you have patches in or Rails or clojure.core that’s bonus points. But your commitment is what matters to me:
Timeframes in which you cannot become a good programmer: 2 weeks; 2 months; 2 years. Sorry. 10,000 hours. Not my fault. Sorry.— Gary Bernhardt (@garybernhardt) November 5, 2013
10,000 hours. That’s what it takes. Not that you’ve put that time in already, but I need to believe you’re committed to putting the time in. Sorry if that’s a hardship. There are other jobs.
Now I’m close to sounding like a jerk, but it’s just the reality. If I was a flight instructor who certified a pilot who hadn’t put in their hours, I’d be criminally negligent. Software matters too. Just look at healthcare.gov
Privilege isn’t just about OSS
One of the main points of Ashe Dryden’s article is that OSS is dispropotionally authored by privileged groups, i.e. young white males. While this is clearly backed by the data, the reasons for this are not limited to the software industry; most professions (and yes, I am considering software engineering a profession) have similarly disproportionate distributions. Lawyers and doctorates in general skew in the same direction. Why? For the same reasons addressed in the argument against OSS as hiring criteria: young white males disproportionately have the free time and resources available to pursue advanced degrees, attend professional school, etc.
Now, in software, we have an edge case in which a degree isn’t necessarily required in the first place. But something has to stand in for that, doesn’t it? Some demonstration of competency?
I think this was one of the more salient points made in the Hacker News thread on Ashe Dryden’s post — all hiring criteria are discriminatory in one way or another, e.g. requiring a Master’s degree discriminates against people with only a Bachelor’s — and surprise, surprise, individuals privileged by race or gender are more likely to secure the higher degree.
So I think the “Github hiring criterion” is a bit of a red herring. Privilege is an issue across the board, and it really has nothing to do with OSS or Github profiles. I’m in my first hiring role as a developer, but I find reviewing applicants’ Github profiles incredibly useful; not as in “we will talk to this person but not this other one,” but guiding what questions to ask and what paths to explore in the interview.
tl;dr Hiring people is hard. Github provides limited data to drive those decisions. It’s easier to make confident decisions with more data.
If Github is privilegey, than what is Careers 2.0? You either need an awesome Github rep or StackOverflow karma just to get a profile. And answering James Coglan’s critique — Careers 2.0 actually is a portfolio; you feature your best Github repos, best blog posts, etc.