Let's go back to spring, 2006. I was a regular guy, who knew how to write code, and had some free time on his hands. Back then, after a few years of using free software extensively, I decided that I wanted to stop being only a consumer of free software, and I wanted to give something back to the amazing free software community. So, I set out to seek an answer to what today seems like one of the most important questions that I ever asked myself, career-wise: “Where can you have the most impact?”
As it turned out, answering that question wasn't easy. I had a dilemma. I didn't know if I could be effective in a free software community at all (I had no experience in that back then). I didn't know what projects needed the most help. I didn't know how I could have the most positive impact that was potentially possible. I didn't know where my help was needed, and appreciated.
So I started to write down a list of all of the free software projects that I used regularly. I (unfortunately) don't have that list around any more, but I remember tens of projects were on that list. Then I sat down, gazed at the list, and told myself: “Well, this sure didn't make the choice easy now, did it?”
It certainly did not. I had all sorts of stuff on that list, from complex things such as the Linux kernel, to very narrowly scoped projects such as gnokii. I knew that I had to come up with a set of criteria in order to pick up a project from the list, so I decided that I would either look into the projects with the most possible positive impact on users worldwide, or with the projects which could get the most benefit from my expertise. The list came down to Mozilla and Wine.
Mozilla was the winner of the first category. It was the project with the most potential positive impact on the world, according to what I thought. Wine was the winner of the second category. It was the project with the most potential for taking benefit from my expertise (I used to know lots of stuff about the Windows internals, as I had been doing systems programming for Windows for a long time). The easier choice for me would have been Wine, as I already had a list of things to work on in Wine, and I had a pretty good idea what needed to be done. But I don't like things which come easy. I like challenges. So I chose Mozilla.
At that point, I practically knew nothing about contributing to Mozilla. I went ahead and started to read the hacking guides that Mozilla published at the time. Then I grabbed the source and tried to look at it. It gave me the chills. It was this huge source code which looked very intimidating. I couldn't even get it to compile! So I looked for people who would help me to get started. timeless and mcsmurf were the two people who helped me compile Firefox for the first time (yes, back in the day, compiling the Mozilla code base for the first time took a while – it took me about a month to finally get a build!). Then I started to find bugs to work on. I learned how to write patches, test them, ask for review, ask them to be committed, etc. The first patch ever committed to the Mozilla code base on my behalf was bug 338179.
Fast forward almost four and a half years later. I'm still working on the Mozilla project, and I'm pretty happy with what I do!
I have two disjoint sets of reasons why I enjoy my work in the Mozilla project: selfish and altruistic reasons.
I like to feel that there are things that every one of us can do which can have tremendous effect on the world. There are humanitarian causes in which one could participate. Most people wouldn't consider contributing to a software project as one, but I do. At the broad scope, I see the Mozilla project as a humanitarian cause to empower individuals over the Internet. We build the technology which has made some amazing things possible. Projects such as Ushahidi and Kiva are built over the Internet, and people all around the world are using the Internet on a daily basis to engage with other people, find new ideas, get involved in their society, and improve their lives.
Getting involved in the Mozilla project has also helped me become a better person. It has improved my self-confidence a lot, as it has shown me over and over that I can surprise myself (in a good way!), and it has made me feel that I'm useful. This has been extremely important to me. It has also been a constant stream of technical challenges to me, which has kept me happy. And it's always nice to see how people react when they find out that I work on Firefox. I've got a lot of compliments, and a lot of thank-you's, and it's flattering. It gives you a warm feeling inside, and I know that's something that I'm lucky to have.