Update 2019: This article was originally published on Medium.com on Feb 21, 2017, and got 183 comments on Reddit, and 237 comments on Hacker News. Many commenters said it couldn’t be done — they worked in closed source fintech shops, on BitBucket, and reasons… So I quit my job as a recruiter, got a job at a closed source fintech on BitBucket, and got it done within 15 months — read about it on Open Source.com.
Over the next 12–24 months — in other words, between 2018 and 2019 — how software developers are hired is going to change radically.
I spent 2004–2014 working at Red Hat, the world’s largest open-source software engineering company. On my very first day there, in July 2004, my boss Marty Messer said to me: “All the work you do here will be in the open. In the future you won’t have a CV — people will just Google you.”
This was one of the unique characteristics of working at Red Hat at the time. We had the opportunity to create our own personal brands and reputation in the open. Communication with other software engineers through mailing lists and bug trackers, and source code commits to mercurial, subversion, and cvs repositories were all open and indexed by Google.
Fast-forward to 2017, and here we are living in world that is being eaten by open source software. There are two factors that give you a real sense of the times:
Microsoft — long the poster child for closed-source proprietary software and a crusader against open source — has embraced open source software whole-heartedly, forming the .NET Foundation (which has Red Hat as a member) and joining the Linux Foundation. .NET is now developed in the open as an open source project.
GitHub has become a singular social network that ties together issue tracking and distributed source control. For software developers coming from a primarily closed source background, it’s not really clear yet what just happened. To them, open source equals “working for free in your spare time”.
For those of us who spent the past decade making a billion dollar open source software company however, there is nothing free or spare time about working in the open. And the benefits and consequences of working in the open are clear: your reputation is yours and is portable between companies. GitHub is a social network where your social capital, created by your commits and contribution to the global conversation in whatever technology you are working, is yours — not tied to the company you happen to be working at temporarily.
Smart people will take advantage of this — they’ll contribute patches, issues, and comments upstream to the languages and frameworks that they use on the daily in their job — TypeScript, .NET, Redux.
They’ll also advocate for and creatively arrange for as much of their work as possible to be done in the open — even if it is just their contribution graph to private repositories.
GitHub is a great equaliser. You may not be able to get a job in Australia from India, but there is nothing stopping you from working with Australians on GitHub from India.
The way to get a job at Red Hat last decade was obvious. You just started collaborating with Red Hat engineers on some piece of technology that they were working on in the open, then when it was clear that you were making a valuable contribution and were a great person to work with, you would apply for a job. Or they would hit you up. Now that same pathway is open for everyone, into just about any technology. As the world is eaten by open source, the same dynamic is now prevalent everywhere.
In a recent interview Linus Torvalds (49k followers, following 0 on GitHub), the inventor of Linux and git, put it like this:
“You shoot off a lot of small patches until the point where the maintainers trust you, and at that point you become more than just a guy who sends patches, you become part of the network of trust”
Your reputation is your location in a network of trust. When you change companies, that weakens and some of it is lost. If you live in a small town and have been there for a long time, then people all over town know you. If you move countries -however- that goes. You end up somewhere where no-one knows you — and worse, no-one knows anyone who knows you.
You’ve lost your first and second, and probably even third-degree connections. Unless you’ve built a brand by speaking at conferences or some other big ticket thing, the trust you built up by working with others and committing code to a corporate internal repository is gone.
However, if that work has been on GitHub, it’s not gone. It’s visible. It’s connected to a network of trust that is visible.
One of the first things that will happen is that the disadvantaged will start to take advantage of this. Students, new grads, immigrants. They’ll use this to move to Australia.
And that will change the landscape. Previously privileged developers will suddenly find their network disrupted. One of the principles of open source is meritocracy — the best idea wins, the most commits wins, the most passing tests wins, the best implementation wins, etc.
It’s not perfect (nothing is). And it doesn’t do away with or discount being a good person to work with. At Red Hat we fired some rock star engineers who just didn’t play well with others — and that stuff does show up in GitHub, mostly in the interactions with other contributors.
GitHub is not simply a code repository and list of raw commit numbers, as some people paint it in strawman arguments. It is a social network. I put it like this:
It’s not your code on GitHub that counts — it’s what other people say on GitHub about your code that counts.
That’s your portable reputation. And over the next 12–24 months, as some developers develop that and others don’t, it’s going to be a stark differentiator. It’s like having email versus not having email (now everyone has email) or having a cellphone versus not having a cellphone (now everyone has a cellphone). Eventually a vast majority will be working in the open, and it will again be a level playing field differentiated on other factors.
But right now, the developer career space is being disrupted by GitHub.