The OCaml community is signed up for Outreachy!

Hello everyone :wave:

Very good news: The OCaml community is signed up for the next Outreachy round with four slots again!

Outreachy is a non-profit providing an over-arching structure for open-source communities to offer three months long remote internships to folks from underrepresented backgrounds in open-source. Participating in Outreachy is a great opportunity for any open-source community to work with new people, to increase its outreach, and to open a first door to more diversity in the community.

The OCaml community has a long history of participating in that wonderful initiative. There have been all kinds of OCaml projects that interns have worked on, shaped, and given input to every year since 2014 (with the exception of 2017/18). And also this (Northern hemisphere) winter, we’re having three amazing interns with us.

So, as a first point, I want to say: Thank you, everyone! :heart: I myself have started being involved in the OCaml Outreachy organization only recently, while the whole community has been driving this for a long time now. And that’s one of the many things that’s really really nice about OCaml: There are nice industrial users, in this case Jane Street and Tarides, who’re willing to fund these kinds of efforts, and there’s a whole lot of community members who’re willing to (and enjoy!) getting involved, come up with projects, and mentor.

And that brings me to my second point: Do reach out to us if you also want to form part of this. It’s up to you whether you want to write in this thread or to DM @patricoferris and/or me (@pitag). Just like in the last couple of rounds, I already have a few concrete people in mind to reach out to for the upcoming round. However, I don’t know and can’t know everyone in the community in person. So me reaching out to people is working well so far, but people reaching out to us would be much easier and a lot less restrictive.

PD: I’ll post here with the relevant dates for the next round once they become more relevant. To already give one date: The deadline for OCaml community members to submit internship projects is Feb. 23, 2024.


Hello @pitag, thanks for the announcement. :heart: I’m interested in being a part of the program. In the past few days, I’ve contributed a few things to the repo, the recent one being this. And I’m willing to take up any Outreachy specific issues that I want to resolve in order to be considered for the program. :smiley:


Thanks, @Amoghavarsha! I’m very happy that you’re considering applying to an OCaml project! What has made you interested in OCaml?

It’s cool that you’ve written here! I was intending to target my post above at people who already form part of the community when writing it. The idea was to give visibility around Outreachy and to call for people to submit projects and to mentor. However, now that you’ve answered, I notice that the target can be wider. Thanks for making me notice! :slight_smile:

Also, it’s very cool that you’re already contributing to before Outreachy has even started! Just for transparency: Contributions before Outreachy starts won’t be taken into consideration when selecting an intern. However, if you just want to try out OCaml and make your first contributions, that’s definitely welcome at any time, also now!

Btw, the upcoming OCaml Outreachy projects aren’t defined yet, so it’s not certain yet if there will be a project on However, is certainly a good starting point for first contributions to OCaml projects in any case.

So: Welcome as a contributor! And do let us know if you have any questions.

1 Like

Thanks, @pitag :heart: Well, to answer the question, “What has made you interested in OCaml?”, I’m the happiest to answer this question. I discovered functional programming not less than a few months ago. As soon as I got to know about the paradigm, I started dabbling with functional languages, and was amazed by their history and the depth of the paradigm. Beforehand, I had done some Elisp, but never paid much attention to the paradigms and their essence and importance.

With all the information that I had in hand, I finally tried to learn one functional language properly. Initially, I tried to learn Haskell, but found it much more academic and dense (In a good way). I was struggling. I had a bit of difficulty with reading the language.

Next, guess what? All stars aligned, I heard about OCaml for the first time on X (previously Twitter). Before that, I was not very aware about ML. Even then, for a few days, I didn’t pay much attention to OCaml (my bad!) as I thought, it was just another FP. Later on, I started getting a lot of OCaml related content on my X, and all thanks to @sabine :heart: and her love for the community

Day by day, I started researching more about the language. I found it simple to read, and it was more intuitive compared to Haskell. There were a lot of FP people discussing OCaml and FP related topics. And nonetheless to say, I was already sold by then. :smiley: :smile:


Thanks for sharing your story of how you got interested in OCaml, @Amoghavarsha! It’s very interesting and refreshing to hear that the current OCaml X/Twitter wave reaches so many people from different backgrounds, and that it also attracts people who already have some functional programming experience in another FP language. Super nice!

1 Like

Hello again :wave:

We already have 3 prospective projects for the upcoming round :heart: That means we still have one spot left. Is anyone curious to get to know more about Outreachy and wants to consider submitting a fourth project? It wouldn’t be a problem if we submit three projects instead of four, but it would be even nicer to have four, mostly to to allow more people to do an internship in OCaml.

We’re planning to have a call! I.e. a chat about general questions/doubts/curiosities people might have about Outreachy. Examples: Objective of the internships, time commitment, how past internships have gone so far, tips on things to have in mind when mentoring etc. A tentative time would be 2024-02-16T15:00:00Z . Another option could be next week Monday. If anyone would like to join, but has time constraints, please let me know!

1 Like

I’m not sure what you’re asking for, but if you’re looking for projects, here’s one: a ninja build generator.

List of generators: List of generators producing ninja build files · ninja-build/ninja Wiki · GitHub

1 Like

Thanks, @mobileink! That’s certainly something I wouldn’t have considered, and it’s very very nice to see ideas from a different area of the community than I’m used to :tada:

We’re looking for project + a mentor for the project. Might you be interested in mentoring as well? If so, we’d of course give more info. Btw, here’re the relevant dates for the upcoming round:

- Feb. 23, 2024 at 4pm UTC: Deadline for mentors to submit project descriptions (or, at least a draft for it)

- March 4, 2024: “Contribution” period (i.e. application period) begins

- April 2, 2024: Contribution period ends

- April 9, 2024: Intern selection deadline

- May 27, 2024 to Aug. 23, 2024: Internships period

In any case, no matter if you’re also interested in mentoring or not, also brainstorming for ideas is very valuable. There could always be someone else who might want to pick it up. Is anyone else interested in mentoring something around that idea? Could be as a co-mentor together with @mobileink, or independently.

So, we’ll have the call on Monday :))

Time: 2024-02-19T15:00:00Z Monday, 19 February · 4:00 – 5:00pm
Video call link:
Calendar invite: Click here

Often, people who might consider mentoring have the same kind of doubts or run into the same kind of situations. Let’s have a call to discuss things that’d be relevant for all mentors, such as “What can be expected to get out of those internships?”, “What are typical challenges?”.

Here are a few points that people have already mentioned they’d like to discuss:

  • What is it like to be an Outreachy mentor?
  • Any tips for being an Outreachy mentor?
  • What are the currently proposed projects?
    • What are their strengths and weaknesses?
    • Does anybody want a co-mentor?
  • Let’s have a brainstorming session around project ideas.
    • What are criteria for internship projects?
  • Questions about funding.

We’ll discuss those and possibly other things that might come up during the call.

Do join if you are curious or interested. Or, if the time is inconvenient for you, let me know.

PD: To avoid mix-ups: This call is meant for potential mentors. It’s not meant for applicants. Applicants will get answers to their questions once the application period starts.

1 Like

Simple question: what is the mentor responsible for?

I’m happy to help anyone (respond to questions), but actively monitoring work and proactively “coaching” is a different matter.

@mobileink There’s details on mentorship at Outreachy | Mentor FOSS interns - Outreachy, and also Mentor FAQ - Outreachy. Mentoring is a quite active of 5-10 hours a week for at least 6 weeks. But co-mentoring is more lightweight (that’s what I’ve done before). Co-mentoring is discussed on the FAQ page.

Thanks! I could handle 5-10 hours a week. But the project I have in mind, supporting ninja builds, would likely not involve much learning of the OCaml language. It would only appeal to someone interested in build systems I suppose.

Personally I think that’s interesting because OCaml is so … weird wrt to building. But I’m a weirdo, so …


Maybe you should come to the meeting to discuss! I am not an organizer, and also looking forward to learning more about what makes for a good candidate project.

I co-mentored several years ago, and found it very rewarding: the interns were great, and it was really nice to work together with others in the community to help support them.

1 Like

Here are the notes from yesterday’s meeting! We discussed a lot of things, so they do not go into as much details as what was said. Thanks to all the participants, and to @pitag for organizing, running and taking the notes!

What are the currently proposed projects?

What is it like to be an Outreachy mentor?

  • Being approachable
  • Ping the intern at least once a day
  • Expects to spend an hour a day
    • Depends on the period. At the beginning, more time-intense. Later, the intern will be more independent.

  1. Project scoping.: Project “management”
  2. Preparing for the contribution period
    • Find good issues
  3. Contribution period
    • Depending on the issues you found, this can be very time-intense or not.
  4. Internship
    • Check-ins
    • Pair-programming
    • Meetings. Good idea: Use a pad to explain things via drawings.
    • Try out different things
      • Try daily stand-ups for a while
      • Try to leave the intern alone for a while
      • Try to connect the interns

Tips for mentoring

  • Have your expectations right from the beginning. A very good internship achieves two things: The project advances a lot, and the intern grows a lot. But also if only one of those two things happens, the internship is very successful.
  • Scope out a first very self-contained easy task that you think could be done in one week. Then, expect that the intern will take 1.5 month on it.
  • Put a “requirement” on the applicants to start contributing
  • Adapt to the intern
  • Avoid writing code for the intern
    • E.g. in the review, never make a code suggestion, but phrase out the change you have in mind
  • Related: Avoid “dragging along” the intern.

Current bottlenecks

Currently, the bottleneck is enough mentors, not finding more projects.

Criteria for a project / funding


Any project is a good project for this, assuming you have the mentor capacities. It doesn’t matter which part of the community is from or who the maintainer is. The only thing that matters is that the project is open-source and it’s in OCaml. A few tips for a good project:

  • Be in control of the repos the project is on
    • The project needs to be non-controversial among the repo maintainers.
  • Don’t have too high expectations on what can be done.

Anyone can submit a project.


Any project as described above is welcome. Any mentor for such a project can get funding. Any intern working on such a project would get funding as well.

Objective of funding

The objective of the funding is to increase OCaml’s outreachy and diversity. It’s not to promote projects from a certain part of the ecosystem.

Where do mentors communicate

So far, we’ve used Slack and have invited mentors who weren’t on there. We’ve discused that the Outreachy Zulip might be an even better place. We’ll try that this round.



Small update, since we are getting towards the end of the contribution period.

With @Juloo, we have submitted a project whose goal is to improve the accessibility of reading diffs. This starts as a TUI with a focus on accessibility (using the nottui library), but who knows where this will lead during the internship period!

We have had many strong contributors this month. The project has evolved already quite a lot thanks to the PRs opened by so many people. I’m very happy to see diversity in the OCaml community :heart:. We look forward to the internship period!

Thanks to the contributors and the outreachy organizers for such an awesome project!


Hi everyone! A little update, we have currently come to the end of the contribution period and we’ve had so many wonderful contributors to our submitted project which is to * Create a standalone repository as a basis for the exercise section on into a standalone project. Mentors : @cuihtlauac and @shakthimaan and myself.

We are appreciative of all the talented and diverse contributors we’ve had and are looking forward to the internship period itself!


Hi everyone!

I’m a bit late to the party but still wanted to let you know about the project we submitted with @shonfeder and @dinakajoy.

ocaml-api-watch is a fresh project that aims at providing a suite of tools to help OCaml library maintainers and users deal with changes in the public API of their libraries or the ones they use. This includes libraries and CLI tools to detect potentially unwanted breaking changes before releasing a new version or to determine the version of a library that introduced a new function.

The goal of the internship is to develop a library and tool pair that detects changes in the public API of a library, build an internal representation of them and displays them in a human readable, git diff-like format.

The application period went really well and we have several strong candidates. We’ve been extremely happy to work with all of them and are looking forward to the internship.