As with most things in life, the problem is one of lazy thinking. It goes something like this:
"We want to hire good coders. How do we do that?"
"Well, we can ask them to write code during the interview."
"Yes, but can't we filter people before they get to the in-person or over-the-phone interview stage?"
"Well, we could ask people to submit code portfolios."
"Yes, but that means that someone on the team will have to review the code. Isn't there some way we can evaluate their coding ability without spending any time or effort?"
"Well, some people have open source contributions that are shared with and evaluated by the community..."
"That's it! We'll only interview people with pre-existing open source contributions. Genius!"
"...that's not what I...oh, you're not listening anymore..."
As someone who is about to reenter the job search after 7 years at my current place, this resonates with me. 7 years ago I was young, carefree, and had a lot of free time. I spent a good deal of that time coding and releasing code because I could and I enjoyed it.
Now I've spent 7 years building a great product, accomplished more than I could have imagined, learned much more than I thought I had left to learn, and am generally happy with what I've done and the decisions I've made. However, in the meantime life has moved on. I feel like I have a lot to offer, however I feel totally out of place when looking for jobs.
The details why I haven't been able to code as much as I used to, or why I haven't been able to release what I have coded are not that important. That's just the way it is right now. With that in mind, it is very discouraging when most jobs expect to see my personal and professionally embarrassing github account.
I'm not complaining, it's still totally up to me to present a good resume and showcase what my strengths are, and I can do that. I've also decided to use this as motivation to learn something new, and build something with it.
Wow. That opening tweet: "Advice received on hiring software devs: reject anyone who doesn't have a @GitHub profile (the more active the better). Agree?"
It is terrifying that anyone would ever think that was a good idea, let alone someone respected enough to have 128K Twitter followers. How much more plainly can you say "we're not interested in anyone who wants to spend evenings and weekends with friends and family"?
First of all, having a github profile doesn't mean you "don't want to spend evenings with friends and family". It means you spent some amount of time doing stuff on github. Ignoring people who get paid to write code that is on github (most open source projects are mirrored there now, so there are quite a few), all it means is that coding is one of your hobbies.
Aside from quality time with your family, perhaps you spend a few hours a week playing the guitar, or reading epic fantasy novels, or playing soccer, or perhaps you spend some of that time hacking for fun. Some very good hackers are exactly so good because they love hacking on software so much. Not all - some just want to forget code outside of work, that's cool too - but certainly some. More than the opposite, in my experience.
Again, I see your point - to just categorically reject people without a github profile is both insane and immoral (insane, because you are going to lose out on a lot of talent; immoral, because it sends a message that unpaid work is necessary).
But I would say that a github profile is a positive. Aside from showing an honest love of hacking, it also provides code samples that you as a possible employer can just look at.
I actually spend quite a lot of time coding in my spare time, be it Project Euler, code katas, messing about in a new language for shits and giggles, doing pluralsight tutorials or hacking on an experiment for my employer's product at night or on a lazy weekend afternoon. None of this is really useful to throw on GitHub, and being penalized for it under the assumption of "not enjoying coding in my spare time" is pretty ludicrous.
Also, I prefer Hg/BitBucket for personal code anyway.
Github (or equivalent) presupposes that you've done some coding that is (1) worth sharing with the public (2) organized enough.
A lot of "learning code" is going to look like crap - the first few thousand lines of code you write when you're learning a new language, a new problem domain, or (!) both at the same time. The fact that it isn't useful for public viewing doesn't make it useless - it was an important part of the learning process. But sharing it with prospective employers is unlikely to be valuable.
"we're not interested in anyone who wants to spend evenings and weekends with friends and family"?
--
I once interviewed as a 30-something with a company that generally only hired kids right out of college with no lives. The only reason I got the job was because the guy asked a C question and told me I had the wrong answer but I told him to look in K&R and it proved I was right.
Interesting. I bet a big part of your win was not just that you were right, but that you conveyed your disagreement without being a d*ck about it. That's a lot harder than being right.
To speak to the first half of the post, I think the tweets by @betsythemuffin are the most interesting:
1. Whether free-time activities are called "work" or "play," the existence of free time to do them in is a privilege.
2. When a time-consuming activity is used as a job selection criterion, it becomes work.
I think an apt metaphor is college admissions, where Open Source contribution takes the place of spring break volunteer work in Cambodia (which requires you to be able to spend the thousand dollars for the flight) and lots of after-school clubs and sports (which require you to not work a job during high school to help support your family.) It's a veiled discrimination (and I don't mean discrimination in a loaded way -- I'm not saying people who look for OSS contributions in their employees are closet racists or sexists or anything like that.)
At the same time, I have to disagree with the second point; I think a more accurate sentence would be "when a time-consuming activity is required as a job selection criterion, it becomes work." I know plenty of people who happily leave work every night to hop onto a pet project or two and code the evening away; they're not doing it to get a leg up on the competition, they just like programming! I don't see why that shouldn't be a contributory factor in a decision whether or not to hire an employee.
I think the bigger issue is raised in the initial tweet in the post -- "Advice received on hiring software devs: reject anyone who doesn't have a @GitHub profile (the more active the better). Agree?" Open source experience shouldn't be a negative filter but a positive one.
I feel like this article (and many like it) doesn't mention a key point:
Portfolios and verifiable career assets/achievements make you more valuable to potential employers. It de-risks hiring you. Even if you're just as skilled, capable, etc, if you can't offer anything to verify it, you're statistically riskier to hire.
Now all the points in the article drive home the point that the less privileged you are (due to gender/age/ethnicity/socioeconomics), you'll have a harder time building those career assets, due to time, limited job selection, lack of mentors, etc.
Requiring OSS contributions to interview doesn't mean you're getting better employees, it just reduces your risk of hiring a bad employee. It does mean you're filtering out skilled people w/o career assets. It's about reducing false positives, not avoiding false negatives.
I suppose I fall into the 'young, eager, and has free time' category, but I _hate_ this kind of mentality/requirements. I love to code, but I love to do a lot of other things too (big surprise!). Is it wrong for me to program professionally but use my free time for other pursuits? After working at the computer for 8+ hours straight going home and coding for the rest of the night is downright unappealing.
I'd really love to contribute more to Open Source projects and/or put more stuff on Github, but that's not going to happen after 8+ hours of software development. I'm doing my share of bug reports and patches here and there, but I wouldn't take a role like maintainer/developer for a FLOSS project in my spare time. I admire those who are able and willing to do this, but it's not for me.
Yes, corporations are effectively "secret societies", so they need to evaluate you during the time you have a bit of freedom. They're causing their own problems, and expect it to be resolved by you giving up your free (as in freedom) time.
The article, like many on this topic, conflates meritocracy with a just world:
The idea of a meritocracy presumes that everyone starts off and continues through with the same level of access to opportunity, time, and money...
Meritocracy is simply the belief that meritorious people will (either deterministically or probabilistically) rise to the top. It is not the belief that the distribution of merit is fair.
A person who ate lots of lead paint as a child, had Down's syndrome, or some similar tragic circumstance, will have very little programming ability and very little merit. This is unfair. The lack of mentally retarded individuals in open source is not evidence against meritocracy.
This article isn't talking about people who ate lead paint, though. It's talking about people who might be brilliant programmers, but don't have the opportunity, time, and money to contribute to OSS for one reason or another. Someone who doesn't contribute outside work doesn't necessarily have less merit, unless we accept that merit really means being of a certain social class.
Wait, we have a social class of programmers (who on average make well above the median income) that are unable to contribute to something on github? I would agree that there is a whole class of people unwilling to contribute anything, and they largely overlap with the programmers who don't do anything to sharpen their saw. Consequently they are also the programmers who will have a horrible time trying to find a job after they have been laid off from the company they have been at for the last 10 years because they didn't take the time to stay on top of what's happening in the technology world.
Imagine being a single mother with a young child. You're a great programmer. But you spend 90% of your time outside work raising your kid, so you can't make the time to make significant contributions to OSS.
...
You can't get a job that requires a Github OSS history. You're severely disadvantaged in job hunting when OSS contributions are a major metric.
If people tested your suitability for a job by pair programming with you, or looking at code samples, you'd look just as good as someone who contributes to OSS. But because OSS is an important metric, you're disadvantaged.
It's pretty clear that requiring a Github history is discriminatory. I wonder, though:
(1) Are there any companies which literally remove a person's resume from the running if his/her fit seems to be good in other ways, just because they do not have a public facing github repo? Or is this just something that people are talking about but not actually implementing.
(2) In what sense is any job requirement not discriminatory? Requiring 5 years of Ruby experience discriminates against those with only 6 months of Ruby experience. Requiring a Masters degree discriminates against those with a Bachelors or no degree. Making the candidate do a programming test discriminates against people who don't perform well on tests. The question is whether the programmers that a company hires based on a Github criterion are measurably "better" than those hired using different criteria. As far as I know, no such comparison has been done.
I could absolutely see myself using this as a screening mechanism. When I was hiring developers, I would get literally hundreds of resumes sent to me. Filtering through resumes is a waste of time. You cannot tell from that piece of paper (PDF, Word Doc, etc) how technically capable a person is, or if they would be a good fit for the team.
I do not have time to interview hundreds of people, so we have to apply some filtering. Are we going to potentially filter out a good candidate because they didn't take the time to make themselves stand out? Maybe, but I'm okay with that.
Good point. If you have to go through hundreds, then you're more or less looking for a reason to say no. Better that you miss the odd good candidate, than waste weeks of productive time trying to make the process 100% perfect.
What makes her a great programmer? Some natural ability? Surely during the time she has developed all of these skills she has developed something that is worth showing off? If she is such a great programmer, how is she maintaining her skills if all she is doing is working on what her employer puts in front of her?
If that single mother literally has no time outside of her 40 hour work week to be learning new things and staying current with technology, she will have a hard time finding new jobs regardless of the screening methods used.
This is also one contrived example. Not an entire "social class" of the programming population.
The rate of mentally retarded people in open source community is actually much higher than in general population. Various forms of autism, social anxieties, mild psychopathy and border-line schizophrenia are surprisingly common.
But it was always ok to bully nerds, physically or other way.
"The belief that meritorious people will rise to the top" requires believing that people of equal merit are treated equally, but that doesn't happen - people have all kinds of biases and *isms that muddy this up.
Github is the great equalizer against bias of almost any sort. I look at github when filtering candidates. At the time I'm deciding to interview them, I probably don't even know their name, race, gender, if they went to college, or anything else of that sort. All I can see is their code.
Of course, to be truly accurate, the question "merit for what?" needs to be answered. Merit is a hazy word when applied across a whole industry - it needs to be matched to very specific tasks, projects, and goals to become clear.
An embedded systems designer may exhibit less "merit" than a wizard of front-end programming when dropped into front-end programming - and vice-versa. There's no absolute, gold standard for merit, no matter how hard we try to find one.
That doesn't mean that we shouldn't try to hire the most suitable (meritorious?) people for our own companies. Just because merit is a hazy target, and subject to different caveats, doesn't mean that it doesn't exist, or that you can't judge one person as more effective than another for a specific set of tasks. That's why we make job descriptions specialized, so that match peoples skills and attributes to the needs of the job.
What's needed is more jobs that pay people to write open-source -- for example, but contributing libraries back to the community, or at least bugfixes.
Yes, definitely. My personal experience is that it's not always missing appreciation but more practical issues that keep companies from contributing more (money/time/developers).
My clients usually understand the benefits of using free software and express an intention to contribute back, but the process of contributing is not well understood.
If you take some piece of open software and customize the hell out of it for a few months, you can't just expect the upstream project to gratefully merge all your stuff because it's "free features". So it takes time and energy to work with the upstream project to identify useful parts and carefully integrate them into the upstream project, all while the customer is already in "works for me" mode and doesn't care to change already deployed software....
This is absolutely true. People worry about building on top of platforms, but when it's an open source platform, they don't seem to perceive it as having the same risk.
I honestly don't understand the point of analyzing the gender/race/whatever.
I agree entirely with the fact that people should not hire solely on the basis of a github account, but this has really nothing to do with gender or race.
I mean, sure, it's a trend and with a lot of data everybody can self-proclaim himself as a statistician but just analyzing a bunch of stats and drawing conclusion isn't really making a point (causation/correlation etc etc). Saying that women or black people or LGBT members don't have time to contribute to OSS because of "other reasons" is, in my opinion, even more discriminating just for the sake of doing it. If they want to, they can contribute, they can find the time. Personally, I am a graduate student pursuing a higher degree, I work as a teaching assistant in university, I have a lot of assignment, work on my thesis, publications and a lot of stuff going on in my life, and yet I still find those couple of hours every night to hack away. Sure, my sleep schedule can get messy and I have to renounce to a lot of social activities to do that, but I do it.
I don't see any difference with my life schedule and the schedule of another person, be it a woman, a poc, a LGBT militant or whatever, we all have our own interests and this has nothing to do with "what" we are, just with "who" we are.
Personally, my girlfriend is a computer scientist (although we work on separate fields), she doesn't have github and doesn't contribute much to other projects but she still codes a lot and works on interesting academic projects and stuff. In many ways she's much better than me and nothing would stop her from making a github account and contribute to other projects, just that she doesn't. It's not in her interests and has nothing to do with her being a woman or not having time.
If you want to base your arguments on gender/racial issues, I find it ridiculous to do so in a semi-anonymous environment like github where nobody needs to know anything about you, as long as your skills are there.
Rant aside (it really bothers me, I am a huge supporter of gender equality and all those issues but I don't like people blaming everything on that), I entirely agree on not requiring a github account to hire people.
So, you cannot draw conclusions from the published scientific literature, but you _can_ draw conclusion because your girlfriend codes?
Just want to make sure I understand your line of argument here.
------------------
Also:
> I find it ridiculous to do so in a semi-anonymous environment like github where nobody needs to know anything about you, as long as your skills are there.
If you read carefully, you'll notice that it's not just overt discrimination from knowing who you are; it's also a lack of time, opportunity, and a bunch of other things. Furthermore, GitHub is _not_ anonymous, many of us do use our real names on there. Suggesting that others should revert to anonymity while the rest of us 'build our personal brands' is, well...
I'm not drawing any conclusion, I just treat women, poc and LGBT people as, you know, PEOPLE. There's nothing that stops anybody from contributing repos to github.
Certainly it's not their gender or their race or whatever other social construct. If you don't have time it's because you don't find time, which means you don't have any interest in it. And, you know what? It's fine.
Are you saying that women or black people have a too busy agenda doing their <enter stereotype> stuff that they possibly cannot use github?
Please, if you want to talk about people not having enough opportunities to participate in github community, talk about people living in Nigeria, Tibet, North Korea. They surely have bigger problems. This has nothing to do with gender or race. No, not at all.
If we consider discrimination on the workplace, in the industry, at a job interview, then sure, I can agree with you. A woman might have a harder time being accepted in the industry (sadly), same goes for other minorities. But on github? Sorry, I'm not buying it.
> Are you saying that women or black people have a too busy agenda doing their <enter stereotype> stuff that they possibly cannot use github?
That's exactly what the article is saying:
> 52% of women caregivers with incomes at or below of the national median of $35k spend 20+ hours each week providing care. The largest racial demographics in this group are black and hispanic.
20+ hours a week caring for children, elders, or family members with some form of disability. Fair or not, it's expected that they'll do it.
> Due to additional pay inequity contributing to less access to paid childcare, women of color perform far more child care than white women.
They can't just pay someone else to do it. If they could afford a babysitter while they hack on some code in order to get a better-paying job, that would be awesome. But that's not realistic for a lot of people.
> On childcare alone, mothers spend more than twice as much time per day as fathers do.
Fathers are a lot more involved in raising children than they used to be, but mothers still get stuck with the bulk of the work.
Hell, I've lost 4-5 hours out of my week since I took up jogging. It's a big boost to my health and a way to keep life-long weight issues at bay, so I'm not complaining. But just taking on an additional "hobby" like that takes up the equivalent of half a work day.
Those poor helpless mothers, being "stuck with the bulk of the work". If only they were allowed to choose whether or not to have children, choose the father of their children, and negotiate with the aforementioned father their childcare arrangements before getting pregnant.
Sadly, we are discussing women in rural Pakistan who don't get to make these choices.
Instead of the tech community "giving back" to the poor and disadvantaged by trying to teach them all to use the shitty tools that we've cobbled together, maybe we should be asking if it is instead us who needs the education?
The sort of ignorant crap coming out of not only Morgawr's mouth but also a good number of people in our industry just shows how many of us have clearly never listened to a word that a disadvantaged or underprivileged person has ever said.
When you measure something (e.g. the linked-to "Most active GitHub users by contributions"), and others use it as an incentive (e.g. employers granting interviews) , some people will game the ranking. Here...
top 256 users by contributions
contributions = Pull Requests + opened issues + commits
filtered by > 218 followers
To get and stay on this particular list, you need 240 (= 218 + 10% contingency) followers, which you get by following other projects, not because you're interested in them but because their project members look like they treat following as a favor and reciprocate.
Regarding contributions, which is easiest: making a pull request (which don't need to be accepted), committing code, or opening an issue (which don't need to be closed)? Choose the easiest one, ignore the other two. Then pack as little as possible into every request/issue/commit, creating as many as possible.
There's people out there who do game Github rankings (tho not necessarily this one). It's like quantum physics: whenever you measure something, the thing being measured changes.
I recently watched an interview with a very well known porn star. They asked her how she got to where she is today. Her answer was "I sucked a lot of dick. A LOT of dick".
The message she seemed to be sending was, if you don't absolutely love sex and aren't up for it pretty much any time and place, even from the person about to pay you a bunch of money to do it on camera, don't become a porn star. You'll just burn yourself out and feel taken advantage of.
An attitude of, "I'm a professional and you really should be paying me any time I look at a text editor," is the wrong one to have if you want to be successful as a coder. People are going to sense that you're not really in it for the thrill of mastery and they won't take you seriously when you want to move up to the big leagues.
Look, we all have different goals in life. My goal right now is to master programming. That means when I get home after work, I code. On the weekends, I code. Side projects, side gigs, talking about coding. It's my career and I take it seriously.
If you've got kids or whatever and you can't throw that kind of time into your career, that's fine. I'm not going to look down on you for having a family. But if you want to have my career prospects without putting in the amount of work I put into it, I'm just going to shake my head at the entitlement that displays. There's plenty of great jobs out there for coders with families. Take one of them and provide for your offspring.
I don't think it's inappropriate at all to ask for open-source contributions as a part of your resume. If you're a badass coder, you should have them. If you want a badass coder, you should compensate appropriately. If you take yourself seriously as a porn star, don't get squirmy over a blow job. If you take yourself seriously as a programmer, contribute to open source.
The question of how this works at the hiring level is interesting. We have to do something to filter out the small set called "people we hire" from the larger set called "people we don't hire".
Github as the only filter will select a certain group of people. Maybe they have "the most" merit, maybe not.
An on-the-spot programming test will select some other group of people.
A set of puzzles and math problems will select some other group of people.
A take-home problem to be submitted in a few hours or days will select some other group of people.
A culture-fit interview will select yet another group of people.
None of those tests by themselves is perfect, but by using a suitably weighted average, you can determine whether someone js smart enough to do the work, able to work with people in your company, and actually interested in working hard and making a contribution. The person who scores highly on most or all of the metrics will probably fit in well and work well.
Requiring a person to have a public github repository is perhaps a higher bar to set than requiring a person to write some code or pair program in an interview. It doesn't necessarily make it wrong, but it does mean that you will be filtering in a different way if you make it a requirement.
It would never in a million years occur to me to think of my Github account as "unpaid labor", any more than it would occur to me to think of my blog or my Twitter as unpaid labor.
I like to build cool stuff, and Github is a way to share it with the world in the hope that other people will find it useful and/or cool.
I don't think there is anything wrong with preferring developers who like programming enough to choose to do it in their free time as well. Especially in a startup environment where a bad hire can be devastating.
The article is discussing what is wrong with using "GitHub profile" as an indicator of "likes programming enough" - among other reasons, that underrepresented people tend to have less free time available, and that underrepresented people tend to have a less fun experience of working on public projects (getting dismissed, harassed, etc.).
We all use criteria as proxies to judge a specific part of someone's competencies or personality.
Is the competency we're proxying for that people "like" programming? Or is the competency that someone is "good at coding"?
I would much prefer someone who's good at the latter than the former. I could care very little whether someone enjoys coding in their free time, I need to know they are competent and work well on a team.
Not me. I've worked in "enterprisey" environments where people were just there to collect a paycheck. Sure, they could commit code that didn't break shit, but it was inelegant and made life worse in the long run.
Now that I'm doing the hiring (not something I ever wanted for myself, but we all have to grow up sometime)... I like the people I've hired so far, I would never subject them (or myself) to working with someone who didn't see coding as "more than just a job."
In my experience, there is a strong correlation between people who like programming and work on projects in their spare time, and their ability to contribute successfully in a programming job. As I've said in other comments, you need some method of filtering out job applicants. I find that people who do things to stand out (personal website, side projects, github account, etc) are worth looking at more than people who rely solely on a CV.
I am in/from post soviet country and have zero exposure to recent american culture. So my question is serious: is this article joke?
>I want to see all people fairly compensated for their labor without feeling forced into it; I do not want to see free and open source software stopped.
Author could send a donation to some open-source project. Instead he makes me (as OS developer) feel like a shit, because I stole some theoretical chance to someone else. This goes beyond occasional troll, and if this becomes a norm, I will seriously consider to make my projects private.
There was more to the article than just that, like the fact that some people seem to think hiring decisions should be greenlit only if that person has shown a willingness to work outside of normal work, for free, which changes contributing from OSS to be a thing people do out of passion to a thing people do because of an externality.
"We want to hire good coders. How do we do that?"
"Well, we can ask them to write code during the interview."
"Yes, but can't we filter people before they get to the in-person or over-the-phone interview stage?"
"Well, we could ask people to submit code portfolios."
"Yes, but that means that someone on the team will have to review the code. Isn't there some way we can evaluate their coding ability without spending any time or effort?"
"Well, some people have open source contributions that are shared with and evaluated by the community..."
"That's it! We'll only interview people with pre-existing open source contributions. Genius!"
"...that's not what I...oh, you're not listening anymore..."