The goal of OCaml Labs is to push OCaml and functional programming forward as a platform, making it a more effective tool for current users (including significant industrial users) and at the same time growing the appeal of the language, broadening its applicability and popularity by a combination of technological advancements, creation of community infrastructure, and public communications.
We are always pleased to discuss collaboration opportunities, and feel free to contact us directly with any questions. A core principle of the OCaml Labs is that all of the work done here will be freely released, available under open-source licences, and efforts made to integrate all work upstream (e.g. to INRIA, who originally developed and have maintained OCaml since its release in 1996).
This effort is run across multiple groups in the Computer Laboratory, primarily the SRG and PLS and including collaborators from the Security, CompArch and DTG groups. We would like to especially thank our primary funder, Jane Street, for their generous support.
For day-to-day inquiries about the Labs, please contact us
directly at the e-mail addresses below, or join the public mailing lists. The
ocamllabs-announce is a low-volume mailing list
for software releases, and
ocamllabs-devel covers day-to-day
development with our external collaborators.
There are several ways to work with OCaml Labs, ranging from internships and short visits, to embarking on a PhD degree, to post-doctoral work (both research and engineering-oriented).
A core principle of the OCaml Labs is that all of the work done here will be released to the public and made available under open-source licenses. To this end, all members of the Labs retain their own copyright, with the requirement that all OCaml-related activities be released under a free software license (preferably BSD/ISC or LGPLv2).
Applying for a PhD
We're always looking out for bright people to become PhD students. Of course, entry is very competitive, but every year quite a few people do win! A PhD degree in the Computer Lab typically takes 3-4 years, and requires application well in advance. You should read up on the official process, and also contact us to discuss research proposals before you submit them.
You will need to do some research on what sort of funding model you want (self-funding, or an EU grant, or a Gates Scholarship, or College funding). Some of them, like the Gates funds, are very competitive and so you will want to get your application in early. Also make sure you have the minimum qualifications (a Masters-level degree helps, as does experience in industry). We can also fund exceptional candidates directly, so do not despair if you cannot find external funding and always ask us!
We are hiring for full-time post-doctoral and engineering positions for the projects we work on. These include:
- Compiler engineers
The OCaml compiler is a very finely maintained tool, and we wish to help INRIA to maintain and develop it. The projects page lists some of the tasks, including a developing multicore-capable GC (without sacrificing sequential performance), improving cross-module inlining and general optimisation, adding an efficient LLVM backend (with hooks for precise GC), and experimenting with more radical techniques such as whole-program optimisation. If you are excited by the thought of such projects, enjoy open-source coding and interaction, and want to work in a vibrant and slightly crazy research group, then you want to apply!
- Post-doctoral systems research
We use OCaml heavily in a variety of systems projects, ranging from the Mirage exokernel, the Signpost DNSSEC routing engine, the Xen Cloud Platform and privacy-aware personal data management. This is a good opportunity for a freshly graduated PhD student who wants to spend a few years building complex networked systems and publishing (both papers and code)
Visitors and internships
If you are working on a project relevant to the OCaml ecosystem, and would like to spend some time working directly with OCaml Labs staff and students, then get in touch! We can arrange (paid) internships for graduate students, and office space for visitors. A typical visit lasts from a few days to six months. A graduate student should think about a project for the internship that could lead to a good conference publication, and we are happy to discuss projects. It should ideally be related to your main PhD topic to get the most benefit out of it.
If you visit in the summer, then it should be possible to arrange for accommodation in one of Cambridge's beautiful Colleges. Availability is very variable, and depends on whether you need single or multiple rooms. Please get in touch with Gemma for details.
For current students in Cambridge, several of our industrial partners offer paid internship programs over the summer, where you go work on real problems. Check out the Jane Street program, and contact us if interested in a Citrix internship locally in Cambridge. You can also check the UROP list for current projects.
For external undergraduates looking for a placement (e.g. from an in France ENS), this can also be arranged for a usual period between 4-6 months. Please contact us with at least two months before the desired starting period.
If you are an industrial user of OCaml, then you are very welcome to visit and discuss collaboration opportunities. Although the Lab itself does not undertake commercial work, we are eager to learn about your needs. We help organise ACM/SIGPLAN conferences (such as CUFP and OUD) where you can get more publicity, and we plan to host smaller workshops and hackathons in different regions. Members of the Lab may consult on a private basis, but larger opportunties should be directed to dedicated commercial companies such as OCamlPro.
If you wish to contribute funding towards the goals of the Labs, then please get in touch with Anil Madhavapeddy. This can often be a tax-efficient and effective way to help expand your use of functional programming and ensure the long-term future of OCaml.
We also regularly participate in industry/academic collaborative projects, particularly via the EPSRC and the EU FP7 programs. Note that we do not at as coordinators or management bases for EU projects, and only as research participants.