Like many, I’ve counseled developers that their public code repositories like GitHub/BitBucket are most certainly ripe for examination by potential employers. Yesterday, I had an interesting conversation between a recruiter and a colleague about the potential dangers behind this, both from the perspective of the employer and developer.
These dangers came alive to me from talking through these scenarios:
What does it mean if a developer doesn’t have anything on GitHub/BitBucket?
The recruiter I was talking to spoke of her experiences with clients that dismiss candidates without GitHub/BitBucket repositories. What damming conclusions are they drawing from this data point? I suspect it’s along the lines of “It looks like Robin isn’t the rockstar ninja we were looking for after all: we were hoping for the mad skillz hacker that sustains a 20-hour-a-day coding obsession on a diet of energy drinks and ramen”.
By way of a quick thought experiment, what if Robin refused to interview at Company X if it didn’t have a public repository on GitHub/BitBucket as well? After all, what Robin has developed in the past will not be what Robin is doing at Company X, but Company X’s current codebase is far more likely to be relevant to Robin’s life should he take the role.
What can you infer from a developer’s code on GitHub?
But let’s assume Robin does have something approximating a “typical” GitHub/BitBucket presence; it’s likely to be a motley collection of project forks, perhaps some contributions to other projects of various degrees of fame, and a bunch of home grown experiments across a number of years, in a number of languages and in various states of repair. Not exactly the developer’s equivalent of the portfolio of a photographer, which will be carefully curated to show a cohesive collection of their best work. Indeed, it is the convenience of services like BitBucket and GitHub that make many of our accounts more closely resemble the study or workshed of someone with ADD. These services make it very easy for Robin to create a large number of projects for experiments and leave them to wither on the vine after the initial interest has worn off.
Given all this, what should Company X make of Robin’s GitHub/BitBucket repository that shows:
- A smattering of high burst activity, followed by long periods of little/no activity
- No evidence of Robin’s experience in Language Y which is what Company X uses
- A history of spawning off new repositories, with a couple of early commits, and then nothing
- Lots of popular project forks, but no commits
Are these signs of a highly-motivated polyglot developer forever curious about technology, or someone with a young family who worked in China frequently? Is there any way for Company X to accurately analyse Robin’s credentials without this context?
And what should Robin do? Robin could take advantage of BitBucket’s free private repositories and move the more shameful repos over there, leaving GitHub as the curated portfolio for employers to peruse.
Certainly my GitHub repo is quite close to Robin’s in nature and it would take quite some work to get it into a shape where it could serve as a brochure of my development chops. Will I expend that effort? Not at this point, even if I was in the job market. I’m satisfied that companies using GitHub as a blunt filter like this probably get the developers they deserve.