2020-08: Outreachy Progress

Summary

  • 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

Policies

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.

Development

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.

2020-07: Outreachy Progress

Summary:

  • Connected May 2020 interns to volunteers for informal career chats
  • Planned December 2020 internship round dates
  • Supported intern through difficult mentor situation
  • Worked with mentors and community coordinator during difficult situation with intern
  • Ran Outreachy intern Zulip chats with Anna e so

Admin

December 2020 internship round dates

Picking internship round dates is always hard. We want to ensure that the May round aligns with Google Summer of Code dates, and that the December round supports university students in Brazil.

I’ve been working with Anna e so to choose dates for the December 2020 internship round. Most Brazilian students in public universities have shifted school terms due to COVID-19. The Brazilian summer break is drastically shortened. I will follow up with recommendations to the Outreachy PLC in the next week.

Another wrinkle in the December 2020 round is challenges to the Software Freedom Conservancy staff. December is a difficult time for them, since they have everyone helping out with audit paperwork. That means processing tax forms, payment forms, and initial stipend payment to Outreachy interns adds to the stress.

A final challenge is working around bank holidays. We don’t want to promise Outreachy interns that payment will be initiated by a date that’s close to a bank holiday.

I proposed a modified schedule to Conservancy staff that would move the internship round start date into November. They ultimately decided not to go with the modified schedule.

Informal Career Chats

For the last two or three rounds, we have encouraged Outreachy interns to have “informal career chats” with open source contributors.

Volunteer interviewees for informal chats are Outreachy mentors, coordinators, alums, and employees of Outreachy sponsors who are paid to work on open source as part of their job. A new page on the Outreachy website lists volunteers who are willing to have informal career chats with Outreachy interns.

During the informal career chats, we encourage volunteers to talk about how open source helped their career, and/or how they got a paid job working on open source. We encourage interns to talk about their career goals and ask questions of the volunteers.

The goal is to give Outreachy interns support as they work on expanding their network. Having a list of questions to ask, and a list of volunteers who are willing to talk to them can help ease anxiety.

Documentation

Continued to document Outreachy organizer tasks in public organizer manual. Continued to add email templates to the private Outreachy organizer GitLab repo. Committed a bunch of old files to the private Outreachy organizer GitLab repo.

Development

Created a page on the Outreachy website to list the contact information of volunteers for informal career chats. It needed careful code to only display the page to interns in good standing, their mentors (who could help them pick people to talk to), and approved coordinators (who may help interns select who to talk to if their mentor is unavailable).

I used test-driven development for this page. I wrote several tests to cover everyone who should not be able to see the page, and everyone who should. The tests took the majority of the time to complete (unsurprising) but it made me confident the code I wrote was correct. I think I’ll continue doing this in the future when it makes sense.

Also migrated a few pages to Django from the Wagtail CMS. I’m really trying to get the pages migrated soon, so that we can update Django before initial applications opens and the website gets a lot more traffic.

Finances/Sponsorship

This is the first round we reached out to sponsors to ask if they had volunteers who could talk to Outreachy interns. We wanted to ensure that the focus of these informal career chats was careers in open source. Therefore, we asked sponsors to only provide contact info for volunteers who are employed to contribute to open source.

Some sponsors seemed pleased. One said, “This is quite an offer.” Overall, 6 out of 8 contacted sponsors had employees volunteer for the informal career chats. It will be interesting to see in our longitudinal study in the following years if this has an impact on the number of May 2020 interns who find paid roles working on open source.

Overall, based on sponsor enthusiasm, I think we should advertise this as an Outreachy sponsor perk.

2020-06: Outreachy Progress

Summary

  • Supported mentors through terminating an internship and finding a new intern
  • Supported one intern who experienced community issues
  • Documented mentor duties and expectations
  • Worked with sponsor who was having trouble securing funding

Finances / Sponsorship

We worked to provide a presentation to a sponsor. The sponsor was having trouble finding internal funding for the sponsorship level they committed to in February. The presentation included personal stories from Outreachy interns who were hired by the sponsor, and statistics about the program. We have been connected to new sponsor contacts who may be able to find funds for their sponsorship.

Admin

One intern had trouble with their time commitments. The intern missed the first internship meeting. The second meeting they showed delayed responses in the community chat. There were other communication issues as well, such as not reading materials mentors had sent. Then they did not communicate with mentors for a week.

Several attempts were made (both by mentors and coordinators) to contact the intern. After waiting another week for a response, their internship was terminated. We were able to on-board a new applicant to take over the internship project.

Another intern had a particularly rough start to their internship. Communication from coordinators and mentors was lacking about changes to who was mentoring them and what project they were working on. The intern also needed extra support because they were new to the programming language the project was written in. Their mentor was unable to provide that support due to mentoring five other interns, so a co-mentor was found.

Sage Sharp also ran internship chats with the other Outreachy organizer, Anna e so.

Documentation

During the issue with an unresponsive mentor, Sage documented mentor expectations for time. The documentation is still WIP. It needs to be merged with the current mentor FAQ page.

Vacation

Sage worked less hours this month due to family time, health issues, and personal activism for other communities.

2020-05: Outreachy Progress

Summary

  • Supported four interns who needed delayed internship start dates
  • Fixed performance issue on Outreachy website server
  • Updated intern feedback forms for COVID-19 policies

Admin

On May 19, Outreachy interns started their internship. There is always some rough patches in the beginning for some interns.

Three interns needed a delayed internship start date because their school terms had shifted due to COVID-19. One intern needed a delayed internship start date of five weeks because an internship they were to do in late August had been moved earlier due to COVID-19.

Sage Sharp also ran internship chats with the other Outreachy organizer, Anna e so. Sage has been transferring knowledge about how to run the chats to Anna.

Finances / Sponsorship

We worked to provide the 2020 budget estimate to the Outreachy Project Leadership Committee (PLC). The PLC is discussing contractor staff hours and the potential of hiring staff.

Development

During the Outreachy intern announcement, the website was experiencing high load times. The website would time out with a Dokku error.

It turned out that the Django web server (Green Unicorn) was set up to run in single threaded mode. We switched gunicorn over to run two threads per CPU, and upgraded the server to have eight CPUS. We posted a post-incident report on Twitter explaining the issue.

There was some development work done to support our temporary COVID-19 time commitment policies. We modified the internship feedback forms to include an optional field where interns could specify whether they had been impacted by COVID-19. That way organizers could apply a more lenient time policy to the internship.

2020-04: Outreachy Progress

Summary

  • 367 applicants recorded a contribution to Outreachy projects
  • 335 applicants created a final application
  • 55 applicants were accepted as Outreachy interns

Admin

On May 4, Outreachy announced 55 accepted interns for the May to August 2020 round.

Each round, a few mentors for different projects select the same applicant as an intern. Sage facilitated discussions for 3 applicants this round.

This internship round will run at the same time as Google Summer of Code. Outreachy organizers had to coordinate with GSoC communities in cases where an Outreachy applicant applied to both Outreachy and GSoC. Sage facilitated discussions for 5 applicants this round.

Fundraising

Sage also contacted Outreachy sponsors. One sponsor said they could not donate this round because of economic uncertainty. Another sponsor did not respond to emails. Four additional sponsors did agree to provide funding.

Development

A few hours was spent on updating the final application reminder email to include a link to our COVID-19 policy changes blog post.

2020-03: Outreachy Progress

Summary

  • Initial application results have been announced and the contribution period is under way for May 2020 internship applicants
  • Outreachy organizers were not able to review 230 initial applications
  • 890 initial applications were accepted
  • 1,474 initial applications were rejected
  • Outreachy published a blog post about our response to COVID-19

Personal

On March 10, 2020, Sage Sharp had top surgery. They had a three week recovery period and they are healing well. Sage had to reduce their hours before the surgery so they could go to medical appointments.

This meant that a backlog of unreviewed initial applications built up. Sage asked for help from the Outreachy PLC on February 20. Karen Sandler, Anna e so, and Sage Sharp ralled. They were able to review 1,201 initial applications in two weeks.

Unreviewed Initial Applications

Due to Sage’s medical appointments, the Outreachy organizers could not review 230 initial applications. Those applications were submitted on the last day of the initial application period.

The Outreachy PLC discussed pushing back the opening of the contribution period from March 5 to March 9. However, it was too close to Sage’s surgery date and the Outreachy PLC wanted to lower Sage’s stress levels before surgery.

Outreachy acknowledged the situation on Twitter and apologized to the applicants who did not have their initial application reviewed.

This underscores the need for a paid full-time Outreachy organizer. Outreachy plans to post a job opening in May.

2020-02: Outreachy Progress

Admin Tasks

This month was spent herding mentors and reviewing initial applications:

  • Of the 2670 initial applications, we were able to review all but 230
  • 901 applicants are approved for this round
  • 105 projects are available
  • 61 internships are funded
  • 3 new communities are participating this round

Development Tasks

System admin tasks this month included updating the Let’s Encrypt SSL certificates and increasing the memory on the Outreachy mail server.

Memory pressure due to spam filtering taking up memory was causing mail to be rejected. It’s unknown why avis and clamAV was taking up additional memory. Email warnings have been put in place in case the memory usage increases again.

Let’s Encrypt has revised its certificate process. We updated the dokku Let’s Encrypt plug in, so that we can continue to have the Outreachy website and Zulip chat use SSL.

The following commits were made to the Outreachy website repo:

076cf7a (HEAD -> master, github/master, dokku/master) Show application summary pages until contributions close
f30fe2d Add Forge Your Future discount code to applicant acceptance email
127e6be All applications show as pending until contribution period opens.
2180b0b Improve pending application results
a145002 Improve acceptance text on eligibility results page
b71940c Merge branch ‘master’ of github.com:outreachy/website
c3dac19 Documentation for updating the dokku let’s encrypt plug-in
f381e07 More organizer task and advice for coordinators
ab53607 Make export_form generate basic HTML
ad03070 Simple script to make a text export of a form(set)

2019-12 & 2020-01: Outreachy Progress

December 2019

December is a historically slow month for Outreachy. Organizer this month included:

  • Sending invoice requests
  • Getting intern contact information to the Software Freedom Conservancy (for payment & tax information)
  • Handling a situation with one ineligible intern
  • Handling a situation with an unresponsive mentor
  • Facilitating intern chats

Website Improvements

There’s some coding work on a branch for improvements to the Outreachy website. We’ve had applicants who have accepted a full-time job between the time they fill out their initial application with time commitments, and when they fill out a final application. If they accept a full-time job, they’re not eligible for the internship.

The draft website work updates the initial application acceptance email to note that applicants should tell organizers if their time commitments have changed. The email also says that applicants who have accepted a full-time job are not eligible for the internship. The website work also adds a new field to the final application for applicants to update their time commitment information. If an applicant fills out that field, a warning flag is displayed on the organizer dashboard.

The draft work will need to be merged by March 5, when applicants are notified of initial application acceptance. That’s also the earliest time applicants can start filling out final applications.

January 2020

The first month of the year starts the internship cycle again at the top. January is all about pinging organizations to get them involved again. Organizer duties included:

  • Reviewing new communities who want to participate to ensure they meet our community eligibility guidelines
  • Finding sponsorship and discussing which communities sponsors want to fund
  • Pinging our list of potential communities to ensure they understand the deadline to submit a community to participate and the deadline for mentors to submit projects
  • Adding people who signed up for the mailing list at the Outreachy booth in Tapia. Some people indicate they’re only interested in May to August internships (which is when students in the northern hemisphere are eligible). We sign them up for the announcement mailing list after all the mail about the December to March round has finished. Sometimes we send them a private email encouraging them to apply to Outreachy or spread the word.
  • Promoting the opening of the initial application period on Twitter and the announcement mailing list
  • Adding approved coordinators and mentors to the mentor mailing list and Zulip Outreachy chat
  • Reviewing initial applications

Of course, that happens at the same time as supporting the December to March interns:

  • Running more intern chats
  • Reviewing initial feedback
  • Facilitating communication between mentors & interns in cases where issues arise during the internship

2019-10 & 2019-11 Outreachy Progress

I had to skip a progress update last month, as I had health issues.

Summary:

  • Outreachy accepted 49 interns in the December 2019 round
  • The experiment of separating the initial application period and the contribution period was a success!
  • Wrapped up the first Outreachy longitudinal study to collect statistics on Outreachy alums
  • Wrote a blog post categorizing Outreachy projects by topic
  • Updated internship documentation
  • Updated organizer documentation
  • Improvements to the Outreachy Django administrative back-end and view the organizers use to track interns

December 2019 round

The application period for the December 2019 is closed. We announced we accepted 50 interns this round. One intern was later found to be ineligible for Outreachy. Still, 49 interns is our biggest round yet!

In the December 2019 round:

  • 1,774 applicants filled out an initial application
  • 590 initial applications did not align with Outreachy’s goal of supporting diversity in free software
  • 532 applicants were ineligible for Outreachy due to full-time commitments during the internship
  • 91 applicants were ineligible for Outreachy due to not being able to be paid by a U.S. non-profit
  • 607 applications were accepted into the contribution period
  • 236 applicants recorded starting a contribution
  • 206 applicants created a final application

That number of people who recorded a contribution this round went up! Most rounds, we have around 200 people who record a contribution and about 175 who complete a final application.

That means that applicants who completed an initial application and then had to wait to start the contribution period didn’t lose interest. That means that separating out the eligibility checking and contribution period was a success.

One Outreachy community was caught off guard with the new application process. They didn’t know they needed to get their project description in early and promote their project before the initial application deadline. That community ended up not accepting any interns this round. The data could be coincidence, because there have been multiple rounds in the past where that community didn’t accept an intern.

There were a few communities who normally participate that didn’t this round. That was more than made up for by the new communities who joined. We typically have around 65 projects each round, and this round we had 83 projects listed.

All in all, a success and a growth in the number of accepted interns over last round.

Longitudinal Study

In October, we launched our first longitudinal survey. The goal was to find out statistics about how successful Outreachy was at encouraging our past interns to contribute to free software and stay in the technology industry. 230 out of 589 alums responded to the survey.

To incentivize Outreachy alums to fill out the survey, we offered a reward of an Outreachy sticker if they completed it. 169 of the alums wanted to receive an Outreachy sticker for filling out the survey. The rest of the respondents didn’t fill out the address field and didn’t want a sticker.

Part of the reason for running the longitudinal survey was to understand how much time and effort was required to send a small reward (an Outreachy sticker). This would let us know where the pain points were for a future Outreachy fundraiser with physical rewards.

Stuffing envelopes was a breeze. It took four volunteers about 1.5 hours to stuff 169 envelopes. (We had a wet sponge on hand to seal envelopes to save volunteers’ tongues.)

The stuffing was fast because we chose to not hand-write the thank-you cards. We printed the thank you message on 2″ x 3″ stickers through Moo.com, and put them on the inside of 4″ x 6″ thank you cards. The 1″ x 5″ Outreachy stickers (also printed through Moo.com) fit fine inside the thank-you envelope. Printing stickers to put on the inside of thank you cards was more cost effective than printing messages on thank you cards through other printing services.

The real time sync comes in addressing and mailing the envelopes. The (untested) method I settled on was printing pre-paid stamps through stamps.com. It requires a monthly subscription, and some of the features like taking addresses from a spreadsheet may only be possible with the use of Windows software. We’ll see how it goes.

The time-consuming part comes in normalizing the addresses from the longitudinal survey into standard international format for each country. I quickly skimmed and recorded each address’ country, then sorted the spreadsheet by country. Normalizing 56 international addresses took about 2 hours.

Finding a resource for standard country address formats was hard, but this one seems good. It’s untested whether it’s correct.

Outreachy Progress 2019-09

Summary of organizer work this month:

  • Reviewed 1,085 initial applications
  • Herded mentors and coordinators through submitting 81 projects
  • Wrote a blog post introducing projects by topic and programming language
  • Promoted Outreachy at the Tapia conference

December 2019 application status

Statistics for the December 2019 application period:

  • 1,774 applicants applied
  • 611 applicants were accepted to participate in the contribution period
  • 23 communities are participating in this round
  • 81 projects are listed, with communities having funding for 53 interns

Changes to Application Process

Moving the initial application submission to before the contribution period has been good from an Outreachy organizer perspective. We are able to follow up with applicants in an orderly fashion, and there’s less panicked emails from applicants who haven’t been approved.

From a mentor perspective, some mentors have been concerned about the increased communication from applicants. Many projects have 10-15 applicants who are all trying to talk with mentors at once. Mentors want applicants to apply some problem-solving skills to answer questions using supplied resources.

However, the Outreachy organizers have encouraged applicants to communicate more this round. We want to ensure that people with impostor syndrome are encouraged to reach out when they’re stuck.

It will be an on-going balance between mentor needs and encouraging applicants. Every small change we make to our welcome emails and applicant guide encourages different behavior.

Tapia Conference

Sage Sharp attended the Tapia conference to promote Outreachy to Computer Science students. Outreachy supports Tapia because the conference’s focus is on racial diversity and supporting students with disabilities.

Two Outreachy alums, Branden Bonaby and Joannah Nanjekye were sponsored by Outreachy to attend Tapia. They both helped Sage promote Outreachy in the booth.

Branden had recently completed his Outreachy internship, and he found a lot of companies at Tapia were interested in interviewing him because of his experience with the Linux kernel community.

Sage conducted video interviews with Branden and Joannah. The videos were posted on Twitter before the initial application closed to encourage more applicants to submit their application.

Outreachy booth at Tapia 2019
Outreachy booth at Tapia. CC-BY 4.0 Sage Sharp

The Outreachy booth was a success! We had 124 people sign up for the Outreachy mailing list. Sage spoke at the open source BoF panel, and then raffled off two copies of “Forge Your Future with Open Source”.

Book raffle winners
Winners of the “Forge Your Future with Open Source” book raffle. CC-BY 4.0 Sage Sharp