2020-08: Outreachy Progress


  • Opened initial applications for the December 2020 internship cohort
  • Extended COVID-19 mitigation policies for the December 2020 round
  • Added code to lay the groundwork for applicants to search Outreachy projects
  • Added code to ask applicants new questions on the initial application that will speed up the processing of initial applications
  • Added code to purge sensitive data from initial applications as soon as they are processed


We have extended several of the COVID-19 mitigation policies that were put in place for the May 2020 round. Our updated policies for the December 2020 to March 2021 internship round were announced in an Outreachy blog post.

The Outreachy organizers considered adding additional questions to the initial application to protect the safety of our community. After extensive discussion with Outreachy mentors, the Outreachy Project Leadership Committee (PLC), and legal counsel, we decided not to add the new questions. The discussion was productive and new perspectives were gained.


Project Skills Search

Progress was made towards implementing search for Outreachy projects. The goal is to be able to have a search bar on the Outreachy project list page. This page gets very daunting when there are 65+ projects listed. Adding a project search will help applicants find projects that match their skills faster.

In order to make search work, we need Outreachy mentors to input project skills in a standardized way. Otherwise, a person searching for JavaScript projects may not find a project that listed the skill as “js” (a common abbreviation for JavaScript). Therefore, I needed jquery code to suggest project skills as mentors typed.

The next step was to decide what skill names to suggest. Outreachy projects are not just programming based, so we can’t just suggest programming languages as project skills. That would miss project skills like “documentation”, “UI/UX”, “event planning”, “graphic design”. I decided to pull project skill names from past Outreachy projects.

This required me to normalize almost all skills from past projects. Normalizing data means there’s only one canonical way to represent the same project skill. For example, mentors should use the project skill “JavaScript” instead of “javascript” or “JS”.

I wrote a Django admin drop-down menu item to help speed up cleaning project skill names. You could select multiple project skill items, and rename all of them at once.

Cleaning up the project skills also allowed me to find anti-patterns. For example, a mentor might try to add the following project skill name: “Knowledge of JavaScript, optionally Angular”.

This leads to an unclear project skill listing. Mentors need to say how much experience the applicant needs with the skill. Mentors also need to say whether the skill is required, preferred, or optional. When mentors list more than one skill, it becomes confusing.

In our example, applicants may have questions like: How important is it to intern selection that I know Angular? How much do I need to know about Angular? How much experience do I need with JavaScript? The example should really be two project skills, “JavaScript” and “Angular”, so the mentor can specify how much experience the applicant needs in each skill.

These anti-patterns were used to make a long list validation rules for the project skill fields. For example, we don’t allow mentor to use slashes, commas, or the full words “or”, “and”, or “with” in the project skill listing. That usually means they’re listing more than one project skill.

Other validation rules were made to ensure mentors didn’t add preference in the project skill name (e.g. “optionally” or “preferred”). The skill preference is listed separately, so that we can display it in a standardized fashion.

Additional validation rules were added to catch mentors that were being very verbose in their project skill names.

So far the project skill names are much better than last round. While the search is not implemented yet, I have hope that it will be in place for the May 2021 initial application period.

Initial application changes

Applicants are now asked two new essay questions on the initial application:

  • What country will you be living in during the internship?
  • What underrepresented groups are you a part of (in the technology industry of the country listed above)?

These two questions will help us clear up most of the common questions we have about unclear essays.

Adding the question about the country was tricky. We wanted to have some JavaScript that would suggest countries as the applicant types. Some time was spent installing the open source country select JS code.

I also added code for a new initial application review system. This will speed up our processing of initial applications, and standardize how we evaluate them.

Privacy of sensitive information

The Outreachy PLC and I have been increasingly concerned about the amount of data we collect in the initial application.

The essay questions ask the applicants to describe the discrimination and harassment they face. These are often deeply personal stories that contain sensitive information. Additionally, we ask for race/ethnicity of American applicants as well as gender identity for all applicants.

Although we purge this information after the initial application period is closed, there is still a chance that an attacker might break into the Outreachy website during the initial application period.

I took additional steps to purge the sensitive information as soon as we are done evaluating the initial application. The new code removes essay questions, race/ethnicity, and gender identity immediately after the initial application is approved or rejected.