Multicore Application Engineer

Work

The Multicore OCaml project aims to add 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 aimed at responsive networked applications. Multicore OCaml is also the first industrial-strength language to be equipped with an efficient yet modular memory model, allowing high-level local program reasoning while retaining performance.

Multicore OCaml is actively being developed and core features are being upstreamed to OCaml. The multicore project at Tarides is a close collaboration with our industrial partners OCaml Labs and Segfault Systems.

As OCaml 5.0 with shared-memory parallelism support is on the horizon, we are ready to build full-fledged OCaml applications that take advantage of the parallelism opportunities. Specifically, the focus is on the Tezos blockchain to improve the transaction throughput, utilising the parallelism support. We believe that adding parallelism support to a complex project such as the Tezos shell would set a precedent for how other projects should utilise parallelism support and help identify pain points that the Multicore OCaml team and the wider community can address.

We are looking for an experienced engineer (3y+) to build parallel applications using the Multicore OCaml compiler.

Responsibilities

  • Ecosystem Engineering
    • Build and maintain Tezos node using the Multicore OCaml compiler.
    • Add Tezos-related packages to the OCaml CI.
    • Investigate CI failures and report issues to appropriate teams.
  • Parallelising
    • Work with the Tezos developers to identify the opportunities for parallelism in the Tezos shell.
    • Utilise Multicore OCaml parallelism support (such as the Lwt offloading mechanism) to offload compute-intensive tasks such as crypto and serialisation to spare cores.
    • Work with the Irmin/Tezos storage team to add parallelism to storage tasks.
  • Benchmarking
    • Work with the Tezos developers and Irmin team to identify relevant benchmarks.
    • Implement those benchmarks for Tezos, and work with the benchmarking team to include them in sandmark and continuous benchmarking infrastructures.
  • Research
    • Build a direct-style Tezos shell using the eio, next-generation effect-based direct-style IO library.
    • Collaborate with researchers to implement deterministic parallelism support in the Tezos protocol core.

Qualifications & Experience

(You don’t have to fill 100% of the qualifications to apply.)

  • Excellent knowledge and hands-on experience developing parallel programs in any language.
  • Experience with the OCaml language, or other functional programming languages.
  • 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.

What we offer

Nice office in Paris (Place de la Contrescarpe, Paris 5)

  • Flexible working hours and possibility to work remotely
  • Supportive team environment with experienced Technical and Team Leads
  • Amazing health insurance for you and your family (Alan Blue) and paid parental leave
  • A “ticket restaurant” card and 50% of public transportation pass reimbursed

Process

Please send your CV and cover letter to apply@tarides.com. If shortlisted, you will have three online interviews starting with a general interview, followed by a technical interview, and finally an interview with the team.

We welcome applications from people of all backgrounds. We strive to create a representative, inclusive and friendly team, because we know that different experiences, perspectives and backgrounds make for a better workplace.