My Mozilla Project

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! 😁

Finding Representative Users of Prerelease Firefox

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.

Project Description

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.

Firefox 🦊

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.

Release Timeline

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 👋🏽

Everybody struggles

We are already at the end of the third week of the internship and I have already faced some problems. For this week’s post, I will write about such occasions when I was stuck. Hence, if you are an Outreachy candidate or intern who has also get stuck and is hesitant to reach out to get help, this post is for you! 😉

Small Steps Every Day

These first 3 weeks of internship are being impressive and at the same time horrifying. I’m discovering so many fascinating new stuff, which ends up confusing me sometimes. On top of that, last week, I had my first video meeting with my mentors. It was a pleasant experience to finally meet them, other than by email or chat. But, I was terribly nervous 🙇🏽‍♀️. See, my English is terrible 😳. Although I have already had an exchange in Dublin for a year, I have no confidence in communicating in English. However, to my surprise (and gratitude), they were incredibly kind and patient with me.

During the meetings, I made clear my issues and problems I was facing. And every time, my main mentor (Corey) reassured me and directed me to the right path. Which is great. However, I still sometimes find myself feeling confused and stuck in something 🤷🏽‍♀️. To get around this feeling, something that has been helping me a lot is to create to-do lists ✅. Sounds silly, but it works for me. Just the simple act of writing down what you need to accomplish can spark motivation and make you feel better and more productive. A valuable suggestion is to start with the tasks you like or are good at. That will definitely help you stay motivated.

When you are preparing your lists, break each task into smaller, apparently more achievable tasks. By performing each task, you will receive a dopamine boost. While this effect does not last long, it is a sufficient motivation to encourage you when you are unmotivated. It’s magic! With small steps every day, it will be more effortless to motivate, no matter how little you consider yourself capable.

Without Struggle…

… there is no progress! Overall, I haven’t had many difficulties coding on my project yet. Maybe because I already have some experience with the languages I’m using. However, many of the new methods I am using during my Mozilla Data Science project I have never heard of. Every time my mentor suggests new methods, I spend a lot of time studying them and trying to figure out how they work in practice 👩🏾‍💻. So I am struggling as I learn to put model analysis and development into practice.

The good side of the struggle is you learn and get out of your comfort zone. It may sound intimidating at first, but trying and discovering new things will eventually be worth it. If you are in a difficult place right now, be sure there are some valuable and powerful things you can take advantage of this situation. So try not worrying so much! 😄 Remember that even the most experienced felt and went through the same fight as us. Although we are still a beginner at some topics, the main purpose of this internship is to learn and improve each day.

DON’T QUIT

I am fully aware that starting a new job/internship/project is challenging. You need to learn, retain, and understand a lot of new information, concepts, patterns, rules, and so on. As hard as it sounds, I invite you not to give up. Regardless of whether your problem is small, medium or big, enjoy every moment of this struggle and learning opportunity. Stop focusing on results and enjoy the process. You can be sure the results will arrive on time.  And remember:


Thanks for reading! 🙂 

I hope this blog post has encouraged you who are struggling or you who are thinking of applying for this wonderful program. Feel free to contact me for any further questions. See you! 👋🏽

Applying to Outreachy

On the 3rd of December, I began a 3-month Outreachy Internship program under Mozilla 🦊. In this blog post, I’ll talk about my experience with the application process of the Outreachy Internship Program. If you do not know what I am talking about, hold tight.

What is Outreachy?

Outreachy is a program that organizes three-month paid internships with free and open-source software projects for people who are typically underrepresented in those projects

Wikipedia

Outreachy provides an opportunity for working in Free and Open Source Software (FOSS) under the guidance of an experienced mentor(s) for 3 months. Outreachy internships are not limited to programming only. They also may include user experience, documentation, illustration, graphical design, data science, project marketing, user advocacy, or community event planning.

Outreachy internships are open to applicants around the world. Interns work remotely and are not required to move. Interns are paid a stipend of $5,500 USD, along with $500 USD as a travel stipend to attend conferences or events. This year, the Outreachy program is scheduled from December 2019 to March 2020.

How to get into Outreachy?

I came to know about the Outreachy program through one of my friends (thanks, Leobas 🙏). At first, I found the whole idea too good to be true. I was pretty sure I had no chance of getting the internship (oh hi, impostor syndrome 👋). However, as I had nothing to lose, I started researching about it and read as many articles as I could from motivating outreachy alums. From then on, I began to saw the idea as an incredible opportunity, which I could not miss.

Eligibility

According to the Outreachy website, applicants who are women (both cis and trans), trans men, genderqueer people, residents and nationals of the United States of America of any gender (who are Black/African American, Hispanic/Latin@, Native American/American Indian, Alaska Native, Native Hawaiian, or Pacific Islander) are encouraged to apply. That is, anyone who faces systemic bias or discrimination in the technology industry of their country is invited to apply.

Make sure you’re eligible to apply. They have strict eligibility rules for people who are students.

You will need to meet the following requirements:

  • You are or will be 18 years of age or older by the day internship round starts
  • You have not previously participated in an Outreachy, Outreach Program for Women or Google Summer of Code internship
  • You are available for a full-time (40 hours a week) internship
  • If you are a student, you must have at least 49 consecutive days free from full-time commitments

In the following, I will describe all the Outreachy application process and how I went through it. The process has three stages mainly.

Initial Application

After creating your account, Outreachy asks you to fill an initial application. This form contains questions about you, your availability, country of residence and some visa and time-zone related questions.

The initial application also includes four essay questions related to the discrimination you face in your academic/work environment. I would say this is perhaps the most important section, so think carefully before you write. You will need time to think through and properly convey your experiences. I spent more than a few days to fill all my form.

In short, this initial step helps to filter applicants who meet the eligibility criteria. As you can imagine, I qualified for the following step 🎉, which I will describe below.

Project Selection

Once the eligibility form has been filled and you’ve been accepted, it’s time for the next stage. We can all agree this is the most crucial step and a bit overwhelming part. Here, interns need to look at the proposed projects and pick 1-2 projects. There will be more information on each community’s landing page, including community chat channels and mentor contact information if you need to ask questions about the projects.

I strongly recommend that you take the time to study the entire list of projects. After reviewing all available projects, write down on a paper on which ones caught your eye. Let’s call this list the initial list. With your initial list ready, it’s time to filter projects by some criteria. In my case, I chose to select all projects that required skills that I would be comfortable with (Python and R languages). So in the end, I ended up with a list of just 3 projects. As my idea was to choose at most 2 projects, I opted for the ones that seemed most interesting to me.

The picture shows one of the projects I chose and what I was selected.

One of the projects that I chose and the one I was selected for.

Making Contributions

Chosen the project(s), it’s time to contribute! A contribution is nothing more than accomplishing any project task you choose. Put differently, a contribution can represent something small, like a bug fix or a documentation improvement.

In the project I chose, the candidates made contributions through the project repository. All steps to contribute have been provided in the GitHub repo. The contribution process of this project, especially, was the same as that of another Data Science project. In this case, the candidates should inform the mentors what was the order of preference between the two projects.

The contribution process consisted of two steps:

  1. The steps of the initial contribution process were as follows:
  • Clone the repository
    • This will download the relevant dataset in initial_contribution
  • Load the data into R or Python
  • Perform exploratory data analysis
  • Perform data cleaning, if necessary
  • Primary Task – Answer the following questions:
    • Which single field in dataset.csv best describes the SalePrice field?
    • Why did you choose this field? Please thoroughly explain your reasoning.
  • E-mail the final notebook/script to one of the mentors
  1. The steps of the second contribution process were as follows:
  • Utilize the notebook completed in initial_contribution
  • Train a regression model predicting SalePrice from the other fields in dataset.csv
  • Primary Task – Answer the following questions:
    • Why did you use the regression model technique you chose?
    • Why did you choose the predictors/covariates/variables you used?
    • How well does your model perform?
      • Do you believe the model overfits or underfits the data?
      • Is there a subset of the data that the model performs better on?
  • E-mail the final notebook/script to one of the mentors

At the end of each step, applicants had to register their contributions to the Outreachy website. Remember that you cannot submit a final application until you register at least one contribution. In my case, exactly two contributions were required for the submission of the final application.

Start your contributions early!

During this stage, It’s more important to ask questions and send contributions at a steady pace than try to make a big, last-minute contribution. If possible, start with a smaller contribution then try a more complex contribution. The goal is to show you have the skills to be a successful intern.

After you select a project and have made a contribution, record it on the Outreachy website. In fact, you can record a contribution as soon as you start working on it. On top of that, the website allows us to go back and edit our recorded contribution at any time. Therefore, you don’t have to worry so much.

Once you submit a contribution, your mentor or another community member will review it. They usually have feedback and changes you will need to make. Do not understand it as a critique of your work or skills, but rather as a chance to learn something new and improve your skills.

Be sure to follow all suggestions and feedback from the reviewer, you may need to submit your contribution more than once. Therefore, continue working with your mentor until your contributions are ready to be included in the project.

Final application

Finally, after registering at least one contribution on the Outreachy website, you must create a final application for each project you applied for. The final application asks four questions:

  • Experience with this community
  • Experience with other communities
  • Relevant Projects
  • Outreachy internship project timeline

Make sure to complete all the project’s forms at least a day before the deadline, as you can always go back and make any edits.

Intern announcement

Intern selections are not shared with applicants until interns are announced. This is probably the worst & best part of the whole process. Worse, because it is very difficult to contain anxiety waiting for the result. But, it’s best when the result is finally shared and together comes the following news:

Some tips for future aspirants

  • Start the application process early. Don’t submit your initial application at the last minute!
  • Fill your eligibility form carefully.
  • Choose your project wisely, seeking projects with requirements that match your skill level.
  • Make as many contributions as you can.
  • Keep an eye on your competitors. Try focusing on your skills that could be a differentiator.
  • Join the IRC/Slack chat for the project. Introduce yourself to the prospective mentor.
    • Make regular communication with the mentor and other members of the community.
    • Mentors are friendly and patient, and it’s okay to ask questions multiple times.
  • Finally, stay positive! Look at the application process as a learning experience and a fantastic opportunity.
  • If at first, you don’t succeed, don’t give up! Try again.

That’s all folks (for now)! I hope you could gather some insights about the Outreachy application process. Feel free to contact me for any further questions. Best of luck to everyone willing to apply! 🙏🏽

Hello World!

Hi, I’m Mariana 🙂

Hey, guys! As far as I can remember, this is the first time I need to blog and write about personal events. I am certainly not the best person for this task. I’m terrible when it comes to expressing myself. But, I will do my best to make this blog as interesting and informative as possible. I’m just starting this new blog to document my internship at Outreachy on a Mozilla project. So stay tuned for more and subscribe below to be notified when I post new updates.

Who am I?

My name is Mariana, I’m from Brazil and I use she/her pronouns. I’m 26 yo and currently finishing my master’s degree in Computer Science at @UFMG. Recently, I just got accepted to work as an Outreachy intern for Mozilla under the project “Finding Representative Users of Prerelease Firefox“. I’m in love with Complex Networks, Social Network Analysis and Data Science areas. So I’m very excited to start working on my project!  😊

In my free time, I relax listening to music, watching TV series, playing board games and walking with my dog, Forró 🐶
Sometimes, I like to pretend that I’m a graphic designer and create websites, cards, flyers, presentations… it would be my second career for sure! 🤣