|October 20th, 2016|
The problem is that while most programmers seem to understand and even embrace GitHub as the new resume, few if any seem to have actually put any thought or time into making their GitHub accounts look and work well as such.And suggesting things like:
GitHub is more than just your social backup storage, it's your portfolio and it's public. You can't just dump everything there willy-nilly or your account is going to look like shit, which it probably does.
The work you did a year or more ago couldn't possibly still be relevant today. If it is, you aren't working hard enough or learning fast enough. Get rid of anything you haven't worked on in over a year.This advice makes a lot of sense: if employers are looking at your GitHub account to evaluate you, and you can choose what to show them, you're most likely to get hired if you put a careful selection of work up. But the consequences of this are terrible! The more people follow this, the less useful-but-ugly code there is out there for others to learn from or adapt.
For example, take my draw_heatmap.py. It is not good code. It's slow, not especially well structured, and not very easy for people to understand. I wrote it in a hurry, when I had an idea to make a map of Boston rents. I could have just shown off the pretty map, but I put the code up in case others were interested. Various people ended up running it for their own cities, which I wasn't expecting, but which I'm very glad they did. If I wanted to make my GitHub page contain only work that reflected very well on me, though, it wouldn't be up there.
I know how to write good code, but it takes longer, and if I'm writing something exploratory with a primary audience of myself I'll generally prioritize just getting it done. I think this is pretty reasonable, appropriate for those situations, and I'd like code written in this manner to still be available for people to look through. When employers pass up people with messy GitHub profiles, however, they are hurting the norm that you open source as much as possible. I wish they would consume transparency more responsibly.
(My day job is working on an open source project, which means that most of my GitHub activity actually does (I think) look pretty good. It's professional stuff, written within an organization that values and supports code quality. Someone who wants to see whether I can write good code can get lots of nice examples, so the GitHub-resume system isn't all bad for me.)
 There are other problems with using open source code as a guide when hiring, like people with kids being way less likely to have the time for side projects to put up, and so decreasing the diversity of your hiring pool. I'm not trying to get into this here.