Back in the day when I was a college student, I was participating in "technology roadshow" events around the country presenting Drupal to various people. At one occasion, I presented to primary school and high school teachers and surprisingly, one of the teachers from my old high school was there, interested in the topic. We explained with my co-presenter István Palócz, that Drupal is free (as in speech and in beer), and that they can just install that for their school (as István did at that time), and use as an intranet or their public facing site. We went on and on about the goodies included, about the fantastic contributed tools and solutions.
At the end of our session, the teacher came up to me and looked puzzled. She did not understand why would we work on a system that is put out for free. After all our time is very valuable and we could just do something that (directly) earns us money. It was kind of hard to summarize that in a short answer, and I'm not sure I was satisfying. People come back to me with this question from time to time ever since, so I thought distilling my thinking would be a good idea.
First you get to work on cool technology. As a college student, I could pick what I was interested in and take my time with that. Many students critique their university for not providing up to date topics. Well, you can provide it for your self. There is nobody forcing you to work on outdated, decades old legacy stuff if you are on your own to choose what to contribute to.
Oh, you are not even on your own! You get to work in an international team. There is nothing more valuable for most jobs that you can work in teams, you can resolve conflicts, perfect ideas, drive development to completion. Getting to know each other at meetups and conferences, you can make great friends and connections. Next time you need someone to explain how a complex bit of process works, you'll find the right person.
Meetups and conferences are of course not just about seeing each other. You get to show off your work and talent, which definitely helps you understand your own project even better. Needing to summarize for your audience you'll find the holes in your own concepts, you are forced to take a third party look at your own work, which is enlightening. Blogging about your own work helps, but not at the same level. István and I also found that conferences for these open source technologies are lacking, so we organized various events (PHP and Web development conferences) which got us valuable experience in event organization but also got us best understanding of the scene and current technology.
Oh, and you get to travel, which is quite nice. While being an active member of the PHP community, I got to present at various PHP conferences, where the business model works a bit different to Drupal conferences. Entry prices are much higher and presenters get full reimbursement for travel and accommodation from the conference organizers. What's a better combination for a college student than all the above? You work with cool technology, show it off and get to travel at the same time? Wow! (By the way Drupal conference speakers are not financed by organizers but many events, especially Drupalcons offer scholarships to contributors, watch out for those!).
I think however that it is key to balance making money and contributing back. When I was teaching Drupal, I was submitting bugs and solutions as we found them at the course. I built modules for stuff that I've seen missing. I contributed to the Hungarian translation of Drupal, so it is available 100% translated at the course. Of course many others benefited from that. Grant programs even codify this balancing. When I participated in Google Summer of Code, I was working on localization tools for the Drupal community, funded by Google.
In summary, primarily I was having fun working on great technology, but I was making great friends, get to know people around the globe, widen my understanding, get to travel to various places in around Europe and the US and make money. Well, if you need a good way to ensure your job security, I think this is a way. Your active work life is documented all around the internet, you've been to conferences, established your name in the industry. When you are compared to someone who worked on a closed source legacy system and can only be believed for the pieces in his CV (further details of which are under NDA), who is less risk to take on for a company?
Eventually, although I did stretch it rather long, I finished college, and looked for work. With this genuine focus on collaborative work and open source, I decidedly was looking for a job in open source. And I was grabbed right away by Acquia, even before you knew it existed. And wow, it was a good move!
In the first months, I get to keep working on Drupal 6 core exclusively, then focused on working on acquia.com and eventually drupalgardens.com. While both of these later projects include custom solutions, most of what we are working on is contributed back to the community. Acquia sponsored us to help port many modules to Drupal 7, the latest of which was moving the formbuilder Drupal 7 port forward. I was backed to help with the drupal.org redesign, to collaborate with many other fantastic people on this enormous size project, so I managed to help out porting the site to Drupal 6 early last year and establish the cross-site navigation and help with the theme. Acquia just sponsored a dedicated engineer on Drupal 7 criticals this past month, to help get it through the finish line.
And it is not just that. Acquia engineers also have a 13% time thing (similar to Google's 20% time), that is two days every three weeks to work on their own projects in the community. There is no mandate as to what are you working on. Engineers work on their own project issue queues, work on core issues, prepare presentations for conferences, and so on. I was continuing my involvement with the Drupal.org redesign by helping test it on localize.drupal.org, fixing issues with the cross-site navigation and so on. I'm working on a Localized Drupal install profile, the localization server backend for drupal.org, security and core issues in that time. Are these directly valuable for Acquia? Sometimes yes. Are these indirectly valuable for Acquia? Oh, definitely. Growing Drupal users with a more inviting Drupal.org, by easier multilingual support is in the interest of everybody involved, not just Acquia. I also get to keep my localization expertise up to date and helping out with such questions across the board with Drupal Gardens, Acquia Network support customers and Drupal Commons user questions alike.
Look, working on open source can be your life insurance. And picking a good company who supports that is the way to sustain it for good. I'm glad Drupal has various companies like that and especially glad that my choice with Acquia was this great in the past three years. Looking forward to what is coming up!