Research Engineer, CryptoCompute Lab

Remote - Research Development /
Research Development /
Full-time
We seek talented researchers and engineers who have a fiery passion to build foundational infrastructure for the fabric of human knowledge; who wish to work on the bleeding edge of cryptographic primitives & high performance computing; and who understand the value of creating resilient, open, and excellent software.

CryptoCompute Lab
Protocol Labs has created a new research lab focused on cryptography and high performance computing (CryptoCompute Lab). This lab supports engineering teams by solving "problems-to-be" before they impact operational systems and networks (such as IPFS, libp2p, and Filecoin) and also supports them on existing bottlenecks.

In 2020 alone, CryptoComputeLab delivered, among many other things:
- A production-ready implementation of the Proofs of SpaceTime used by Filecoin.
- The fastest implementation: zkSNARK implementation based on Groth16
- The above power the live Filecoin network, producing around 4 Million zkSNARKs per day, the largest deployment of zkSNARKs to date.
- A state-of-the-art BLS signature implementation.

Research Engineering at Protocol Labs
We are hiring a Research Engineer to pursue our vision in building and expanding the Crypto Compute Lab. The engineer is expected to take part in work related to surveying academic literature, implementing, and evaluating designs nurtured within the lab and also identifying problems with existing designs in production deployments.

We believe in an Open Source and Open Collaboration approach to creation. We keep our egos checked at the door and work as a team to tackle the many hard research and engineering challenges required to make systems resilient.

As a Research Engineer at Protocol Labs you will:

    • Study, design, and propose improvements to the underlying cryptographic primitives of IPFS, libp2p, Filecoin, and other projects.
    • Validate design proposals through experiments and/or proofs-of-concept.
    • Develop prototypes into production-ready implementations.
    • Use Rust, Assembly, and Cuda/OpenCL to implement and optimize software libraries.
    • Apply critical security and performance considerations at every step of the development.
    • Contribute and possibly lead system design and specification.
    • Optimize existing implementations to surpass the current state of the art.
    • Apply engineering rigor, craftsmanship, and structure to research, improving its predictability, clarity regarding progress, and enhancing collaboration.
    • Collaborate with other research labs and individual researchers in the field.
    • Attend and represent the projects and the research at academic and developer conferences.
    • Work in a fully asynchronous and remote team.
    • Organize and attend high-intensity research and protocol design workshops.

Minimum Qualifications:

    • BS or MS in Computer Science, Electrical Engineering, Mathematics or a related field, or extensive practical experience.
    • Programming experience and proficiency in one or more of the following: Rust, C, C++, OpenCL, Cuda, x86 Assembly
    • Good systems engineering skills with previous proven experience.
    • Able to be critical against proposed or adopted solutions, but in a constructive way.
    • Adept at lifting new software projects single-handedly, if necessary.
    • Comfortable getting your proposals reviewed and criticized in detail in favor of finding the optimal solution.
    • Able to adapt your mode of operation to fit with the team's guidelines for collaboration.
    • Self-driven and independent, capable of seeking and learning the necessary tools and technologies to complete your tasks.
    • Understand the value of performance critical aspects of software, and related tradeoffs.

Highly-valued bonus points include:

    • Prior knowledge or contributions to the IPFS, libp2p, and/or Filecoin projects.
    • Past experience with GPGPU computing.
    • Existing knowledge of optimizing memory and compute bound programs.
    • Proficiency with functional programming languages such as OCaml and Haskell.
    • Extensive experience benchmarking and profiling programs down to the instruction level.
    • Have a demonstrable background in security or cryptography. 
    • Proven experience in developing robust, reusable, and maintainable code.
    • Proven experience in developing reproducible experiments and simulations.
    • Prior contributions to open-source projects.
What’s it like to work at Protocol Labs?
Protocol Labs mission is to improve humanity’s most important technology, the Internet. We build protocols, systems, and tools to improve how it works. Today, we are focused on how we store, locate, and move information. Our projects include IPFS, Filecoin, libp2p, and more.

As a distributed team, we hire anywhere in the world, and at various levels of experience (entry, senior, staff). We look for people with unique perspectives and diverse backgrounds.

We have a great benefits package, including parental leave, contributions to your retirement, competitive pay, and unlimited time off. For U.S.-based employees, we also provide platinum-level health, dental, and vision coverage for you and your family.