Distributed Systems Software Engineer - Compute Over Data

Description

About Protocol Labs

Protocol Labs drives breakthroughs in computing to push humanity forward. Protocol Labs is a product-development lab, but behind the protocols and tools we build, behind the research and implementations, are passionate people, teammates, and community members. Most teams in the Protocol Labs Network are fully distributed and work remotely around the world. Engineers, researchers, and operators work in the open to improve the internet — humanity's most important technology — as we explore new advances at the intersection of many exciting fields (crypto, networks, distributed systems) and cultures (startups, research, open-source, distributed work).

 

Define, implement and extend virtual machine concepts to the next generation of p2p, decentralized computation over content-addressed data.

We seek talented engineers that are excited to work on a new model of trustless and verifiable computation - where code is distributed over blockchains and executed next to specific copies of data. If successful, we will transform data processing for large-scale datasets, improve cost and efficiency, and open up data processing to larger audiences. You will be part of this project from the very beginning.

We are looking for people who understand the core principles of operating systems, code execution, and distributed systems. You will understand, implement and improve best-in-class compiler and compute environments (WASM & LLVM), help us design and build open-source code, and ensure that the system is easy to get started with and virtually unlimited in scale. Together, our team will change the way people interact with data.

You’ll also help engineer and deploy the Filecoin Virtual Machine, a runtime-agnostic WASM-based environment for executing on-chain smart contracts. Together we’ll apply the principles of actor-orientation, novel consensus techniques, and formal verifiability to achieve high throughput and correct-by-construction transactionality. You will also help design and implement native FVM interoperability with other chains, as well as developer tooling and SDKs to make the FVM developer journey highly productive and enjoyable.

What is Research Development at Protocol Labs

At the Research Development group, we translate theory into reality. We take on the most challenging problems that block the adoption of planetary-scale decentralized technologies. Our approach is both pragmatic, rigorous, and must have well-defined, scoped, and measurable milestones. We also interface with many other teams and open source projects, ensuring that we take the best path to get technology into the hands of most people, whether we have invented it or not.

Our philosophy means you will be able to execute in a rich and fertile ground for ideation and prototyping, with the launchpad for shipping those new ideas into reality, testing them in real-world scenarios, and creating maximum impact for the research performed.

Bringing formal execution to blockchains is the next evolution of distributed systems. When users can both request and deploy arbitrary programs in a verifiable way, they will be able to use new paradigms with the efficiency and reliability of a globally distributed network. Like Filecoin, we will stand on the shoulders of the giants before us and extend the best-in-class tools to new areas. But we cannot merely be great technically; success will hinge on marrying cutting-edge research with the table stakes of a clean API, well-designed SDK, and intelligent contracts that meet users where they are. Our success will transform the way entire classes of problems are solved. We would love you to be a part of our vision.

Compute Over Data

The goal is to enrich the Filecoin ecosystem by providing a compute over data framework that integrates seamlessly with core functionality and can be a platform for future developers in any ecosystem.  That includes building core UX that Filecoin more useful immediately and empowering the ecosystem through reusable and swappable interfaces and object based on specific needs

As a Distributed Computation Engineer at Protocol Labs, you will....

  • Prototype, develop and ship the first smart contract implementation that operates on the Filecoin chain.
  • Define compatibility with and support for existing smart contract execution tool chains and implementations such as EVM and Solidity.
  • Collaborate with the IPFS, Filecoin, libp2p teams to ensure support with existing systems as well as contribute to other projects to support FVM.
  • Create or maintain software libraries and programs depended on by other systems and applications.
  • Quantify performance, security, and other properties of existing and proposed systems; suggest improvements based on the data.
  • Partner with academia and the broader community in exploring new and out-of-the-box approaches to designing and implementing next-generation decentralized systems. 
  • Work in a fully asynchronous and remote team.

You may be a fit for this role if you have....

  • BSc degree in Computer Science, Electrical & Computer Engineering, or related field, or equivalent practical experience (though a “traditional” education or degree is NOT required).
  • Programming experience and proficiency with Rust is ideal, but programming experience in one or more of the following is required: Go, JavaScript, C, C++, Haskell, OCaml, Python, Clojure.
  • Ability to analyze, criticize, and improve the design of complex computation systems.
  • Excellent written and verbal communication skills.
  • Experience contributing to research communities and/or efforts, including publishing conference papers.
  • Pragmatic “get it done” attitude and the ability  to provide and receive constructive feedback.

Bonus Points....

  • You have a record of demonstrating state-of-the-art innovation in distributed systems and virtual machines with a proven publication record or project history. (Potentially including but not limited to distributed data structures, novel network architectures and protocols, consensus protocols, peer-to-peer connectivity, distributed execution, distributed file systems, network optimization, graph traversals, and dynamic network analysis.)
  • You’re comfortable digging through new academic literature on graph theory or IETF RFCs for inspiration while problem-solving.
  • You believe that you don’t really understand something until you can explain it to a six-year-old, and your experience mentoring or writing technical explainers or blog posts demonstrates that you enjoy testing your understanding against this metric.
  • You’ve demonstrated technical project management skills and the ability to design and execute on a research agenda.
  • You have experience setting up and managing research collaborations or contractors.
  • Proven success of influencing and developing productive working relationships with diverse technical teams and stakeholders.
  • Strong technical and problem solving skills.
  • Excellent written and verbal communication skills

 #LI-CU1

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.

If you’re passionate about the future of computing and a more democratized internet, we want to talk to you.

 

GDPR for Job Applicants and Candidates

When you apply to a job on this site, the personal data contained in your application will be collected by Protocol Labs, Inc. (“Protocol Labs”), which is located at 427 N Tatnall St #51207, Wilmington, Delaware 19801 and can be contacted by emailing legalrequests[at]protocol.ai.  Protocol Labs’ data protection team can be contacted via legalrequests[at]protocol.ai.  Your personal data will be processed for the purposes of managing Protocol Labs’ recruitment related activities, which include setting up and conducting interviews and tests for applicants, evaluating and assessing the results thereto, and as is otherwise needed in the recruitment and hiring processes. Such processing is legally permissible under Art. 6(1)(f) of Regulation (EU) 2016/679 (General Data Protection Regulation) as necessary for the purposes of the legitimate interests pursued by Protocol Labs, which are the solicitation, evaluation, and selection of applicants for employment.

Your personal data will be shared with Greenhouse Software, Inc., a cloud services provider located in the United States of America and engaged by Protocol Labs to help manage its recruitment and hiring process on Protocol Labs’ behalf. Accordingly, if you are located outside of the United States, your personal data will be transferred to the United States once you submit it through this site. Because the European Union Commission has determined that United States data privacy laws do not ensure an adequate level of protection for personal data collected from EU data subjects, the transfer will be subject to appropriate additional safeguards.

Your personal data will be retained by Protocol Labs as long as Protocol Labs determines it is necessary to evaluate your application for employment or to assist in the hiring process. Under the GDPR, you have the right to request access to your personal data, to request that your personal data be rectified or erased, and to request that processing of your personal data be restricted. You also have the right to data portability. In addition, you may lodge a complaint with an EU supervisory authority.