This question popped up on Quora recently and I offered a response (though, to be honest, I’m more curious about other people’s responses). Dave Dash, formerly of Mozilla web dev answered as well, and Jared Wein answered in blog form.
I’ve included my answer below even though, re-reading it a few days later, there’s so much more I want to add (I can’t believe I didn’t mention working with our worldwide community of employees and volunteers, or the impact of video conferencing, or the miracle of california tacos, or qdb, or mozillamemes…)
What’s your experience?
== SNIP ==
These days I’m administrative overhead at Mozilla, but I started as an engineer.
4 things that are exactly as you’d expect:
- The people you work with are outstanding. Prior employers of mine claimed to “hire well” and they probably did by industry standards. Mozilla folk are just from another league altogether. Jaw-droppingly amazing – smart, creative, motivated, fearless.
- You have immense direct scope to change the web. Teams are generally small and have clear focus areas, so your day to day work has an impact immediately. There are also pretty low barriers to cross-pollination. If wandering down a rabbit hole leads you to a bug elsewhere in the code: fix it. Barriers to “hacking in other people’s turf” are low.
- It’s really, honestly out in the open. Engineers tend to expect this since many of them have interacted with the project as volunteer contributors before coming to work here. People from other disciplines are often surprised to see that the openness isn’t a front. There are some corp-confidential things, usually around partnerships with other companies that we haven’t announced yet, and some things are restricted to our security group (which includes non-employees) but by and large the project runs, and is governed, through public meetings, mailing lists, and bugs.
- People are really mission-driven. We all remind each other regularly that we’re a non-profit – our job is to make the web better. That mission is invoked regularly as an acid test for the work we do and the decisions we’re making. Far, far moreso than I ever experienced from the mission statement of a traditional for profit shop. We still need to compete hard, we still need to win, so a lot of the time we *sound* like a hungry startup, but it comes from love.
5 things that often surprise people:
- Everything you do gets attention. Lots of attention. If you flame someone in a bug, you should expect The Register to write an article about it. If you blog about our update process, maybe Forbes. Pixel-level UI changes, user agent strings, support for niche image formats, background colour when viewing images… You are in a fishbowl, and the world is watching.
- We have a massive amount build and test infrastructure. This shouldn’t be surprising, but engineers are often coming from cultures that pay lip service to automation and testing. We’re swimming in it.
- Basically all engineering work requires code review. Again, this is as it should be everywhere, but is rarely actually enforced.
- There is profound heterogeneity of tool stack for development. People develop on any platform, have custom build systems, and use whatever tool is convenient/available/know
n to them. Coming from IBM, where eclipse was the universal IDE, it surprised me to see how different one person’s set up was from the next.
- There are twin hierarchies for engineering decision making – the corporate management chain and the project’s module ownership system. This is a work in progress and sometimes the lines blur (leaders will sometimes end up with status in both trees) but by and large technical ownership is driven from merit and work in the code, while organizational direction and prioritization is owned by formal “management.” I manage the teams that work on Firefox desktop, Firefox android, toolkit, and developer tools, but I’m not the module owner for any of those. We’ve had VPEs who don’t have commit rights.
We’ve grown a lot, very quickly, so while there’s never just one version of “what it’s like,” now is a particularly change-heavy time. I’m as curious as anyone else about the other answers that show up here. But I continue to be astonished that I’m permitted to work with this incredible sample of humanity. Astonished and humbled.
== /SNIP ==