The journey of a thousand miles begins with one step. —Lao Tzu
Open source participation offers a sea of benefits that can fine-tune and speed up your career in the tech, including but not limited to real-world technical experience and expanding your professional network. There are a lot of open source projects out there you can contribute to—of small, medium, and large size, as well as unknown and popular. In this article we'll focus on how to contribute to one of the largest and most popular open source projects on the web: Mozilla.
Why contribute to Mozilla?
Real world experience
Mozilla is one of the largest open source projects on the web and is itself a host to many other open source projects. So, when you contribute to large-scale open source projects like Mozilla, you gain real-world exposure to how things really work in the tech field, increased knowledge of technical jargon and complex system functionalities, and most importantly, an understanding of how to take code from a local system to a live code repository. You'll learn many of the tools and techniques contributors are using to manage these large-scale projects, like GitHub, Docker, Bugzilla, etc.
Community is the heart of any open source project. Contributing to Mozilla connects you with official Mozilla staff and mentors, senior Mozilla contributors (aka Mozillians), and your own local Mozilla community. These are like-minded people who care and strive for improving open source like you do.
Also, you'll have a chance to build your own identity in the Mozilla community and to inspire other fellow Mozillians. If you want to, you can also eventually mentor others.
Events and swag
No community is complete without a few fun-filled events and bags of swag. Mozilla is no exception.
Contributing to Mozilla will give you a chance to take part in exclusive Mozilla events. And once you've become a seasoned Mozilla contributor, you'll be able to host your own local Mozilla community events (and Mozilla may assist with funding). Plus, of course, some cool swag—stickers, T-shirts, mugs, and more.
CC BY-SA 4.0 Mozilla India Meetup 2016 by Moin Shaikh
How to contribute to Mozilla
Whether you are a programmer, web designer, QA tester, translator, or something in-between, there are many different ways you can contribute to Mozilla. Let's view it in two main parts: technical contribution and nontechnical contribution.
CC BY-SA 3.0 by Mozilla.org
Technical contribution is for people who love programming and who want to make an impact with their code. There are a number of projects built in specific programming languages where you can hone your talents:
- If love C++, you can contribute to the core layers of Firefox and other Mozilla products.
- If you know Java, you can contribute to Firefox Mobile, Firefox on Android, and MozStumbler.
- If you know Python, you can contribute to web services, including Firefox Sync or Firefox Accounts.
- If you know Shell, Make, Perl, or Python, you can contribute to Mozilla's build systems and release engineering and automation.
- If you know C language, you can contribute to NSS, Opus, and Daala projects.
- If you know Rust language, you can contribute to RustC, Servo (a web browser engine designed for parallelism and safety), or Quantum (a project to bring large pieces of Servo into Gecko).
- If you know Go language, you can contribute to Heka, a tool for data processing.
To learn more, visit the Getting Started section on the Mozilla Developer Network (MDN) to take a look at various contributions areas.
Apart from languages and code, you can also contribute with your QA and testing skills by actively testing various parts of Firefox web browser, Firefox Android browser, and Mozilla's many web properties, such as Firefox add-ons, etc.
You can also make nontechnical contributions to Mozilla, focusing on areas like QA testing, document translation, UX/UI design, web literacy, open source advocacy, and providing user support to Mozilla Firefox and Thunderbird users.
QA testing: The Mozilla QA team has a large and vibrant community around the world that is deeply involved in the workings of Firefox and other Mozilla projects. The QA contributors take an early look at various products, explore new features, file bugs, triage existing bugs, write and execute test cases, automate tests, and provide valuable feedback from a usability perspective. To get started or to learn more about the Mozilla QA community resources, visit the Mozilla QA community website.
UX design: If you're a creative designer or a passionate geek who loves to play with colors and graphics, Mozilla has a lot of space for you in its community where you can design usable, accessible, delightful Mozilla projects. Check out this Open Design repository on Mozilla's GitHub page.
User support (forum and social support): This is where hundreds of thousands of Firefox and Thunderbird users like you and me come and post questions about Firefox and Thunderbird, and this is where they get answers from Mozilla contributors like us. This requires no coding genius, no design skills, and no testing abilities, only handful of Firefox knowledge to get started as a Firefox User Support contributor. Check out this Get Involved section to join User Support at SUMO. Support is probably the easiest yet most important areas to commence your Mozilla journey. (Note: Three years ago, I began my Mozilla journey at the Social Support forums.)
Writing knowledgebase and help articles: If you like writing and teaching, then the Knowledge Base is the place for you. Mozilla is always looking for contributors who can write, edit, or proofread articles in English for Firefox and other products. Thousands of users surf these knowledgebase articles every week, and you can make a robust impact by sharing your wisdom and writing help articles for them. Visit the Mozilla Knowledge Base site to get involved.
Localization, aka l10n: Mozilla's products, like Firefox, are used by millions around the globe and by those speaking many different languages. People need these products in their own language. Language localization is an area that is very much in need of contributors. Projects requiring your translation and localization skills include:
- Mozilla products, such as Firefox
- Mozilla websites and services
- Mozilla marketing campaigns
- SUMO product support documentation
- MDN developer documentation
You can visit Mozilla's l10n site to get involved.
Teaching and web literacy: One of the fundamental mission objectives of Mozilla is to keep the web accessible to all. To achieve this mission objective, Mozilla strives hard to educate and enable web users by providing them with the tools and technologies of web literacy. This is where you can help with your teaching skills. If you are a passionate teacher who loves to share knowledge and show the masses all about the Internet, take a look at Teach the Web initiative by Mozilla. Teach your local community, school kids, your friends, and others about the Internet and web literacy.
Advocacy: If you are passionate about Mozilla's mission, you can spread the word by advocating for the Mozilla mission. While advocating for Mozilla's mission, you can contribute by:
- Tackling public policy and fight for an open internet and user privacy
- Helping the web be more interoperable by working with site owners on compatibility
- Helping web authors improve how they write about the open web
- Showing your Mozilla and Firefox pride as Firefox Friends
To begin promoting Mozilla's mission, take a look at the Mozilla Advocacy page.
If you're lost, I'm here to help you get started!
I know that as a novice contributor, this article might be an overwhelming amount of information for you. If you need further directions, resources, or references, you can ask me in the comments below or you can ping me on Twitter. I would be very happy to help you get started with your first contribution (of many more!) to Mozilla.