Job description
The Multicore OCaml project added native support for scalable concurrency and shared memory parallelism to the OCaml programming language. At its core, Multicore OCaml extends OCaml with effect handlers for expressing scalable concurrency, and a high-performance concurrent garbage collector / concurrent-gc aimed at responsive networked applications. Multicore OCaml is also the first industrial-strength language to be equipped with an efficient yet modular memory model /multicore-memory-model, allowing high-level local program reasoning while retaining performance.
Support for Multicore OCaml was merged into the OCaml compiler and released as OCaml 5.0 in December 2022. Work at Tarides to support our commercial and community partners in moving their applications to Multicore.
This includes building tooling to understand runtime performance, maintaining benchmarks for ongoing runtime improvements, and designing improvements to the Garbage Collector. This is a great opportunity to work with highly experienced compiler developers, and to have a positive impact on the OCaml
community.
multicore-ocaml: https://github.com/ocaml-multicore
posts: https://tarides.com/blog/tag/multicore/
effect-handlers: https://arxiv.org/abs/2104.00250
concurrent-gc: https://arxiv.org/abs/2004.11663
multicore-memory-model: https://kcsrk.info/papers/pldi18-memory.pdf
Responsibilities
- Develop tools to analyse and understand the OCaml Garbage Collector and runtime
- Provide technical leadership on the OCaml Garbage Collector and runtime
- Develop and maintain benchmarks and infrastructure for measuring compiler performance
- Design and implement improvements to the Multicore OCaml runtime system
- Implement parallel benchmarks, analyse and improve the performance of OCaml programs
- Submit pull requests to the OCaml programming language on GitHub, and work with the OCaml core team to get the features merged
- Work with external clients and other teams to gather requirements, develop proposals, design solutions and communicate project statuses
- Communicate with the wider open-source community (discuss, blog posts, meetups, conferences, talks, etc.)
Profile required
Qualifications & Experience
You don’t have to fill 100% of the qualifications to apply.
We are looking for an experienced (3y+) systems engineer to join our team.
Ideally, you will have:
- Excellent knowledge of C programming, parallel programming and operating
systems
- Worked on compilers, garbage collectors and other runtime systems
- Working knowledge of computer architecture and micro-architecture
- Experience in analysing benchmarks and application performance
- Track record of building production-quality software
- Demonstrable open source contributions are a plus, but not required
- Good communication skills in English; English is the corporate language
- Experience of working in multidisciplinary teams
Company description
Tarides is an international software company with offices in Cambridge (UK), Paris (France), and Chennai (India), founded in 2018 by pioneers of systems and functional programming. We have a worldwide presence with collaborators working remotely from the US, Australia, Canada, India, Japan, and across Europe. We have a solid academic background with connections to the University of Cambridge, Inria, and IIT Madras. Our diverse team of 40+ people performs groundbreaking innovation, feature development, and crucial maintenance of OCaml-based projects.
Tarides was previously part of Station F's Founder program in 2018 and was selected for the “Concours d’Innovation i-Lab,” organised by the French Ministry of Higher Education, Research, and Innovation in partnership with Bpifrance.
Tarides was also recognised during the FIC (International Cybersecurity Forum) 2020 fair, the leading European event on cybersecurity. These awards acknowledge the high quality solutions developed by Tarides and emphasise the interest they have gained from the cybersecurity community.
In 2022, OCaml Labs (a spinout from the University of Cambridge) and Segfault Systems (a spinout from IIT-Madras) both joined Tarides, aligning towards a shared goal: empowering developers, communities, and organisations to adopt OCaml as their primary programming experience by providing training, expertise, and development services.