For this week’s post, I’m going to break down my Mozilla project, for anyone new to the Mozilla community (just like me 😊). Specifically, this post is intended for Outreachy candidates who are considering signing up for the Mozilla community. If you fit this description, keep reading! If not, keep reading too! 😁
I was selected to a Mozilla Data Science project (see figure above). In this project, the candidate should preferably have a proper understanding of statistical inference and/or machine learning, as well as be comfortable with Python or R languages. Also, it was necessary to be comfortable with data manipulation. That is, have skills and fundamental knowledge to perform a Data Science project.
Each new Release version of Firefox 🦊 is available as a prerelease before it is launched to the general community. It is highly desirable to utilize the telemetry from Beta versions of Firefox 🦊 to determine critical aspects of Release behavior before it is launched to the general user base. However, it is well known that the Beta population has distinctly different characteristics than Release, such as the distribution of country of origin of its users, and have higher incidents of crashes. Therefore, directly utilizing Beta telemetry to inform Release is not statistically valid.
In this context, I’ll utilize statistical matching techniques to search for a subset of the prerelease user population that is most representative of Release. In a nutshell, the goal is to find subsets of Beta users that can be used to inform how Release in the general user community will behave.
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, Mozilla Corporation.
Firefox Release Channels
The Mozilla release process delivers new features, performance improvements and security upgrades to users every four to five weeks. This consists of four development channels producing concurrent releases of Firefox for Windows, Mac, Linux and Android. Basically, there are four different Firefox release channels:
- Firefox Release ⇢ The official release of Firefox.
- Firefox Beta ⇢ Testing the next version of Firefox befire it becomes the official release.
- Firefox Aurora ⇢ For web/platform developers and early adopters.
- Firefox Nightly ⇢ Nightly releases that contains experimental features.
Firefox is released at intervals of four to five weeks, meaning that every four to five weeks there will be a new version of Firefox Release. The process occurs as follows:
- Firefox Nightly is released every 12 hours with all the changes landed on mozilla-central repo.
- Every 4 to 5 weeks, the code from mozilla-central to mozilla-beta branch is merged. The mozilla-beta branch should now only get patches aimed at stabilizing the release. Any patch on mozilla-central that should follow the approval rules for uplifts.
- Firefox Beta is released three times a week for Desktop. Firefox Beta 1 and 2 are shipped to a subset of our Beta population. The full Beta population gets updated starting with beta 3 only.
- At the end of the Beta cycle, a final build is validated by our QA and tagged for release into the mozilla-release branch.
Beta Users vs. Release Users
Beta is an unstable testing and development platform. By default, Beta sends data to Mozilla to help us handle problems and try ideas. A Beta release usually means that a website or application has had all of the major known issues fixed but has not been tested enough for an official release. So, Beta users are early adopters and Mozilla fans, who may test the next version of Firefox with stability.
Release usually means that a website or application has gone through a rigorous quality assurance process and that all major technical issues have been identified and resolved. This means that the website or application is now fully functional, debugged and ready to be released to the general public. In fact, the Release users are everyone. These users can enjoy the polished and stable features of Firefox that move the Web forward with great performance and unparalleled customizarion 😌
The main goal of this project is at a minimum, define which aspect of Release behavior I will address with the Beta subset (e.g., start-up, user engagement, browser responsiveness). In addition, determine and focus on the statistical matching approaches to address the chosen use-case.
Getting Started with Matching Methods
Statistical matching is a statistical technique used to evaluate the effect of a treatment by comparing treated and untreated units in an observational study. The purpose of matching is, for each treated unit, to find one (or more) untreated unit(s) with similar observable characteristics against which the treatment effect can be evaluated. We can define matching as…
[…] any method that aims to equate (or “balance”) the distribution of covariates in the treated and control groups.Elizabeth Stuart, Matching Methods for Causal Inference: A Review and a Look Forward
Matching methods involve taking observational data and matching people (units) who have similar characteristics but different treatments. For instance, we can’t travel through time and make a person smoke and not smoke. But we can identify two people who are similar in almost every way except their smoking status. It stands to reason the effects of smoking on the smoker can approximate the effect of smoking on the non-smoker, and vice versa. This is the idea of matching methods: create two such groups that are similar in every respect but their treatment.
Well that’s all for today. I can only say that I’m very excited and very happy to work on this project. I have some experience in Data Science, so for me it is a great opportunity to put my skills and knowledge into practice in real-world contexts.
Not to mention it is great to know that I will be helping to improve new versions of Firefox that move the web forward with great performance and supporting Mozilla’s mission to keep the internet healthy, diverse and responsive to everyone.
I really hope this blog post has shed some light on my Outreachy project with Mozilla. Mine is one of many, and each has different skills and challenges to explore. So venture into other intern blogs to discover other types of projects that might interest you!
If you have any questions, please feel free to contact me! See you in the next post 👋🏽