What is it like to work as an engineer at Mozilla?
1 August, 2012 § 3 Comments
These were my questions when I was thinking of working for Mozilla. I can now answer them :)
What IDEs do people use? How is tool support if everyone uses a different IDE? People use whatever IDE they like: emacs, vi, Notepad++, Visual Studio, and more. Some people working on the front-end team use KomodoEdit since it supports syntax highlighting (and I think code completion) for our custom XBL file format. Due to the many tools that people use, tool support is pretty low. There may be some people who have figured out how to use Visual Studio solution files with mozilla-central (our central repository), but it doesn’t come out of the box. With that being said, engineers benefit from many custom in-house tools. We have MXR (the Mozilla cross-reference for searching code), the newer DXR (a cross-reference tool for searching code that uses static analysis), and Try server (a repository that engineers can push patches to where their changes will be built on Linux, Mac, Windows, Android, and Firefox OS), etc.
There’s also a host of automated testing environments that engineers use. Each one has a specialized purpose which helps to simplify writing the tests. Unlike some companies, engineers at Mozilla are expected to write their own automated tests for their features.
How are meetings conducted? All meetings are broadcast over our video conferencing software that we use (Vidyo). This makes it very easy for remote employees to attend meetings. This means that there aren’t times where the remote employee has to remind people to use the video conferencing software.
Does Mozilla provide a computer to use for work, or would I be expected to use my personal computer? Yes, Mozilla provides some very nice computers for work. I have heard of other engineers who have 32GB of RAM. If you need hardware, you file a bug, CC your manager, and it gets taken care of.
Do you know of developers who pair-program, and how they do it remotely? I don’t know of any developers who pair program, although I’ve seen people in the office debugging code together.
Can remote developers relocate to one of Mozilla’s offices? I’ve seen remote employees relocate to one of the Mozilla offices as well as local employees relocate to become remote employees. Mozilla is way more flexible than I could have imagined.
Do developers have a “professional development plan” or some way of measuring their professional growth? Engineers have weekly one-on-ones with their manager where they can discuss the current bugs that they are working on as well as professional development plans. I have found less of a top-down emphasis on professional development at Mozilla compared to my former employer. This is an area that Mozilla is working on improving.
I’ve written before about my first few days at Mozilla and my first year. Today I saw a question on Quora about “what is it like to work as an engineer at Mozilla?”. I prefer writing on my own blog, so I’ll post my response here.
Working at Mozilla is a lot like working at your own startup. You’ve got a lot of independence and freedom to structure your time as you please. As a front-end engineer, I’m involved in lots of discussions about how users will use the software and what we can do to continue a great user experience and improve it at the same time.
The first large bug in week 1 that I fixed applied Fitts’ Law to the back button. Part of this fix ended up tweaking the opacity of the disabled buttons in our toolbar. I still remember how apprehensive and nervous I was at making a change like that. I didn’t think *I* could change how all of Firefox’ toolbar buttons appear when disabled. This was a big eye opener to me. It was my first experience at how large of a reach my work could have.
We also aren’t confined to work on our assigned projects. While I mostly work on the front-end of Firefox, I’ve also fixed bugs for Firefox OS, Firefox for Android, PDF.js, and our Developer Tools. Basically, if you see something that you think should be fixed, write a patch and get it reviewed. There aren’t any politics when it comes to getting things done :)
We have lots of data at our hands about how our users use our software. Some users opt-in to sending us Telemetry data, while other users opt-in to our Test Pilot system. From these systems we have access to millions of users, where we can ask quantitative and qualitative questions about our software. This helps us in determining if a feature can be removed as well as finding the best orderings of our application menu.
With over 400 million users using the code that you write, it’s very easy to find conversations online about your work. This view gives a really good insight in to how users are perceiving your work and if there are any things that we could change. I frequently visit MozillaZine and /r/firefox to see what our users are talking about.
Our community is very important to us. Our community is what makes Mozilla, in fact it IS Mozilla. We have tons of opportunities to get out and speak at Mozilla conferences as well as industry conferences. There are also lots of opportunities to speak at smaller community events such as workshops and college classes. I’m hoping to get the opportunity to teach a guest lesson about the Internet to some first-graders in the Fall :)
I hope this post answers some of your questions. Apologies if the writing bounced around a lot of topics while you read it. These answers sum up my experiences while working at Mozilla, I’m sure other people have their own experiences :)