Researcher - Programming Languages

DFINITY   •  

Palo Alto, CA

Industry: Telecommunications

  •  

Less than 5 years

Posted 35 days ago

We are looking for a researcher and engineer who will participate in the design, formalization, and implementation of domain-specific programming languages. The domain of interest is distributed computing and "smart contracts" running on a blockchain-based computing platform. We are working towards designing and implementing a low-level distributed programming model for this platform with WebAssembly as its code format as well as high-level languages compiling to it. Both need to be scalable, productive, and reliable for potentially hundreds of thousands of third-party clients of the platform.

You enjoy working closely in a distributed team with other researchers and engineers in the areas of programming languages, distributed computing, cryptography, and other related fields. You not only have a strong interest in the design and implementation of programming languages but are also capable of developing and formalizing their semantics. You enjoy reading up on the latest research papers from academia but also don't mind getting hands-on with the practical implementation of new ideas. You have a passion for functional programming and advanced type systems but can pick the right tool for the job.

Responsibilities

  • Work closely with a distributed team of researchers, engineers, and experts in the field of programming languages, blockchain cryptography, and distributed systems
  • Participate in the design, formalization, and optimization of new domain-specific programming languages, type systems, and programming models
  • Contribute to the implementation of new compilers, runtime systems, VMs, or verification tools for these languages
  • Contribute to documentation, test suites, and tools supporting these languages
  • Lead or participate in scientific publications and engage in conferences in related subject fields

Requirements

  • At least 3 years of relevant academic or equivalent experience in programming language theory, type systems, and compiler construction
  • At least 2 years of experience in programming with typed functional languages
  • Solid understanding of formal language semantics, calculi, and their theory
  • Working understanding of advanced type systems, ideally including dependent type theories, linear types, or the use of theorem provers
  • Experience in writing scientific papers and giving presentations
  • Ability to work autonomously as part of a distributed team