Open Source For Personal Gain

Open Source rocks! Everyone knows that. Community Works! Everyone knows that too. But aside from the obvious reasons to get involved in open source and the community, why should you really bother?

The Usual Stuff

It's well publicised that getting involved in the developer community, through open source (or otherwise) is a Good Thing. To quote Mr Community from the PHP world, "Community Works!" (Michelangelo van Dam).

It's also widely documented that getting involved gives you a warm fuzzy feeling inside, helps you to give back to what you've taken, builds a network of contacts, and all the other clichés that have been repeated more intelligently and by more knowledgable people than me.

So what's the point of this post?

Tangible Benefits

For me, being involved in The Community, and contributing to open source has actually given me much much more than a warm fuzzy feeling inside. I estimate that I'm earning over £15,000 per year more as a direct result of being involved. And that's if you discount the thousands of pounds of travel and accommodation I've received in the previous year while speaking at conferences. I'm really going to try and stop this post turning into a self-promotion puff piece, but I genuinely feel that I owe the career I have now to the moment I discovered the greater developer community existed. Let me try and explain to you why.

Let's roll back only 5 years ago. I was happily working for a small IPTV company writing not-very-well-structured PHP code in an office that was an hour's travel from door to door. This is not a bad commute by other's standards, and I'm not complaining. I was a Ghost Programmer - sure, I used Google to find answers to my problems, but I never blogged about them. Hell, I never even left a comment thanking them. I was happy in my bubble writing code to solve problems and then going home to my wife and kids. There is nothing really wrong with that.

Someone MUST Have Done This Before

I was working on a particularly tricky problem, I wanted to be able to drop modules of code into projects to reflect what the customer had paid. Thinking around the problem, I came to the correct conclusion that "Someone MUST have done this before...". Of course they had, but the only place I knew to find "reusable" code was (I'm not even going to link it), and that had no real answers, so I hit my best friend Google.

Of course, Google knew loads of stuff about "php module framework", and one of the results was something called the Zend Framework. We were already using another Zend product called Zend Guard, so I took a look. 2 days later without making any progress I noticed they had an IRC channel. I'd used IRC loads when I was playing online games so it was very familiar to me. I hopped in, and found a whole new world I never knew existed.

At first, I was taking all the help and advice I could get (I'm fairly sure that some of the regular faces in the channel got annoyed with me). But gradually, as my skills and confidence increased, I was able to help others in the same way that some of the longer-serving regulars had helped me.

No, Really, Tangible Benefits

5 years later and I have made some truly amazing friends who I see multiple times a year at conferences and other gatherings. But equally as important, I've got to know a whole bunch of people who do the same job as me (most are, immeasurably smarter). The most important thing about these clever, clever people is that the vast majority of them are more than happy to help you out if you have a problem.The longer you are around them, helping other people yourself, the more you are likely to receive help from these gods amongst us.

When I am interviewed for a position, I always make a point of mentioning my developer network. If I'm being interviewed for a Zend Framework position, then I mention that I have access to the people who wrote the module manager, the router, the translation layer, the doctrine integration module, etc etc. I make the point to a potential employer that you're not just hiring me for my coding ability (as amazing as it is), or just for my knowledge (which could be better), but you're hiring me for my connections as well.

That might not sit so well for some people, but thanks to my developer friends, I am earning a lot more money every year and I'm about to improve that further by being a fully fledged consultant. I'm also travelling all over the world as a speaker. Granted, I write the abstracts and give the talks myself, but I always get someone much smarter than me from my group of dev-friends to look over my content before it's delivered.

Um, So What?

Indeed, so what?

Well, the whole point of this post is not to pat myself on the back and say "look what I did!". More it's to try and let others know that this is in the grasp of anyone and everyone. For PHP substitute Ruby, Python, Perl, anything. For ZF2 substitute Wordpress, Symfony, or (for those of an artisanal persuasion), Laravel.

Getting involved is really much, much easier than it looks. Idle in the support channel and answer any questions that you can. Make PR to the docs when you see a mistake. Go to conferences! Pretty soon you'll be a familiar face, and people will be more than happy to help you progress, you'll grow more confident and the tangible benefits will follow.

In the words of a well known multi-national sweat-shop: JUST DO IT, because honestly, believe me, Community Really Does Work.


Roave man, conference speaker, pretend developer. Pool player.

comments powered by Disqus