Nature Adventures with Open Source

On July 15, 2023, Sage Sharp presented their talk “Nature Adventures with Open Source” at the Free and Open Source Yearly (FOSSY) conference in Portland, Oregon, USA.

Contact me:

Resource links:

2021-12: Outreachy progress

I’m trying to get back into the habit of posting a monthly status report, even if it’s short or late. Progress, not perfection!


Announced major changes to program policies:

  • Increased internship stipend from $6,000 USD to $7,000 USD
  • Decreased intern working hours from 40 hrs/week to 30 hrs/week
  • Shifted from three payments of $2,000 USD to two payments of $3,000 and $4,000 USD
  • Increased the number of times we collect internship feedback from 3 to 4

Hiring process:

  • 90 people applied to our community manager job
  • 55 people had a 15 minute screening interview (with one of six Outreachy volunteers)
  • 47 people completed a 1 hour written exercise
  • 8 people had a final interview

Policy Changes

The policy changes were a major pain to put into place. The policy change from three payments to two payments were proposed in late August 2021. In hindsight, this ask was made too late in order for us to implement in a timely fashion for the December 2021 cohort.

The result was that we had to notify mentors quite late of the policy changes. Only one community had some concerns about the changes, the rest were quite supportive. Still, we need to include time for discussions with mentors and coordinators.

In order to allow for more feedback from key stakeholders, Anna and I came up with the following policy change timeline:

Cohort impactedDue DateAction Item
December – MarchMarchOutreachy organizers brainstorm policy changes
MayOutreachy PLC approves any major policy changes
JuneCommunication of policy drafts to mentors and coordinators, refinement based on feedback
JulyOutreachy website updates to reflect new policies. Communicate policy changes to applicants via the blog, Twitter, and/or announce mailing list before the initial application period opens.
May – AugustJulyOutreachy organizers brainstorm policy changes
SeptemberOutreachy PLC approves any major policy changes
OctoberCommunication of policy drafts to mentors and coordinators, refinement based on feedback
DecemberOutreachy website updates to reflect new policies. Communicate policy changes to applicants via the blog, Twitter, and/or announce mailing list before the initial application period opens.

2020-11: Outreachy Progress


  • Conservancy announced Sage Sharp has been hired to work on Outreachy full-time
  • Outreachy announced that 54 interns were accepted for the December 2020 cohort
  • 650 applicants had their initial application approved and 255 applicants recorded a contribution
  • Outreachy confirmed 19 sponsors for interns in specific communities, and 7 sponsors for the Outreachy general fund for the December 2020 internship cohort
  • The Outreachy general fund sponsored 8 interns from communities like Intermine, Mixxx DJ Software, The Astropy Project, Public Lab, Tor Project, and Ushahidi


  • Planning long-term goals with Outreachy PLC
  • Review intern selections for ineligible interns
  • Meetings with Anna to discuss mentor interview goals and progress, and medium-term goals for December to March
  • Ramping up at Conservancy – receiving access to internal resources (like Outreachy invoice tracking in Conservancy’s RT), setting up insurance, payment, retirement, etc.


  • Confirmed 7 sponsors for the Outreachy general fund
  • Confirmed 19 sponsors for interns in specific communities
  • Submitted a grant for 1 intern with a community
  • Created a generic sponsorship slide deck
  • Talked with 2 potential sponsors for the May 2020 round


Most development efforts this month were related to making invoicing sponsors easier, or finding statistics to put into sponsor materials.

  • Python script to extract statistics from the November 2019 Outreachy longitudinal survey of alums
  • Created an Outreachy website page to show sponsorship information that community coordinators entered

Other development efforts were related to supporting Anna as they interview mentors to see how Outreachy can better support them:

  • Create Django shell code to find mentors who never mentored before

The Outreachy mentors have long complained that the mentor feedback form is confusing if you need to ask for an internship extension. Development effort was done this month to simplify the mentor feedback form.

Misc development:

  • Update the Outreachy website to Django to 3.1.2
  • Update the Outreachy private intern and mentor chat to Zulip 3.2


Part of the development work this month was better supporting mentors who need to ask for an internship extension. As part of that work, I discovered that how Outreachy handles internship extensions is largely undocumented.

The mentor FAQ now specifies how Outreachy handles internship extensions.

2020-10 Outreachy Progress


  • 238 people filled out final applications for the Dec 2020 cohort
  • Planned changes to the May 2021 application period dates
  • Brainstormed long-term goals
  • Helped Anna prep for interviews with new Outreachy mentors


The contribution period for the December 2020 cohort kicked off on October 7. It was six days later than we had expected. We had to work weekends to review all the initial applications.

This meant applicants only had three weeks to make contributions. Some mentors have been asking for a shorter contribution period, so this a good experiment.

The final application numbers look on par with past December rounds. For this round, 238 people filled out final applications. We’ll see whether the number of selected interns is also on par with past December rounds. I have already seen a couple of mentors who feel applicants did not have enough time to make more complex contributions.

May 2021 planning

We expect to have even more Outreachy initial applications in the May 2021 internship round. One factor is that in-person student internships are cancelled, which will drive students in the northern hemisphere to look for remote internships (like Outreachy).

We also expect more interest from students who might otherwise participate in Google Summer of Code. Google is cutting the number of required hours in half, and lowering the stipend for student interns by half. Google announced the reduction in hours on the GSoC blog, but did not announce the stipend change yet. The GSoC handbook says intern stipends will still be calculated using pay parity percentages (PPP). Interns will be paid a minimum of $1500 USD and a maximum $3300 USD.

That means Outreachy will pay more for its initial stipend ($2,000 USD) than the total Google Summer of Code stipend. I expect this will mean a greatly increased number of initial applications from students.

Next round, we’re going to build in three weeks between the initial application deadline and the start of the contribution period. That should give us enough time to review all initial applications.

Unfortunately, that means initial applications will close long before Outreachy mentors get their projects submitted. That means some applicants may not know whether they can find a project that fits their skills.

It can’t be helped though. Making mentors submit their projects three weeks before the contribution period opens is too much of a burden on mentors. Many mentors already have trouble keeping projects earmarked for Outreachy from being either completed by other contributors, or becoming obsolete before the internship starts.

Long-term goals

Anna, Sage, and Karen brainstormed long-term Outreachy goals. Those goals will be reviewed by the Outreachy Project Leadership Committee (PLC) in November. It feels good to be able to plan long-term, rather than always being reactionary.

One goal we have is to increase the number of Outreachy mentors for communities who already participate. We especially want to encourage more Outreachy alums to become mentors. We don’t know what is preventing them from mentoring, although we have some hypotheses.

Anna has been prepping to do interviews with mentors who are new to Outreachy. The goal is to understand what motivates people to mentor for Outreachy, and what the barriers new Outreachy mentors face. The end goal is to create resources to encourage people to mentor Outreachy interns, and to remove barriers as much as possible.

Sage has been supporting Anna’s interview prep by making a list of new mentors. The list is based on mentor sign up data in the Outreachy website, and a spreadsheet of historic Outreachy intern and mentor data from before 2017.

Once interviews with new mentors for the December 2020 cohort are completed, we will do additional interviews with people who haven’t signed up to mentor. We have a list of Outreachy alums who indicated they were interested in mentoring in the 2019 longitudinal study. We’ll contact them to see what kinds of barriers they face to get started as an Outreachy mentor.


Anna got their website development environment working. Sage gave them a tour of the website and the administrative backend. This will allow Anna to see what the user experience is for mentors who are adding projects and choosing interns. That’s essential for understanding any barriers mentors face, which will be useful for Anna’s interviews with new Outreachy mentors.

Jamey and Sage worked on updates for the Outreachy website. We’re ready to upgrade to Django 3.1, but we want to wait until after the intern announcement to deploy. The website sees a lull in usage during the internship period before the mentor CFP starts for the next internship round. We’re targeting December 1 to upgrade.


Sage reached out to several different sponsors this month to see if they could fund the Outreachy general fund.

2020-09: Outreachy Progress


  • 1,952 initial applications were received for the December 2020 cohort.
  • 645 applicants were approved to participate
  • There are 83 internship projects to choose from
  • We expect to accept around 50 interns this round


May 2020 round

Two interns had feedback that needed to be discussed with their mentors.

One intern did not put in a full-time effort for the last month of their internship. I did not follow up in a timely manner, because I was impacted by evacuation prep for the Oregon wild fires and reviewing initial applications. The mentor and intern agreed to an extension. Due to the delays, that puts their end date past our normal five week extension period. However, the intern is fine with this extension.

One intern did not put in a full-time effort due to personal reasons. However, they made up the work after the internship ended. After consulting with the mentor, we decided to pay their final stipend.

December 2020 round

One continuing sponsor is attempting to transfer funding management to their Diversity and Inclusion team. I created a custom pitch deck with statistics relevant to the company. The 2019 longitudinal survey continues to be a great source of useful statistics.

We’ve had several sponsors be unable to sponsor the December cohort.

  • One general funding sponsor needed to support internal company interns, but said they would return to sponsor the May 2020 round.
  • A second sponsor who only funds interns may not be sponsoring this round. An internal champion left the company, which usually means the sponsorship won’t get renewed.
  • A third sponsor changed their fiscal year start date. That means they’ll be unable to fund the December cohort. However, they should be able to sponsor the December 2020 round.

The good news is we’ve had several new communities join. New communities are AstroPy, Mixxx DJ software, Rook, and Yocto Project. The new communities should cover some of the intern sponsorship gap. We’ll be following up with other general funding sponsors in October to discuss sponsorship opportunities.

Anna shadowed me through three meetings with new community coordinators. My goal was to ensure they knew what information to provide coordinators and what common questions coordinators ask. Anna was piping up with information that I had forgotten by the third meeting. 🙂

Anna also took point on reminding communities to sign up. They did great with the task after being provided with some templates for reminding coordinators. It was a good opportunity to introduce coordinators to Anna and allow coordinators to get used to communication from them.


We’ve been receiving some spam in the organizers inbox lately. Jamey Sharp updated Spam Assassin to learn from a newly created Junk folder. Jamey also helped update the website to use Python 3.8.

I documented organizer tasks for getting coordinators and mentors to sign up in the Organizer manual.

I also created some new semi-automated reminders for coordinators and mentors. The code would email coordinators a reminder about the project deadline, tell them how many projects they current have approved, and tell them if any projects are pending coordinator approval. The goal was to get projects submitted on time.

The code I wrote before opening the initial application period has proven useful. I was able to find students in the northern hemisphere who were not graduating and bulk reject them (as northern hemisphere students are not eligible for the December cohort).

The new system for reviewing essays has been going well. Anna and I discussed some improvements that would allow us to more accurately review applications from disabled people.

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.

2020-07: Outreachy Progress


  • 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


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.


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.


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.


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


  • 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.


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.


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.


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

2020-05: Outreachy Progress


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


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.


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


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


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.


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.


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