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).

The IPLD team seeks driven engineers to help build out reusable libraries and algorithms for decentralized data wrangling.  The position involves software development, understanding interoperability, and deep technical specification work to make sure everything we do can also be done by others in their programming languages of choice.

Software Engineering at Protocol Labs

Software engineering and distributed systems thinking lies at the center of many projects at Protocol Labs.  With IPLD, IPFS, libp2p, Filecoin, 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 Software Engineer in the IPLD team at Protocol Labs you will…

  • Join us in maintaining and growing open source projects with hundreds of downstream consumers.
  • Build the decentralization revolution! Work on foundational algorithms for data structures, serialization, sharding, content-addressing — all the things needed to build robust and scalable decentralized protocols.
  • Develop and ship algorithms for handling data at all sizes.
  • Focus on supporting other developers — we aim to make development in the decentralized universe easier and more high-leverage; that means lots of listening and planning.
  • Think deeply about how software shapes thought processes. We're not just slinging code here; we're trying to build a vision, and communicate it through code and through doing.
  • Write design documents to “think out loud” about features we might build. Then write specs, for the features we do build!
  • Implement performance critical code (stuff that goes inside other people’s hot loops), such as codecs, and other data transformation tools.
  • Communicate! We serve not just Protocol Labs, but aim to build and to serve a wider community of developers who have aligned goals and should benefit from using our software.
  • Want examples? Look at what we do by checking out the repos in github.com/ipld/ , and the ipld.io website.

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

  • Solid experience in one of our core languages — Golang, JavaScript (and TypeScript), or Rust.
  • Deep familiarity with merkle data structures. (E.g., You should consider git to be a “duh”.)
  • Familiarity and experience with working in the open. (We do all our work on GitHub, and open is the default here!)
  • Excitement to ship under Apache2+MIT dual license by default! (Okay, you don't need to be a license nerd, but if you are, we hope you find this pretty dang good.)
  • Mature understanding of how design choice consequences shape and continue to affect a software library in the long run — especially when it's at the bottom of a deep dependency stack, and thus changes need planning. (We live this every day.)
  • Strong written communication skills. We’re async by default, so writing matters. Documentation for code, design docs for proposed work, specifications for finished systems, and just plain daily communication — we do a lot of writing.
  • A strong priority for testing. We develop complicated stuff, and we want it to work — and we want other people to implement things in their own languages of choice, too. That means being incredibly spec-driven and constantly investing in serialized, language-agnostic test fixtures.
  • Remote work experience. We're a full remote company and always have been. You'll immediately have direct colleagues from all around the world. (Timezones are fun!)
  • At least a little sense of whimsy! We're creating new things; we do spikes all the time. Creativeness is necessary, and also sometimes the ability to let things go just as quickly as they came if they don’t work out.

Bonus points...

  • If you have a polyglot background, it’s a huge plus. (We spend a lot of time thinking about how various systems should be implemented in other languages, so it helps!)
  • If you have prior experience with performance profiling, e.g. pprof and tracking down memory allocations, it’s handy. (If not, you can gain that skill while working with us.)
  • If you have experience in type theory, it’s a plus. (We think regularly about how to make programming better. Type systems often don't apply in a typical way for us, because we build systems to support decentralized and data-first systems development; but the background is still often transferrable.)
  • If you've worked on codecs before, you’ll definitely find transferable experiences here. (It's a good practical experience to have; even when not working on codecs, having an intuition for their natural performance envelopes is dang handy.)



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.


Apply for this Job

* Required
(File types: pdf, doc, docx, txt, rtf)
(File types: pdf, doc, docx, txt, rtf)
When autocomplete results are available use up and down arrows to review
+ Add Another Education

Voluntary Self-Identification

For government reporting purposes, we ask candidates to respond to the below self-identification survey. Completion of the form is entirely voluntary. Whatever your decision, it will not be considered in the hiring process or thereafter. Any information that you do provide will be recorded and maintained in a confidential file.

As set forth in Protocol Labs’s Equal Employment Opportunity policy, we do not discriminate on the basis of any protected group status under any applicable law.

Race & Ethnicity Definitions

If you believe you belong to any of the categories of protected veterans listed below, please indicate by making the appropriate selection. As a government contractor subject to the Vietnam Era Veterans Readjustment Assistance Act (VEVRAA), we request this information in order to measure the effectiveness of the outreach and positive recruitment efforts we undertake pursuant to VEVRAA. Classification of protected categories is as follows:

A "disabled veteran" is one of the following: a veteran of the U.S. military, ground, naval or air service who is entitled to compensation (or who but for the receipt of military retired pay would be entitled to compensation) under laws administered by the Secretary of Veterans Affairs; or a person who was discharged or released from active duty because of a service-connected disability.

A "recently separated veteran" means any veteran during the three-year period beginning on the date of such veteran's discharge or release from active duty in the U.S. military, ground, naval, or air service.

An "active duty wartime or campaign badge veteran" means a veteran who served on active duty in the U.S. military, ground, naval or air service during a war, or in a campaign or expedition for which a campaign badge has been authorized under the laws administered by the Department of Defense.

An "Armed forces service medal veteran" means a veteran who, while serving on active duty in the U.S. military, ground, naval or air service, participated in a United States military operation for which an Armed Forces service medal was awarded pursuant to Executive Order 12985.

Form CC-305

OMB Control Number 1250-0005

Expires 05/31/2023

Voluntary Self-Identification of Disability

Why are you being asked to complete this form?

We are a federal contractor or subcontractor required by law to provide equal employment opportunity to qualified people with disabilities. We are also required to measure our progress toward having at least 7% of our workforce be individuals with disabilities. To do this, we must ask applicants and employees if they have a disability or have ever had a disability. Because a person may become disabled at any time, we ask all of our employees to update their information at least every five years.

Identifying yourself as an individual with a disability is voluntary, and we hope that you will choose to do so. Your answer will be maintained confidentially and not be seen by selecting officials or anyone else involved in making personnel decisions. Completing the form will not negatively impact you in any way, regardless of whether you have self-identified in the past. For more information about this form or the equal employment obligations of federal contractors under Section 503 of the Rehabilitation Act, visit the U.S. Department of Labor’s Office of Federal Contract Compliance Programs (OFCCP) website at www.dol.gov/ofccp.

How do you know if you have a disability?

You are considered to have a disability if you have a physical or mental impairment or medical condition that substantially limits a major life activity, or if you have a history or record of such an impairment or medical condition.

Disabilities include, but are not limited to:

  • Autism
  • Autoimmune disorder, for example, lupus, fibromyalgia, rheumatoid arthritis, or HIV/AIDS
  • Blind or low vision
  • Cancer
  • Cardiovascular or heart disease
  • Celiac disease
  • Cerebral palsy
  • Deaf or hard of hearing
  • Depression or anxiety
  • Diabetes
  • Epilepsy
  • Gastrointestinal disorders, for example, Crohn's Disease, or irritable bowel syndrome
  • Intellectual disability
  • Missing limbs or partially missing limbs
  • Nervous system condition for example, migraine headaches, Parkinson’s disease, or Multiple sclerosis (MS)
  • Psychiatric condition, for example, bipolar disorder, schizophrenia, PTSD, or major depression

1Section 503 of the Rehabilitation Act of 1973, as amended. For more information about this form or the equal employment obligations of Federal contractors, visit the U.S. Department of Labor's Office of Federal Contract Compliance Programs (OFCCP) website at www.dol.gov/ofccp.

PUBLIC BURDEN STATEMENT: According to the Paperwork Reduction Act of 1995 no persons are required to respond to a collection of information unless such collection displays a valid OMB control number. This survey should take about 5 minutes to complete.