We are excited to announce research internships in our Tools and Compilers group.

Research internships in T&C are designed for PhD students in programming languages, compilers, verification, or related areas. Research interns will be applying latest research in their area to real-world problems, pushing the boundaries of programming languages.

At Jane Street, we have long benefited from our close relationship with the programming languages research community. Research internships feel like a natural extension of that relationship: collaborating with promising young researchers on some of the challenging problems we’re trying to solve.

The team

Jane Street’s Compilers team focuses on improving OCaml as a foundation for Jane Street’s ever-growing technology stack, in collaboration with the greater OCaml community. We aim to make it easier for developers to express their ideas in OCaml, to improve the performance of the generated code, and to make the OCaml compiler itself faster and easier to use.

We also extend and enhance the surrounding toolchain, working on tools for profiling, debugging, documenting, and building OCaml code. The vast majority of our work is open-source, and we upstream as much as we can to the mainstream OCaml compiler.

Over the years, we’ve done more and more applied PL research ourselves, working on every aspect of OCaml, including extending the type system with support for novel language features, re-engineering the optimizer ground-up, and feedback-directed optimization.

Follow the links to learn more about our recent work on unboxed types for efficent memory layouts; modal types for supporting safe stack allocation, software prefetching for OCaml’s garbage collector which lead to massive speedups in the marking phase; evaluating the best-fit memory allocator, magic-trace, memtrace; build systems, user interfaces, language design and optimization for OCaml.

Project ideas

Here are a few areas we know we’d be interested in exploring:

  • Type systems that track locality and uniqueness
  • Verifying C bindings with respect to OCaml’s garbage collector
  • Super-optimization

But that’s not an exhaustive list, and we’d love to hear new ideas from applicants.

Logistics

Our existing software engineering internships program is aimed at undergraduate students. Our interns have landed a bunch of exciting projects, often related to programming languages. Some projects we would like to pursue require specialized knowledge and experience beyond the undergraduate-level curriculum. The research internships will run alongside the existing internships to fill this gap, and will have a slightly different selection process.

During the application process, we will work with the candidate to identify a project that aligns with their research expertise and interests.

The open-source nature of T&C projects means collaborations with research interns may continue outside of the time frame of the internship. Our goal is to select projects that can lead to publication of the work in a scientific journal or conference.

Research internships can be hosted in our London and New York offices all year round.

You can find the applications here: