That's stupid. How many "x" are there in the world? It's just as easy to make a successful company as it is to make a successful open source project. I once wrote an open source CD burner component. It was challenging to do, I learnt a lot, but nobody collaborated, and the people who used it only occasionally wrote a thank you to me.
If I wanted it to be popular, I would have to go through an entire different process - I'd have to pick something in an area that is already popular (like rails), I'd have to maintain a blog, I'd have to have a persona, I'd have to basically market the project.
Only then do I become the dude who wrote x. And my reward is to go work for a tiny company? Would it not make more sense to just use that energy and found my own company? Would I not learn a lot more in the process?
I use about 15 open source tools. In my world, there are perhaps 100 projects that are somewhat important, and could possibly be used. So your pool of candidates reduces to 100?
Inherent in this question seems to be the idea of posting a job somewhere, see who applies, then use a filter of "author of open source project we use."
My take was more that they look at the open source software they like and use, then go out and try to charm, bribe, seduce and otherwise persuade the authors into working for them.
I don't know how many employees GitHub has, but if it is in the < 10 range and they are only looking to add 1 employee at any given time, and are willing to stand pat if they don't find an ideal candidate, a total pool of 100 candidates might be enough.
You clearly don't have a reliable idea about how much open source software you use, and how many people are behind this code.
For instance you are probably using Firefox, some torrent client, Apache/Linux/Python/Ruby/PHP/MySQL and all the libs associated with this languages. Even if I stop now there are already a ton of guys involved. Even alone, the Ruby community, and just considering people "well known" inside the community, is a lot bigger than 100 individuals.
Even if you are using Windows or Mac OS X there is a lot of BSD code inside. You DSL modem is built on open source software. Your world is full of open source.
I disagree; the Rails community is an anomaly. There are lots of people in the Perl community that are well known from their useful-but-small modules, rather than huge projects or a loud blog. I would definitely want to hire these people before anyone else, given the choice. (In fact, many of the people with the loud blogs are quite annoying and I would not want to work with them.)
It's not that not participating in the open source community means that you're a bad programmer, it's just that it's easy to judge the quality of work from someone who publishes their work regularly. Easier than evaluating the typical corporate applicant (with "15 years of PERL") that can't show you his code because it's owned by someone else, anyway.
I use about 15 open source tools. In my world, there are perhaps 100 projects that are somewhat important, and could possibly be used. So your pool of candidates reduces to 100?
I use 100s of libraries for developing my applications, and I know most of the authors pretty well. Big projects, like emacs, firefox, etc. are not the entirety of the open source community.
I agree with your comments but I feel that contributions to opensource projects are good for your soul and good for your CV even if they're only used by a handful of people in the world.
I've found that hobby code I've worked on is much better quality than the stuff done to deadline during working hours. Its a good to be able to say 'see my code at myproject.blah.org' and give prospective employers a chance to see what you're capable of. I'm impressed that you've written a CD burner even if I've never used it.
X does not necessarily is a project, it could be a library, a feature. If somebody tell me he wrote the Oracle support for Django's ORM, and I'm looking for somebody that knows databases, he is the right guy.
There are plenty of people who wrote x who don't, for the moment, want the moral weight, commitment, instability and uncertainty of starting a company. And GitHub probably doesn't need a bazillion engineers.
I don't think the part where they use and love the library since previously is as important as you think. The important part is probably more about creating and/or contributing to open-source projects, with everything that entails.
I think it's probably a lot more forgiving or open than that. No business can afford to be that picky, certainly not a growing one.
Your comment on starting a new company versus joining an existing one is well noted. The shift is taking place already, many startups are popping up with a developer or three that hacked their way into something valuable. With hard work and iterative releases driven by customer/user info new products can become the baseline for a new business.
Thousands or potentially millions of micro businesses are the future job.
You know, I fully agree that this is a great strategy on hiring people but it also makes me worry about a large group of people who produce high quality code that is closed-source to the company they work for and when the work day is done, they may have other things (kids, relationships, lifes tasks) that get in the way of being able to sit down and work on an interesting project.
Many people out there still love to code after 5pm but don't have much time for it. Not sure how others feel about this though.
I fully agree with the closed-source part. I've written tons of Ruby and Rails code for a company who is protecting their IP, so there's no way for me to say "Hey, I've written this and you might like it and use it". This, however, seems to be a requirement of the small startups.
It gets really frustrating, because the interview will be so much harder.
I think this is a wise hiring strategy. First of all: github is a ruby folks stuff, so "X" don't need to be Apache. It needs to be an interesting project, maybe related to the Ruby community or Web development. So there are a fairly large "X"es.
Also to write free software that is recognized as useful, is a major hint of a possibly good programmer: it means that he is passionate, and is able to identify a problem an write and design a good solution. And there is a meritocratic salt in this soup, as open source can be considered, in some way, a way to show that you as a programmer are worth of consideration.
So I admire github for this hiring strategy.
Edit: is just my feeling or I'm feeling some open source hostility in this thread?
Err... isn't that exactly what antirez is saying? People who write open source software are shipping real, working code that you can go look at to get an idea of how they program.
Those 3 words encapsulate the entire "Duct Tape Programmer" debate featuring Joel Spolsky and Jamie Zawinski a few weeks ago. I meant to inject this Jobs quote into the debate at the time, but failed to ship the comment containing the quote.
As I've said in another reply, what if you write Ruby and Rails code, yet it's closed source or protected by an NDA? You could be a better programmer than most of the open source guys, yet no one would ever know.
Then it's information asymmetry. It's tough to get around and sucks for the person on the losing end.
Suppose you can buy one of two used cars. One is a nice Lexus and one is a nicer Ferrari. They both cost the same, but the Lexus has a detailed maintenance report and a clean Carfax. The Ferrari has no records (because it is under a mythical car NDA).
It would be perfectly logical to buy the Lexus, even though the Ferrari on average would a better car for the same money, as long as we assume non risk neutral actors. Information risk goes up, value goes down. Arguably, it's a great reason to contribute to open source, if you're a programmer, to reduce the information asymmetry in future hiring processes and thereby increase your perceived value.
I think the hostility is because it's a very cocky thing to say coming from a tiny startup. It's like a small, indie band saying "we only let people join who have released famous songs".
Read or watch the talk he gave that he links to. He talks about how his big "break" came about from writing a yaml parser for Php that had "70" downloads. Hardly "famous." I think his point is that releasing code allows you to show that you take initiative, and can show at least some insight into how you solve problems.
Edit: I just reread. He sort of contradicts what he said in the keynote he links to.
He's a slippery fish. I remember when I was at Linuxcare, in the middle of the dot com boom, and all the Linux companies would have just fallen all over themselves to hire him, but he never went for any of them, which I think ended up being an excellent choice.
Yep, applying his intimate knowledge of the 80386 PC architecture to the design of the Crusoe's external ISA. I don't think he did any Linux-related work for them at all.
I think Linus refused to work for any Linux company since it would create a conflict of interest for him and give the company an advantage. Now through the Linux Foundation he can work for all the Linux companies at the same time.
I think he also received a buttload of stock from Redhat? as a thank you for pushing the OS forward. I'm researching where I heard this from now (anyone have a link?)
"Red Hat and VA Linux, both leading developers of Linux-based software, presented Torvalds with stock options in gratitude for his creation.[13] In 1999, both companies went public and Torvalds' net worth shot up to roughly $20 million.[14][15]"
Simple: at GitHub we hire "The Girl or Guy Who Wrote X," where X is an awesome project we all use or admire.
A few suggestions:
Change "we all" to "many people".
Change "or admire" to "to make money" or "to get their jobs done".
Suddenly you've opened this up to a much larger population of programmers who have done great work. Who says that the valuable work you've done has to be open source?
If you say, "I've written the software that thousands of people use to process millions of orders," there are plenty of people who will want to hear more. Then you can tell them.
If you hear Chris tell his story, he'll mention he landed one of his early jobs because of a PHP YAML parser he wrote. It's not like X has to be world changing or anything.
I assumed that "we all" referred to people working at GitHub.
I understand that there are a lot of programmers who have written excellent proprietary code. But it would make sense that GitHub would favor open source programmers, as open source programmers constitute the lion's share of their users.
There are obviously tons of good programmers that their particular "hiring practice" leaves out. However, perhaps those programmers would not be as good a fit at their company? They're talking not just about good coders, but about the culture of the company.
Whether or not one's code is open source may have little or nothing to do with one's cultural preferences. But it has everything to do with one's employer's "culture".
Suddenly you've opened this up to a much larger population of programmers who have done great work.
I doubt the OP is in the position of not having a large enough pool of people to hire to his satisfaction using his criteria.
This does not mean that there are no closed-source people that would be good to hire; but when you hire open-source developers whose work you know then you can do so with a higher degree of confidence, so if that works, why look elsewhere?
If that was Linus or Guido asking this on a job interview, I could have understood.
But when authors of proprietary, closed-source font-end to someone else's outsourced work (git) ask that question it sounds rather cynical: if you've made the decision of keeping your "X" to yourself, why shouldn't I?
Have you looked at http://github.com/defunkt? For the record, he open sources lots of stuff. It may not be github that's open sourced, but notice he says "open source"
." open source people don't always agree on making sure everything is open. If he'd called it "free software" then that be a contradiction, and surprising.
This works well when you're a Github, so YMMV. For me, since I don't run a popular revenue generating app (yet), it's difficult to woo the superstars - the people who, by definition, are at their peak (ie, most expensive).
People like me need to find the future superstars - the Lebron Jameses before they become "The King". It's easy to acquire realized talent, just throw money and equity at them. But it's much harder, and perhaps more rewarding, to discover the budding talents that flourish in the right environment. And I mean rewarding mostly in the sense of rewarding your bottom line, and sometimes in the sense of personal fulfillment.
I wouldn't say it doesn't have value though. Bring that code with you to any of your interviews. If they ask you about coding, offer to leave a hard or soft copy with them. Interviews in the software world are such a pain in the ass because people cannot easily judge how good a software engineer you are. Every method you have to help your interviewers see that can help.
Well, at least this post and thread got me to go update my GitHub account and create my first repository. I registered forever ago and never actually did anything with it, although maybe that was partly due to the fact that I wasn't very familiar with git back then. Now that I've been using git for my personal projects for the last 6 to 8 months I think I'm ready to start interacting with the gitosphere.
They did that at a company I worked for. Really big "X", guy was incredibly smart. Ended up doing absolutely no work because he was "the guy who wrote X" and could get away with it.
If I wanted it to be popular, I would have to go through an entire different process - I'd have to pick something in an area that is already popular (like rails), I'd have to maintain a blog, I'd have to have a persona, I'd have to basically market the project.
Only then do I become the dude who wrote x. And my reward is to go work for a tiny company? Would it not make more sense to just use that energy and found my own company? Would I not learn a lot more in the process?
I use about 15 open source tools. In my world, there are perhaps 100 projects that are somewhat important, and could possibly be used. So your pool of candidates reduces to 100?