Outreachy December 2023

Hello :wave:,

With the conclusion of the previous Outreachy round (see End-of-Internship Demo Session), the next round is fast approaching and the OCaml community has signed up again to participate!

The deadline for mentors to signup is September 29 2023. The OCaml community has decided to try a slightly different approach that has worked very well in the previous round. We noticed quite a few people would like to be involved in an internship but without worrying too much about the details of Outreachy itself. If people are simply interested in mentoring and they maintain an open-source project, then they can reach out directly to @pitag or myself and we can help scope a project, explain the contribution period and provide as much other help as we can!

When signing up mentors propose an open-source project where prospective interns submit PRs during the “contribution phases” as part of their application. Mentors will then choose an intern to work with for 3 months. A more detailed explanation is available on the Outreachy mentor section.

Finally, Tarides and OCaml Software Foundation have been very generous so far funding our efforts on the intern side. Since the previous round, Jane Street and Tarides have gone a step further and have also provided funding for the mentor side! Mentoring does take time, but you get a lot back from it on different levels and hopefully this financial help can lower the barriers to being a mentor.

As always if you have any general questions or mentoring ideas do comment on this thread or reach out to us directly.



I briefly mentioned in the Rtree announcement that extending the library to support some of the newer Rtree variants might be a fun project. If anyone is interested in co-mentoring or would like to just help in a very low commitment way, do reach out :))

Hi! I want to join as a co-mentor in this round of Outreachy. I am a recent Outreachy alum.
I worked on the MIDI over Ethernet project in the Summer Outreachy round, under @pitag , @rand, and @moazzammoriani .
I had a great time during the project and would like to continue growing in the field. And I hope to use my newly gained experience to try to help newcomers this time.


Hey @AryanGodara ! Sorry for the slow reply.

Very, very cool. Was that related to Cardio Crumble? If you are interested in co-mentoring the R*-tree project could you send me an email (contact info https://patrick.sirref.org) or DM on here. If you would rather wait for a different project that’s cool too :))

I just concluded my internship with OCaml working Persistent Storage for MirageOS Unikernels. My internship was amazing. I was a beginner but by the time the internship ended I had already learned so much, all thanks to my mentors, especially @reynir
Mentoring is amazing and because I had a mentor I could learn faster than if I was working on my own. So I encourage everyone who has a bit of time and is passionate about helping newbies like myself get up and running with OCaml to apply.
I will be sure to assist in the various forums and github issues when I come accross beginners who have difficulties.


I was a mentor during this last round, and it has been a great experience - both a super team of mentors and enthusiastic and cool interns. Can fully recommend it to anyone thinking about becoming mentors!

To me it was especially nice to see the development of the interns, and be a guide of their process of learning and becoming OCaml developers. It also makes you see how FP, OCaml and the ecosystem looks from a beginners angle, which is quite interesting


To follow up on what @rand has said: I also think that this past round has been particularly amazing. I’d say there are several reasons for that, two main reasons being:

  1. Thanks to the different backgrounds of the different mentors @rand, @reynir, @panglesd, @moazzammoriani and @musha68k, the projects were very diverse. We often have all mentors from the Tarides context only. That keeps things simple and it’s great that Tarides lets us do this. However, we’ve seen this round that more diversity, also from a project and mentor perspective, is super refreshing!
  2. It has been a collective experience for all of us. In the past, when there were other OCaml Outreachy projects than the Tarides-related ones, we used to work in parallel. For example, @octachron, @gasche and other compiler devs have also had excellent Outreachy projects in the past, that we often forget to mention! From now on, I’d reach out to whoever submits projects and organize a few things together.

And talking about past projects: There have been internships on all kind of projects: OCaml tools, OCaml libraries, OCaml unikernels (:stuck_out_tongue:), OCaml data bases, OCaml applications, OCaml pipelines etc. As mentioned, all projects are good projects, and the more diverse, the better.

We’re already quite close to the project submission deadline, but if you’re considering to mentor: reach out now. Even if it’s too tight on time for the upcoming round, it’s never too early to anticipate for the next round.

As we’ve mentioned, you don’t need to have an internship topic in mind to reach out to us! Still, this does seem to be a main blocker. So let’s kick off some brainstorming: What are some pain points you’d like to solve an an OCaml project you have? What kind of enhancement or optimizations would be nice? Would writing examples or developing a new workflow for something be interesting? Can anything be explored in a slightly diverging context from your project? Alternatively: Is there anything new that can be explored? Is there anything simple enough you’ve seen in other languages that you’d like to be implemented in OCaml? The main criteria for being a good internship topic are being incremental, uncontroversial, and doable in 3 months. There are so many good topics when you start thinking about it!


Hi everyone, I’m mentoring this cohort for a project based on adding a dark mode to ocaml.org, GitHub - ocaml/ocaml.org: The official OCaml website.. If anyone in the community is interested in co-mentoring please reach out to me! :slightly_smiling_face:


@SaySayo I might be interested in mentoring again.


This sounds like an exciting project @SaySayo . I’m just curious to know what the tech stack will be on this one. Is it related to front-end (like Javascript, HTML, etc.) or an OCaml implementation? I never thoroughly explored the codebase of ocaml.org :sweat_smile:

Hi @moazzammoriani, that’s great that you’re up for mentoring again! By now, I’m really glad and things have turned the other way around: We now have four projects with two mentors per project for the upcoming round :tada:

I’ll DM you about possibilities to still mentor in the upcoming round, @moazzammoriani. One option could be to be a “joker” (i.e. helping out wherever needed).

I’ll also write an update here on the projects and mentors, once we have the confirmed list.


@nikochiko and I have proposed a project to develop a geometric creative coding library for OCaml. This is heavily inspired by joy – we had loads of fun hacking with it at Lambda Retreat (in Scheme) and want to pass it on to OCaml programmers, and learn a bit about creative coding in the process. Really excited to work on this. Outreachy applicants: Please don’t hesitate to get in touch with us if you’re interested to contribute. :slight_smile:

Huge thanks to @pitag, @patricoferris and everyone involved, for their efforts to keep this thriving!


As promised, here is the update/summary on this round’s projects. Just like last round, the OCaml community has signed up with four super cool projects again. Here are this round’s projects:

  • Implement R*-tree in OCaml. An R*-tree is a data structure designed for geospatial use, particularly to be queried for geospatial objects contained in a given box. It’s super nice to see the Geospatial ecosystem for OCaml thrive. Mentors: @patricoferris , @AryanGodara
  • Implement a dark mode for OCaml.org. It’s a very nice idea to have a common feature request as an Outreachy project! That makes the internship very gratifying for the intern. Mentors: @SaySayo , @punchagan
  • Improve the GUI experience for OCaml users. Together with trying out and possibly improving different GUI libraries in OCaml, that will entail writing a “Are we GUI yet” page on ocaml.org, similar to Are we web yet?. Those pages are super important, both to understand the current OCaml ecosystem ourselves and to give an overview to newcomers. Mentors: @gpetiot, @moazzammoriani
  • Develop a geometric creative coding library in OCaml. Such a cool idea, @sudha ! It combines functional programming with creativity and basic geometry. The idea is to encode and draw 2-dimensional geometric shapes in a functional style. It’s inspired by Python’s joy. Mentors: @sudha, @nikochiko

Even at the small risk of being annoying: This is a good time for everyone who might possibly be interested in mentoring to start thinking about a project for next round :slight_smile:


@sudha & @nikochiko & @pitag - keep in mind that Vg is really cool for creative FP vector graphics already - including its subtractive method (cutting out images from images)


Vg is awesome, and we have considered using it as the backend for Joy. Eventually, we may want to port Joy to Vg or make it available as a backend. Vg is exhaustive and much more capable than Joy. However, the primary purpose of Joy is that it offers a simple and beginner-friendly API, making it approachable even for people with no OCaml experience. We’ll try to capture this in the README.

1 Like