I just started an internship with Mozilla’s Quality Assurance team as part of the GNOME Foundation’s Outreach Program for Women (OPW), but I almost didn’t even apply! In fact, I had decided not to apply for silly reasons, and then a week before the extended deadline I abruptly changed my mind — after some encouragement from the wonderful people at my Hacker School batch. (As it happens, I almost didn’t apply to Hacker School either. This is a pattern.)
Of course, I’m very pleased that I did apply in the end, not just because I was ultimately selected for an internship but because the process itself was incredibly instructive. By the time I submitted my application, I felt like I could start contributing to Mozilla on my own regardless of whether I got an internship.
Overcoming initial barriers is built into the OPW application process: I interacted with people on IRC and it was scary but productive and good; I posted to project mailing lists and it was scary but productive and good; I added information to bugs in Bugzilla, and it was scary but productive and good. You get the idea… I made mistakes sometimes, but I fixed them and nothing terrible happened and no one seemed to hate me.
Wait, what’s this Outreach Program for Women? The GNOME Foundation and many others want more people who identify as women or genderqueer to be involved in contributions to free and open source software (FOSS). Awesome! So one thing GNOME does is organize payed internships with various FOSS organizations especially for this category of humans. To apply, the human in question must learn about the participating organizations and their available projects, choose one or more projects of interest, interact with current contributors and contribute something themselves. Depending on the project, one’s application process might take a few weeks. The project descriptions indicate how you can get started with contributing, and you need to communicate with the project mentor about what you might work on during the application.
My Application Experience
I started working on my application a week before the deadline, and I spent 7 full days on my application, setting aside my other Hacker School projects during that time. By the deadline, I wasn’t sure my contribution was substantial enough but I submitted what I had anyway. That being said, the process seems relatively flexible and varies across organizations. I could have expanded my contributions after the application deadline — the reason I didn’t boils down to other time constraints on my side.
My application was for the Bug Wrangler internship with Mozilla. When I contacted the designated mentor, Liz (@lhenry), I explained that I’m more interested in the software development aspects of the position, and she suggested some more specific projects based on that.
At that point, I only had a few days left to make a contribution to the project in question, so I focused on gaining experience with tasks related to the bug life-cycle at Mozilla: reproducing and adding information to unconfirmed bugs in Bugzilla, testing the latest nightly build of Firefox to verify that bugs have been fixed, and so on. I also set up the development environment for a Django project I might work on during the internship. I managed to build the project and wanted to contribute something to it as part of my application, but I felt that I didn’t have enough time to communicate with the project team before the application deadline. (I regret this; maybe I should have just jumped in.)
Here are some examples of how I spent my time during the application process, aside from making my contributions and writing the application itself. These small tasks add up, both in terms of time and in terms of making future contributions easier.
- Reading, so much panic and reading. Things I read or skimmed: project descriptions, contributor/tool guides/documentation, Bugzilla terminology and Firefox/Mozilla components, bug reports, pull request discussions on Github, mailing-list archives, press releases, blog posts by past interns, project meeting minutes, IRC etiquette, etc.
- Setup and configuration: registration with things like Bugzilla, IRC, Mozillians; choosing and setting up an IRC client; configuring a testing environment for Firefox.
- Communication : emailing and chatting with the project mentor about available projects, my interests, and the application process; asking questions on IRC when I run into issues; I participated in a small video meeting during a Mozilla Test Day; introduced myself and asked for help on a couple of mailing lists.
- Learning in preparation for more contributions: trying out the specific tools I might work on to gain a user perspective; reading about Django and building one of Mozilla’s Django projects; setting up a database for it.
My top tips for applying:
- Communicate a lot. (I think that’s almost the whole point.)
- Keep a brief, informal log of what you do as you do it. The log is handy for when you have questions later, when you come back to the project after a few weeks away, when you’re writing your application, and so on.
- Don’t assume there is some universally accepted, perfect approach to your task. There are grey areas. Example: how to classify a particular Firefox bug. So, do ask questions! Remember that “experts” ask questions, too, and interesting discussion among several helpful people many ensue, which is really cool. :)
I’ll say it again: the OPW internship application process is a great learning experience. Although I already knew a good amount about FOSS before I got started, I now have a much better sense for how a giant, open source project like Firefox grows and stays healthy.
Do apply! Encourage others to apply!