Preface

This is guest post from one of webdev’s awesomesauce community contributors: Nigel Babu. nigelb contributes to a bunch of Mozilla’s web apps including Firefox Input and Socorro. He writes about Mozilla and open source on his blog and hangs out on #webdev on IRC — where we often talk about motorcycles.

At Mozcamp Asia, Tim Watts and I talked about contributing to Mozilla Webdev. When I met Tim, he asked me how I got started and what were some of the challenges I faced. This blog post is a summary of those challenges and a few solutions to help new contributors to Mozilla Webdev. This is also a condensed summary of our session, so if you missed it don’t feel too bad 🙂

Finding a Project

Finding a project to work on is the first baby step. Everything from here down is easier if you know what you want to contribute to; of course, it’s perfectly normal to be clueless as well. Everyone is mildly lost at this step at first. It helps if you have a clear understanding about what kind of code you want to write. Webdev has lots of different projects requiring different skill sets: Python/Django, JavaScript, HTML/CSS, and PHP are all in use at Mozilla. Almost all new projects require Python and Django knowledge, but we still have a few projects on PHP that you could help with — like mozilla.org and Socorro. Talk to us in #webdev with what kind of code you want to write, and we can help you find a nice project that needs help. You can start with a smaller project with fewer moving parts if you feel like it’s too much to take in. But one tip I have is: the bigger the project, the greater the opportunities.

“I Don’t Know What to Do”

It’s not easy to find something to do. I can attest to that. I know I had some trouble as well. Once you have found a project to help with, it becomes easier finding something to do. You could look at bugs with [good first bug] in the whiteboard — they’re generally good to start with. Another idea is to follow all the bugs for that project (bugmail can be noisy: set a filter or get ready for inbox explosion), so you can pick new bugs as they come in. Being in the project’s IRC channel also helps immensely. When fellow webdevs and Web QA learn that you are a new contributor and want something to do, they’ll be happy to point you to easy bugs or subscribe you to easy ones they see.

Finding a Mentor

While finding a mentor is not strictly necessary; however, it helps when you can ping someone to help you. When you find a project, some of the developers on that project are good candidates to mentor you. Feel free to ping the maintainers/developers for help when you are stuck. There are also the Stewards (https://wiki.mozilla.org/Stewards/Webdev) who can help you find a match: don’t feel shy about asking them to help you out.

Setting up Your Environment

Earlier, this was a challenging experience, sometimes it even seemed downright impossible. With the recent work we’ve done with vagrant, everything is much easier! Almost all new projects have a vagrant-based setup for the development environment and it should be much faster to get you off the ground. When in doubt, ask the project maintainers if there’s a vagrant setup for that project.