Outreachy

From MozillaWiki
Jump to: navigation, search

Mozilla has participated in the Outreachy program for several years. The goals of the program are to increase participation from under-represented groups in free and open source software. Participation is open:

  • internationally to all women (cis and trans), trans men, and genderqueer people
  • also open in the U.S. to all Black/African American, Hispanic/Latin@, American Indian, Alaska Native, Native Hawaiian, and Pacific Islander people

We provide a supportive community for beginning to contribute any time throughout the year and offer three month paid contribution opportunities twice a year.

Useful links for More Information

Outreachy Program Cohort: Round 13 (Dec 2016-March 2017)

Improve the first-run experience of Firefox's location bar

Mentor: Gijs Kruitbosch
Participant: Svetlana Orlik

Firefox's location bar currently uses your bookmarks, history and search engine to provide you with useful search results. When you're a new Firefox user, your bookmarks and history are empty, and so the initial experience can feel disorienting and unhelpful.

We'd like to provide users with an initial set of "autocompletion" results that provide domains that they are likely to navigate to. So that even when you're a new user, if you type in "face", we autocomplete to "facebook.com", and so on.

Make WebExtension Development More Awesome

Mentor: Kumar McMillan
Participants: Shubheksha Jalan and Elvina Valieva
Shubhesksha's Blog
Elvina's Blog

WebExtensions let anyone extend and customize their web browser, such as blocking ads on every website they visit. This is an exciting time for the API because it’s now possible to write a single extension that works in both Firefox, Chrome, Opera, and soon IE. At Mozilla we provide several tools and resources to make developing extensions fun and easy but we’d like to make this development experience even better.

The participant will improve the productivity of WebExtension developers in the following ways. Most of these tasks involve changing the web-ext command line tool but others may involve writing documentation or example code.

  • Utilize common web developer tools when building extensions.
  • Automatically keep the web-ext tool up to date to avoid bugs.
    • Alert the developer if their version of web-ext is out of date. More info.
  • Offer extension “linting” in code editors
  • Add a new web-ext command that lays out a directory structure for an extension
    • This command would automatically generate a manifest.json file and other common files to help the developer get started on a new extension. More info.
  • Build a mock WebExtension API for use in automated tests
    • Invent a JavaScript library that developers can use to execute tests for their extension without having to launch a web browser. More info.

Build a Library of Inclusion Best Practices and Case Studies

Mentors: Larissa Shapiro and Lizz Noonan
Participants: Bee Padalkar, Kristi Progri, and Nasma Ahmed
Bee's Blog
Kristi's Website
Nasma's Website

This project is a community research project to identify and document examples of successful inclusive teams and communities within Mozilla, in order to amplify successes and highlight bright spots. The Outreachy participant will assess programs for suitability, and then interview participants, and then document case studies, referencing appropriate research and industry/community best practices. This is a great opportunity for a person interested in Diversity and Inclusion, Community Building, or User/Community research.

Improving user experience of Firefox Accounts

Mentor: Vlad Filippov
Participant: Divya Biyani
Divya's Website

There are several pending initiatives that are focused on improving the user experience of Firefox Sync and Firefox Accounts. As part of this Outreachy internship project, the participant will be involved in improving user interaction, running experiments, and measuring success of certain features.

Her software engineering skills will assist in the following:

  • Developing new application improvements to reduce the number of user errors on password reset, password change, and sign up flows.
  • Improving the verification rate and speed of new users signing up for Firefox Accounts.

To learn more about Firefox Accounts project check out: fxa.readthedocs.io/en/latest/

Add support for OpenAPI to Kinto

Mentors: Ethan Glasser-Camp and Rémy Hubscher
Participants: Mansimar Kaur and Gabriela Surita
Mansimar's Website

Kinto has a fairly comprehensive set of documentation that describes its API. However, the cool new thing is OpenAPIs (formerly known as Swagger). Documenting our API using this specification would facilitate the implementation of client libraries in other languages as well as open the door to lots of other projects, including "interactive" documentation which has buttons that launch requests against a live server.

The Kinto team's participants will work on developing OpenAPI support in Kinto. The reservoir of tasks includes:

  • Document the existing API by writing an OpenAPI specification. This will involve reading the existing documentation and experimenting with the Kinto server.
  • Add runnable examples to the documentation. This will involve comparative analyses of available tools as well as working with our Sphinx-based documentation.
  • Add an automated test that detects when the spec is out-of-date. This would involve working with our py.test-based unit testing suite.
  • Write a mechanism to generate an OpenAPI specification from the Kinto source code. This would require writing Python code that hooks into the server code to identify APIs.
  • Investigate the use of the OpenAPI specification to do fuzz-testing against the Kinto server. This would require an investigation of fuzzing tools and learning how to use them in a customized way.

Azure Blob Storage client library

Mentors: John Ford
Participant: Elena Solomon
Elena's Blog

The Taskcluster team at Mozilla builds an automation platform, similar in scope to Buildbot and Jenkins. The project is built to support the continuous integration testing of Mozilla projects like Firefox and Rust as well as projects that Mozilla participates in like NSS. Taskcluster is a built using distributed 'cloud' computing services where possible. We use the Azure Storage framework for storing a lot of things. This library has Queue storage, Table Storage. We have a wrapper that we like a lot called 'azure-entities' in NPM.

The goal of this project is to write a library to wrap the Azure Blob Storage service. A preliminary effort has already been done. This project's participants will take this work and extend it to cover the majority of the Blob Storage API.

We specifically would like to have the following:
1. All Rest API endpoints implemented using input validation to ensure that only valid data makes it to the API. JSON Schema is a great tool for this
2. Ability to specify a JSON Schema to validate objects that we'll store or append to blobs, and also that we read out from them
3. Ability to use Shared Access Secrets (SAS) as authentication
4. Stretch goal of adding SAS for Blob storage to our authorization service

Improve Template Logic for Taskcluster-Github

Mentor: Brian Stack and Dustin Mitchell
Participant: Irene Storozhko

The Taskcluster team at Mozilla builds an automation platform, similar in scope to Buildbot and Jenkins. The project is built to support the continuous integration testing of Mozilla projects like Firefox and Rust as well as projects that Mozilla participates in like NSS. Many of these projects are developed on Github, and the Taskcluster-Github service acts as the interface between the two systems, creating tasks in response to Github events and posting status updates back to Github. As other Mozillians have started using Taskcluster-Github, they have identified some issues and missing features in the service. With those fixed, more Mozillians can use TaskCluster to improve the web.

This project involves addressing some of the more pressing user-identified issues with TaskCluster.

It is a collection of smaller projects:

  • Add support for creating tasks in response to new Git tags. This would allow users to run "release" tasks when they push a new version tag, for example.
  • Make the repository enrollment process "self-serve". Currently, if a team wants to use Taskcluster-Github, they must ask a person on the Taskcluster team to set that up for them. That can be slow and discourages experimentation. With this project completed, users can set up a new repository with a few clicks.
  • Add "build shields", similar to http://shields.io/ that will show the latest status of a Taskcluster-Github build or test run.

Webcompat.com Content & Participation Experience Researcher

Mentor: Adam Stevenson
Participant: Mesha Lockett
Mesha's website

Mozilla's Web Compatibility team builds and maintains a website called webcompat.com that allows individuals to easily report site compatibility issues - and to allow us to better understand the larger picture of compatibility issues affecting Firefox users on the web.

In this Outreachy project, the participant will commit to one or more of the following projects to help us improve our on-boarding process for new contributors:

  • Review & update web compatibility documentation
  • Identify and promote good features and bugs that need a contributor on social networks
  • Make creative assets to be used on webcompat.com
  • Review the user experience for contributors to webcompat.com
  • Help redesign the contributors page on webcompat.com
  • Create screencasts or scripts for screencasts that explain how to contribute to webcompat.com
  • Assess the current workflow and suggest areas for improvement

Make Treeherder faster with ReactJS

Mentor: Cameron Dawson
Participant: Casey Williams

Treeherder is growing. More people are using it every day. And the amount of data it displays is also growing. So we need to expand its ability to scale to more and more data. Treeherder is primarily written in AngularJS on the front-end. However, we display thousands of small objects on the main landing page. Using Angular’s ng-repeat for this proved unacceptably slow. It was converted to using JQuery and raw JavaScript DOM manipulation which has been acceptably fast for a while, but is harder to maintain. ReactJS has been used in other parts of the product to significantly improve performance and is easier to read and edit. The participant will convert the existing job matrix rendering to use ReactJS.

For Future Applicants

  • Next Outreachy round is Winter 2016-17. Keep in touch by reading here or on gnome.org/outreachy to learn application deadlines.

Application Process

Applicants and mentors, please review the Outreachy Eligibility and Application Information page to learn more about applying for Outreachy.

First steps for applicants to Mozilla:

  1. Set up IRC.
  2. Set up a Bugzilla account and a Mozillians profile. Please include your IRC nickname in both of these accounts so mentors can work with you more easily. For example, Eve Smith would set their Bugzilla name to "Eve Smith (:esmith)", where esmith is their IRC nick.
  3. Please look at the projects below, consider your options, and chat with Mozilla mentors on IRC. You need to make a small contribution to the area you wish to apply for.
    • To chat with Mozilla mentors, join the #outreachy channel on irc.mozilla.org.
    • To ask general questions about Outreachy or the application process, you can also try #outreachy IRC channel on irc.gnome.org.

Projects to Apply for

Outreachy Round 13 applications have closed, but we encourage you to apply to the next round of projects in April.

Got Questions? Ask:

Past Outreachy/OPW internships

Complete List of Participants

ROUND 12

Ana Ribero

Rakhi Sharma

Manel Rahem

Deepthi Venkitaramanan

Benjamin "Benny" Forehand, Jr.

Ipsha Bhidonia

Anjana Vakil

Rutuja Surve

Andrea Del Rio Lazo

Kristel Teng

Katie Broida

Decky Coss

Jen Kagan

ROUND 11

Lauren Conrad

Participant: Lauren Conrad

Based in: Rye Brook, New York USA. (For anyone who doesn't know, that's a suburb right outside New York City!)

Mentor: Joni Savage

"I am thrilled to be working for such a well known company and to be translating my writing skills into the tech world."

Project: SUMO - Build a tutorial or training tool for new technical writers

Project blog: www.laureneconrad.com

Roxana Ilie

Participant: Roxana Ilie

Based in: Bucharest, Romania

Mentor: Patrick McManus

"I am very excited to be joining the Mozilla Outreach Program because after enjoying so much using the browser, I will have the opportunity to give something back and use my knowledge in order to help the community to improve Mozilla Firefox."

Project: Battery Friendly Platform Networking Deadline Scheduler

Richa Rupela

Participant: Richa Rupela

Based in: Bikaner, Rajasthan, India

Mentor: Anne van Kesteren

"Super excited to work on Whatwg project, mentored by Anne van Kesteren. Mozilla Outreach program has given me a great opportunity of working with a such a elite community. Looking forward to an awesome winter where I will work on the HTML standards!"

Richa's project blog: https://richarupela.wordpress.com/

Project: Contribute to the HTML Standard!

Shweta Oak

Based in: Mumbai, India

Mentor: Alexis Metaireau

"I am extremely excited to be a part of an organization that is so instrumental in the development of the open web and get a chance to make contributions that enrich the lives of people."

Project: Kinto — Make instances discoverable

Jullie Utsch

Participant: Jullie Utsch

Based in: Belo Horizonte - MG Brazil

Mentor: Ilana Segall

“What makes me excited about Outreachy: Being part of a great community, sharing with incredible people and taking part in making the tech industry a little more diverse. :)”

Project: Visual Design with Research Data

Cynthia Anyango

Participant: Cynthia Anyango Based in: Nairobi , Kenya

Mentor: Karl Thiessen

"I am excited to join Mozilla for the outreach program especially the project I am attached to because I get to contribute to open source Mozilla services that make lives better"

Project: Enumerate (and Dockerize) the tests! (Quality Assurance)

Nikki Bee

Participant: Nikki Bee

Based in: Alberta, Canada

Mentor: Josh Matthews

"I'm excited at the chance to learn Rust and contribute to a major FOSS project, especially for an organization that has been as welcoming as Mozilla."

Project: Servo: Complete implementation of Fetch standard

My Lê

Based in: Paris - France

Mentor: Ricardo Vazquez

"Proud to be part of Mozilla Outreachy Program, sharing knowledge and contributing to the Open Web."

Project: Open Source Designer, Mozilla Foundation

ROUND 10

https://wiki.gnome.org/Outreachy/2015/MayAugust#Participating_Organizations

Thalia Chan (Tchanders), London, UK - Socorro crash statistics front-end development - Adrian Gaudebert

Alice Duarte Scarpa (adusca), Rio de Janeiro, Brazil - Integrate the ability to arbitrarily retrigger jobs into functional tools & production quality code - Armen Zambrano Gasparnian

Gloria Dwomoh (blossomica), Piraeus, Greece - Air Mozilla web design and development - Peter Bengtsson

ROUND 9

https://wiki.gnome.org/OutreachProgramForWomen/2014/DecemberMarch#Participating_Organizations

Lisa Hewus Fresh Portland, OR, USA - Air Mozilla Web Design and Development - Peter Bengtsson

Tessy Joseph (tessy), Kerala, India - One and Done - Rebecca Billings

Barbara Miller (galgeek), Portland, OR, USA - QA/Automation - Henrik Skupin

Adam Okoye (aokoye), Portland, OR, USA - SUMO/Input Web Design and Development - Will Kahn-Greene

ROUND 8

https://wiki.gnome.org/OutreachProgramForWomen/2014/MayAugust#Participating_Organizations

Francesca Ciceri (MadameZou), Massa, Italy - Bug wrangling - Liz Henry

Joelle Fleurantin (Queeniebee), New York, NY, USA - Maintaining the Gateway: Improving Mozilla Wiki through updating Information Architecture and Theme - Christie Koehler

Maja Frydrychowicz (maja_zf), Montreal, Quebec, Canada - Django development for One and Done - Liz Henry

Sara Mansouri (sara_mansouri), Saskatoon, Saskatchewan, Canada - Redevelopment of badges.mozilla.org and other contributor gamification infrastructure - Larissa Shapiro

ROUND 7

https://wiki.gnome.org/OutreachProgramForWomen/2013/DecemberMarch#Participating_Organizations

Isabelle Carter (ibnc), Springfield, MO, USA - Servo - Lars Bergstrom

Jennie Rose Halperin (jennierose), Carrboro, NC, USA - Community building - Larissa Shapiro

Jennifer "Nif" Ward (nif), Oberlin, OH, USA - Rust - Tim Chevalier

Sabina Brown (binab), Santa Cruz, CA, USA - SUMO (Support.Mozilla.org) community building - Ibai Garcia

ROUND 6

https://wiki.gnome.org/OutreachProgramForWomen/2013/JuneSeptember#Participating_Organizations

coordinators: Selena Deckelmann and Liz Henry

Gabriela Salvador Thumé (gabithume), São Carlos, São Paulo, Brazil - Socorro - Selena Deckelmann

Tiziana Sellitto (tiziana), Salerno, Italy - Bug wrangling - Liz Henry

ROUND 5

https://wiki.gnome.org/OutreachProgramForWomen/2013/JanuaryApril#Participating_Organizations

Lianne Lee (llmelon), Sydney, Australia - Release metrics dashboard - Lukas Blakk