Distributed Systems Engineer, IPFS Cluster (Go)

Remote - IPFS Cluster
Projects – Engineering
We seek a software engineer for the IPFS Cluster project to explore new horizons as the go-to tool for IPFS storage management.

Enthusiasm about the decentralized web and blockchains has brought an influx of people who want to use distributed systems but who don't know how to build the necessary infrastructure. We are building that infrastructure. IPFS Cluster resolves the problem of content availability and reliable storage by allowing to orchestrate multiple IPFS daemons to replicate content. To continue that work, we're looking for people who thoroughly understand the principles of distributed systems and who will lean into the challenges of applying those principles in open-source code that will be deployed worldwide.

Distributed Systems Engineering at Protocol Labs
Distributed systems engineering lies at the center of many projects at Protocol Labs. With IPFS, libp2p, IPFS Cluster and other related projects we are laying the foundation for a more resilient, more secure, distributed version of the web. This requires rigorous engineering from protocol design through all the phases of implementation. We strike a balance between pragmatism (put it on a ship ⛴), deeply informed protocol design, and strict application of strong engineering principles. All of this happens in an environment defined by curiosity, passion, and a love for open source.

As a Distributed Systems Software Engineer at Protocol Labs you might …

    • Create elegant, reusable open-source solutions to hard distributed systems problems
    • Contribute to steering and maintenance of the IPFS Cluster projects and the IPFS, libp2p, IPLD stacks that it builds upon
    • Apply research results into real solutions
    • Work with consensus algorithms, CRDTs and other distributed approaches to coordinate scalable peersets
    • Work on data replication and advanced fault tolerance strategies on ipfs
    • Build and transform Merkle DAGs so to efficiently work with very large datasets
    • Provide code reviews, guidance, and encouragement for open source contributors around the world
    • Support users with real-life use cases, writing open-source code that will run in many different environments
    • Create optimal APIs and interfaces for programmers and users to interact with the application

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

    • Significant experience building applications in Go (required)
    • Solid understanding of distributed systems principles and applications (required)
    • A good understanding of the Web's application model (required)
    • Experience working with the Go implementations of IPFS, libp2p, IPLD, Multiformats (preferred)
    • Experience leading and guiding Open Source projects (preferred)
    • Literacy with cryptographic principles and practices
    • Literacy in CRDTs and generalistic consensus algorithms
    • Literacy in erasure coding / FECExperience in automation of infrastructure and related technologies (i.e. terraform, packer, ansible, kubernetes...)
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.