Outreachy is an initiative that provides financial support for remote internships, in open-source communities, to under-represented groups. It provides interns with the opportunity for their first experience in open-source development.
Outreachy promotes diversity and inclusion in the open-source community. It acts as a central point for organising internships for groups of people who historically have faced systemic bias in the programming world.
Following the successful effort from the OCaml Software Foundation last year, this year OCaml Labs and Tarides joined forces to continue our efforts to bring more new developers into the OCaml community from diverse backgrounds. We selected three Outreachy interns to work with us on different OCaml projects.
We merged over 75 PRs and resolved over 70 issues during the initial contribution period this year on the ocaml/ocaml.org repository! This was the most activity the repository had seen since 2014. There were so many candidate interns, keen to join the OCaml community and start developing.
This year, we have three interns working with us: Diksha Gupta, Odinaka Joy and Shreya Kumari Gupta.
- Diksha Gupta is working on automating and expanding ocaml.org’s new and experimental peertube instance for hosting OCaml-related video content.
- Odinaka Joy is prototyping and building an online package search web application and service.
- Shreya Kumari Gupta is helping to build and design a new ocaml.org website.
They’ve all made amazing progress and we can’t wait to share more about these projects towards the end of their internships!
Outreachy programs run every six months, and so even though the current round is still ongoing, we need to plan how to participate in the forthcoming Winter 2021 round.
One of the big bottlenecks in growing the program is having a sufficient supply of projects and mentors from the OCaml community who are willing to work with the enthusiastic Outreachy interns to get them started on contributing to our ecosystem. That’s the goal of this post – to convince you to sign up!
Outreachy is an amazing and rewarding experience that:
- Increases diversity in the OCaml community.
- Attracts more contributers to OCaml or to open-source projects in general.
- Improves your project with an additional developer.
- Has an enriching experience: work together with people from many different backgrounds and ways of thinking.
- Promotes OCaml: When people learn about Outreachy, they often go through the list of communities that are or were signed up in the past. That’s a good way for those from under-represented groups to learn about OCaml. It also puts the OCaml community in a good light. We know that this is how some people who now form part of the OCaml community first learned about OCaml and got excited about it.
During the three month internship, mentors need to commit to working with the Outreachy intern for approximately 5 hours per week. During the one month contribution period that takes place before the internship starts, mentors must help prospective applicants with issues and PRs which can take anywhere between 1 to 15 hours per week depending on how many interested applicants there are.
Most Outreachy projects that interns work on have a single, main repository that code will eventually be merged into. It can be any OCaml, open-source repository of code with some form of issue tracker. For example, this summer we started with the ocaml.org repository. The best repositories tend to be those that are well-maintained, make good use of the issue tracker, and have clear documentation that describes how to get started.
Note that although companies can take part, the open-source project that is part of Outreachy must be in the public interest. This generally means that OCaml libraries and tools of wider interest are fine targets for Outreachy contributions, but not OCaml codebases that are commercial or very specific in nature.
Outreachy defines a good project for an intern as being well-defined, self-contained, uncontroversial and incremental. When thinking of a suitable project it is important to bear these conditions in mind.
Mentors can support the success of the intern by preparing, in advance, a three-month outline of the timeline the intern will follow. This timeline divides the project into manageable chunks that can be completed each week.
The interns’ backgrounds may vary. Some might be experienced developers but most won’t already know OCaml and may have questions concerning the OCaml set-up or the langauge in general. However, the project doesn’t need to be super easy: many interns who started without 100% skill fit have been very successful.
Also, for most interns it’s the first time contributing to open-source and they’ve all faced systemic bias in the past. So it’s important to provide a friendly working atmosphere. This means being patient and making them feel comfortable to ask questions.
The Outreachy process from the mentor’s perspective, including dates for the coming round is:
The Outreachy process starts when the call for mentoring communities sign-up opens. OCaml is already included in the next Outreachy round.
The next step is to submit Outreachy projects to the OCaml community on the Outreachy site. That’s the first step that you, as a potential mentor, would need to undertake. We’ve explained in the section above what a project can look like. At this stage, you also need to mention the skills that interns require to contribute to your project. This year’s list of projects with their respective, required skills are available online. If you set your requirements too low, you might be overwhelmed by the number of applicants to your project; if you set it too high, you might not get any applicants. The section above, Interacting with Outreachy interns describes the experience level you can expect.
If your project is approved, you should prepare it for the contribution period. At this stage, it’s a good to review your contribution documentation and to label some of your project’s issues as
The one month contribution period is the time during which Outreachy applicants, who have passed an initial application process that’s validated by the Outreachy organizers, can apply for a defined project by contributing to its repository in the same way that any other first-time contributer would contribute (independently from the internship project). This involves choosing issues, working on them and opening PRs, commenting on issues or opening new ones, and so on. During this stage, you need to start providing guidance and help. In particular, having
good-first-issue's is imperative since it allows the participants to become familiar with the code base. You must also have some
mediumsized issues or tasks for participants because it allows you to assess their application with more substantial contributions.
When the contribution period ends, you need to select (an) intern(s) out of the pool of applicants. To help you get an overview, each of them will submit an application consisting of the following two parts: a summary of their contributions to your repository during the contribution period and the final application which includes a timeline for the internship project. The applicants are supposed to work out the timeline together with their mentor(s), so they might ask you for guidance and feedback in advance.
The interns will then be officially announced by Outreachy, and they start working with you a few weeks later, marking the start of their 13-week internship period!
Mentoring an Outreachy intern is a very enriching experience! So if you have ideas, submit your project on the Outreachy website, under the OCaml community, and apply to be a mentor or co-mentor.
We are looking forward to your participation in the next Outreachy round(s) and would love to hear your ideas (comment on the post)!