I worked on the Firefox browser at Mozilla from 2018-2021. The role was vast and all-encompassing.
On a day to day basis my tasks spanned all or much of the following:
- the site isolation iframe sandboxing project (known internally as Fission) - more details
-
the Gecko browser engine:
- web API internals like window.open() and the Document object
- code for loading webpages, handling documents, rendering frames, allocating processes, and more
- infrastructure for low-level C++ mechanisms like IPC and XPCOM, and some parts of the SpiderMonkey JS engine
- garbage collection, cycle collection, refcounting, and Firefox memory overhead in general
- and more
-
the cross-platform Firefox Desktop application:
- the browser frontend for things like the URL bar and tabs, and lots of glue code to enable interaction between the JS frontend and C++ backend
- various devtools modules and their underlying architectures, like the inspector and networking
- session restore (as owner of the module)
- and more
-
and related projects:
- webcompat, and particularly debugging and analyzing websites to ensure that Firefox features were implemented correctly
- searchfox.org, a codesearch tool built by Mozilla and used by other open source projects like WebKit
- the rr record and replay debugger
Jumping between vastly different problem spaces was a standard part of the job, and work had a tendency of becoming mind-numbing because of how much context switching was happening. I found it to be rewarding work because of how much I was accomplishing and learning but it was stressful work nonetheless.