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.
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.
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.
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.
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.
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.
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.
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.
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
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)
Created final feedback form for interns and mentors
Contacted potential communities for the May to August 2019 round
Updated questions on the initial application form
Updated the website to the latest stable version of Django 1.11
Wrote a blog post announcing changes in eligibility criteria
Promotion on Twitter, emailing diversity in tech groups, job boards postings
Reviewed 874 initial application essays
The Outreachy internship program opened applications for the May to August round. Most of the time this month has been reviewing the 1,235 initial applications that have been submitted. ?
We’re definitely getting more applications this round. After the six week application period for the December to March round, we processed 1,817 initial applications. Less than two weeks into this round, we’ve had 1,235 initial applications submitted.
That sounds like a huge number, but that’s where the magic of Django comes in. Django allows us to collect time commitment information from all the applicants. We create a calendar of their time commitments and then see if they have 49 consecutive days free from full-time commitments from during the internship period.
So far, about 181 initial applications have been rejected because applicants had full-time commitments. (The number is usually higher in the December round because students in the northern hemisphere have a shorter break.)
We also check whether people are eligible to work in the countries they’re living in, whether people have participated in Outreachy or Google Summer of Code before, etc. There are 72 applications that were automatically denied because of those kinds of issues.
That leaves 982 applicants who were eligible for Outreachy so far. ? And we have to manually review every single applicant essay to see whether supporting this person would align with Outreachy’s program goal to support marginalized people in tech.
We ask specific essay questions to determine whether the applicant is underrepresented. We ask two more essay questions to determine whether they face discrimination or systemic bias in their learning environment or when looking for employment opportunities. Applicants have to demonstrate both characteristics. They have to be underrepresented *and* face discrimination.
It’s quite frankly difficult to spend 5-9 hours a day reading about the discrimination people face. We ask for personal stories, and people open up with some real horror stories. It’s probably re-traumatizing for them. It certainly impacts my mental health. Other people share less specific experiences with discrimination, which is also fine.
Sometimes reading essays introduces me to types of discrimination that are unfamiliar to me. For example, I’ve been reading more about the caste system in India and ethnic/tribal discrimination in Africa. Reading the essays can be a learning experience for me, and I’m glad we have multiple application reviewers from around the world.
One of the hardest things to do is to say no to an initial application.
Sometimes it’s clear from an essay that someone is from a group underrepresented in the technology industry of their country, but their learning environment is supportive and diverse, and they don’t think they’ll face discrimination in the workplace. Outreachy has to prioritize supporting marginalized people in tech, even if that means turning down underrepresented people who have the privilege to not face discrimination.
It’s also difficult because a lot of applicants who aren’t from groups underrepresented in tech equate hardship with discrimination. For example, a man being turned down for a job because they don’t have enough technical experience could be considered hardship. Interviewers assuming a woman doesn’t have technical experience because they’re a woman is discrimination. The end result is the same (you don’t get the job because the interviewer thinks you don’t have technical experience), but the cause (sexisim) is different.
Sometimes systemic issues are at play. For example, not having access to your college’s library because you have a mobility device and there’s no elevator is both discrimination and a systemic issue. Some communities face gender violence against women. The violence means parents don’t allow women to travel away to college, and some universities to restrict women to their dorms in the evenings. Imagine not being able to study after class, or not having internet in your dorms to do research. The reaction to these systemic issues incorrectly punish the people who are most likely to face harassment.
It’s frustrating to read about discrimination, but I hope that working with Outreachy mentors gives people an opportunity they wouldn’t otherwise have.
Finished cleaning up the technical debt that kept us from having two Outreachy rounds active at once
Added code for gathering internship midpoint feedback
Migrated the travel stipend page off the old wiki for Outreachy to the Django website
Added a required field for mentors to provide the minimum computer system requirements to contribute to the project
Created intern blog post prompts for weeks 5 & 7
Followed up on all December 2018 sponsorship invoices
Minimum System Requirements
New for this Outreachy round is asking mentors to provide the minimum system requirements for their project. Many Outreachy applicants have second-hand, 10 year old systems. They may not have the memory to be able to run a virtualized development environment. In the past, we’ve had applicants who tried to follow installation instructions to complete their required contribution, only to have their systems hang.
By requiring mentors to provide minimum system requirements for their projects, we hope to help applicants who can’t afford a newer computer. We also hope that it will help communities think about how they can lower their technology barriers for applicants who face socioeconomic hardship
This month I migrated the travel stipend instructions page from our old wiki to the new travel page. During that migration, I noticed the language in the page was filled with complex vocabulary and longer sentences. That’s how I tend to write, but it’s harder for people who speak English as a second language to read.
I used the Hemmingway editor to cut down on complex sentences. I would recommend that people look at similar tools to simplify their language on their website
Debt, debt, and more technical debt
I had hoped that January would be spent contacting Outreachy communities to notify them of the round. Unfortunately, Outreachy website work took priority, as it wasn’t ready for us to accept community sign-ups.
Most of the work was done on cleaning up the technical debt I talked about in my last blog post. The website has to handle having two internship rounds active at once. For example, in January, mentors were submitting feedback for the December 2018 internships, while other mentors were submitting projects for the upcoming May 2019 internships.
A lot of the process was deciding how long to display information on the website. For example, when should mentors be able to choose an applicant as an intern for their project?
Mentors could find a potential candidate very early in the application period, so the very soonest they could choose an intern would be when the application period starts.
Most people might assume that interns can’t be selected after we announce the internships. However, in the past, interns have decided not to participate, so mentors have needed to select another applicant after the interns are announced. The very latest they could select an intern would be five weeks after the internships start, since we can’t extend an internship for more than five weeks.
It’s a complex process to decide these dates. It requires a lot of tribal knowledge of how the Outreachy internship processes work. I’m happy to finally document some of those assumptions into the Outreachy website code.
One of my resolutions for 2019 is to be more transparent about the work I’ve been doing for Outreachy. Hopefully (fingers crossed) this means you’ll be seeing a blog post once a month.
I’ll also throw in a selfie per month. My face is changing since I’ve been on hormone replacement therapy (testosterone) for about 7 months now. I started to get some peach fuzz around month 5. It’s still patchy, but I’m growing it out anyway so I can see if I can get a beard!
What is Outreachy?
Outreachy is a three-month internship program. It’s completely remote (both interns and mentors come from around the world). We pay the interns a $5,500 USD stipend for the three months, plus a $500 travel stipend to attend a conference or event related to their internship or free software.
The goal of the internship is to introduce people to free and open source software. Outreachy has projects that involve programming, documentation, graphic design, user experience, user advocacy, and data science.
Outreachy’s other goal is to support people from groups underrepresented in the technology industry. We expressly invite women (both cis and trans), trans men, and genderqueer people to apply. We also expressly invite applications from residents and nationals of the United States of any gender who are Black/African American, Hispanic/Latin@, Native American/American Indian, Alaska Native, Native Hawaiian, or Pacific Islander. Anyone who faces under-representation, systemic bias, or discrimination in the technology industry of their country is invited to apply.
What’s My Role?
I own Otter Tech LLC, which is a diversity and inclusion consulting company. It’s been my full-time job since July 2016. I work with clients (mostly in the technology or free software space) that want to improve their culture and better support people from groups underrepresented in tech. Outreachy is one of my clients.
I am one of five Outreachy organizers. Two of us (Marina Zhurakhinskaya and I) are heavily involved in running the internship application process. Karen Sandler is great at finding funding for us. The whole Outreachy organizers team (including Tony Sebro and Cindy Pallares-Quezada) makes important decisions about the direction of the program.
Outreachy also recently hired two part-time staff members. They’ve been helping Outreachy applicants during the application period, and then also helping Outreachy interns when the internship is running. We don’t have a good name for their role yet, but we’ve sort of settled on “Outreachy Helpers”
December 2018 Progress
The December 2018 to March 2018 internship round kicked off on December 4. Usually that’s downtime for me as an Outreachy organizer, because mentors and coordinators step up to interact with their interns. In the past, the only real interaction the Outreachy organizers had with interns was if their mentor indicated they were having issues (yikes!). This month was spent increasing the frequency and types of check-ins with interns and mentors.
Outreachy Chat Server
This round, we’re trying something new to have the Outreachy interns talk with Outreachy organizers and with each other. We’ve set up a private invitation-only Zulip chat server, and invited all the Outreachy organizers, interns, mentors, and coordinators. I’ve been doing a bit of community management, participating in discussions, and answering questions that Outreachy interns have as they start their internship. I also ran a text-based discussion and then a video chat for Outreachy interns to do a second week check-in.
I think the Outreachy Zulip chat has worked out well! I see interns connecting across different free software communities, and mentors from other communities helping different interns. Zulip has the concept of “streams” which are basically chat rooms. We have a couple of different streams, like a general chat channel and a channel for asking questions about Outreachy internship procedures. I’m fairly certain that I got more questions on the Zulip chat from interns than we ever got by using email and IRC.
The other thing we’re doing this round is collecting feedback in a different way. In the past, we collected it at two points during the internship. The midpoint was at 6 weeks in and the final feedback was at 12 weeks in. However, this round, we’re collecting it at three points: initial feedback at 2 weeks in, midpoint feedback at 8 weeks in, and final feedback at 12 weeks.
Collecting feedback three times meant more overhead for evaluating feedback and sending the results to our fiscal sponsor, the Software Freedom Conservancy. I wrote code in December to allow the Outreachy internship website to collect feedback from mentors as to whether interns should be paid their initial stipend.
We’re also collecting different feedback this round. I’m collecting feedback from both interns and mentors, based on a suggestion from a former Outreachy intern. Interns and mentors are asked the same questions, like “How long does it take (you/your intern) to respond to questions or feedback?” and “How long does it take (your mentor/you) to respond to questions and feedback?” That way, I can compare people’s self-evaluations with what the other person involved in the internship thinks.
There’s also a freeform-text for interns to give feedback on how their mentor is doing. This is important, because many Outreachy mentors are new to mentoring. They may need to have some coaching to understand how they can be more supportive to their interns. While most of the interns are doing great, I can see that I’m going to need to nudge a couple of mentor and intern pairs in the right direction.
Interviews with Alums
I did video interviews with five Outreachy interns at the Mozilla All Hands in December 2019. I loved interviewing them, because it’s great to hear their personal stories. I’ll be using the footage to create videos to promote the Outreachy program.
I’ve created short-hand transcripts of two of the videos, but haven’t gotten to the other five. Transcripts help for a couple reasons. Most importantly, I can add closed captioning to the finished videos. I also have a searchable text database for when I need to find quotes about a particular topic. Seeing the text allows me to group similar experiences and create a cohesive narrative for the promotional video.
Ramping up for May 2019 Internships
The Outreachy December 2018 to March 2019 internships are just starting, but we’re already thinking of the next round. January is typically the time we start pinging communities to see if they want to be involved in mentoring interns during the February to March application period.
That means we need to have the website ready to handle both a currently running internship cohort, and a new internship round where mentors can submit projects. There’s some technical debt in the Outreachy website code that we need to address before we can list the next round’s internship dates.
The Outreachy website is designed to guide internship applicants through the application process. It’s built with a web framework tool called Django, which is written in Python. Django makes web development easier, because you can define Python classes that represent your data. Django then uses those classes to create a representation in the database. The part of Django that translates Python into database schema is called the ORM (Object Relational Mapper).
For example, the Outreachy website keeps track of internship rounds (the RoundPage class). Each internship round has dates and other information associated with it. For example, it has the date for when the application period starts and ends, and when the internship starts and end.
It makes sense to store internship rounds in a database, because all
internship rounds have the same kinds of deadlines associated with them.
You can do database queries to find particular rounds in the database.
For example, the Django Python code to look up the latest round (based
on when the interns start their internship) is
The work I’ve recently been doing is to deal with the fact that two internship rounds can be active at once. We’re about to open the next internship round for mentors to submit new projects. On February 18, the next application period will open. But the December 2018 round of internships will still be active until March 4.
The Outreachy website’s pages has to deal with displaying data from multiple rounds. For example, on the Outreachy organizers’ dashboard page, I need to be able to send out reminder emails about final mentor feedback for the December 2018 round, while still reviewing and approving new communities to participate in the May 2019 round. Outreachy mentors need to still be able to submit feedback for their current intern in the December 2018 round, while (potentially) submitting a new project for the May 2019 round.
It’s mostly a lot of refactoring and debugging Python code. I’m writing more Django unit tests to deal with corner cases. Sometimes it’s hard to debug when something fails in the unit test, but doesn’t fail in our local deployment copy. I’m fairly new to testing in Django, and I wrote my first test recently! I feel really silly for not starting on the tests sooner, but I’m slowly catching up to things!
January 2019 is going to be spent contacting communities about participating in the May 2018 to August 2018 round. I have some video footage of Outreachy interns I interviewed at the Tapia conference and Mozilla All Hands, and I hope to put it into a promotional video to inspire people to become mentors. It’s a fun exercise that uses some of the video editing skills I have from making fanvideos.
I’ll be giving a talk at FOSDEM on changing team culture to better support people with impostor syndrome. The goal is not to ask people with impostor syndrome to change, but instead to figure out how to change our culture so that we don’t create or trigger impostor syndrome. The talk is called “Supporting FOSS Community Members with Impostor Syndrome“. The talk will be from 9:10am to 9:40am on Sunday (the first talk slot).