I am curious about something. There are many companies using OCaml, some of them very successful and famous. Others more obscure. They all obviously have one thing in common–they need to employ developers to maintain their OCaml codebase. My question is, how have they been finding developers for a niche language?
I’ve heard that Jane Street has developed a 2-week crash course and many internal tools, idioms, and best practices.
I’ve also heard of some companies which had to move away from OCaml (or Reason/ReScript) codebases due to the usually cited reason–lack of support.
How are companies in general convincing good developers to join, learn OCaml, stay on in the job instead of flying to greener pastures, and building up engineering continuity with training/documentation so that their whole OCaml codebase is not at the mercy of one or two engineers deciding to stay or leave?
I can tell you a little bit from my experience at LexiFi. (This is strictly my personal opinion, and in no way it should be understood as an official statement of any kind.)
Most programmers hired at LexiFi already know some (or a lot) of OCaml. Often, they have a two-year Master program in CS (called “M2” in France) or an Engineering degree under their belt, where they learn OCaml, but this is not a requirement. Typically, we advertise the position in the usual places, and candidates send in their applications. A few remarks:
For the last couple of years, hiring was noticeably tight. My feeling is that this was in large part due to certain blockchain-backed companies in France siphoning a disproportionally large number of OCaml programmers off the market. I say “was” because since the recent bitcoin downturn, we have seen a noticeable increase in the number of good candidates, and hiring has loosened up again.
We are a small team, so don’t need to hire more than one or two people at a time. I am not sure what the situation would look like if we wished to hire tens of programmers at one time.
Also, our experience may be a bit particular because we are based in France, where (I guess) the supply of OCaml programmers is higher than average.
We haven’t had to onboard many programmers who did not know OCaml before, so we don’t have a dedicated training program. We try to document workflows, but the truth is that a lot of the institutional knowledge about the code is not written down anywhere, and new hires learn it by talking to people around them. This probably works as long as your team is relatively small, but will not scale beyond a certain point, which is why more structured onboarding processes are needed in larger companies.
As another data point, our “quant” team, which consists entirely of quantitative programmers which typically arrive to LexiFi with little or no OCaml experience, developed a “crash course in OCaml”. New arrivals typically go through it to get up to speed so that they can start contributing to the codebase. On the other hand, quant programmers have very specific skills and don’t typically “roam” over the whole codebase, so it is easier to tune their training for the kind of tasks they will be doing.
This would be unthinkable at LexiFi; we use OCaml for everything, are are fully invested in it. But I can see how this could be a problem in a company where OCaml knowledge is the reserve of a small number of people.
I can only hypothesize about my colleagues, but my personal feeling is that I’m quite happy to be able to make a living programming in OCaml, so this acts as an incentive to remain, rather than to leave. More generally, for whatever reason, the turnover at LexiFi is extremely low, so we haven’t had to deal with issues stemming from high churn rate. I think it would definitively be a problem if this were to happen.