About the Role
We are seeking Software Engineers with a programming language background to join our PL-focused teams at Jane Street. This role involves work across various areas including language design, type systems, compilers, optimization, incremental and parallel computation, high-performance computing, domain-specific languages, and tooling/developer experience.
Responsibilities
- Designing language features and stronger type-level guarantees.
- Implementing optimization, code generation, and backend work for performance-sensitive systems.
- Building runtimes for incremental and parallel computation.
- Developing tooling, verification techniques, and languages for hardware design.
- Supporting programming for GPUs and ML accelerators.
- Designing, implementing, and evolving custom languages for internal platforms.
- Creating profilers, debuggers, language servers, IDE integrations, and documentation tools.
- Contributing to open-source language implementations like OCaml and Python.
- Developing custom languages and DSLs.
Requirements
- Deep experience with and passion for programming languages.
- Experience in language design, type systems, compilers, runtimes, or DSL implementation.
- Top-notch programming skills.
- Strong interpersonal skills for collaborative teamwork.
Skills
- Programming languages
- Language design
- Type systems
- Compilers
- Optimization
- Runtimes
- Domain-specific languages (DSLs)
- High-performance computing
- GPU programming
- ML accelerator programming
- Tooling
- Developer experience
- OCaml
- Functional programming
- Python
About the Company
- Jane Street focuses on programming languages across a wide variety of areas.
- Some of our work involves open-source language implementations.
- We also develop custom languages and DSLs entirely in-house.
