Protocol Engineer, Gossamer/Polkadot (Go)
Toronto, Berlin, Zagreb, Remote (American/European timezones preferred)
ChainSafe is a blockchain research and development firm specializing in
infrastructure and tooling for the decentralized web. Alongside its
contributions to significant ecosystems such as Ethereum, Polkadot, Filecoin,
and more, ChainSafe creates solutions for developers and teams across the
web3 space utilizing our expertise in gaming, bridging, NFTs, and
decentralized storage. As part of the mission to build innovative products
for users and better tooling for developers, ChainSafe embodies an open-source
and community-oriented ethos.
To learn more about ChainSafe, look at our GitHub
and website.
Here’s what you need to know before reading on
- Our progressive tech stack includes Go, Rust, and TypeScript
- We spearhead ecosystem projects like
Lodestar,
Forest, and
Gossamer
- We are global, remote-friendly, and open to contractors
At ChainSafe, you’ll be part of a team that believes in the community’s vital
importance and contributes to advancing humanity with open-source and
decentralized technology.
About Gossamer/Polkadot
As a protocol engineer for Gossamer, you will join a small team and develop and
maintain the Go implementation of the Polkadot blockchain protocol, often
referred to as a host or a client. You will be tasked with
implementing new features, occasionally from a technical specification or a
reference implementation; maintaining existing features; ensuring the
implementation stays compatible with the current and historical specifications
of the protocol, and updating the code when upgrades are made to the network.
Who we need
As a protocol engineer, you have the desire to implement and deploy novel
protocols that have never been implemented before in that language, you have a
passion for open-source software and understanding that you will be maintaining
code that will be widely used on a decentralized network, you are able to
clearly communicate and document your thoughts, and you have the desire to
contribute to the space. The position is full-time and remote-friendly.
Responsibilities
- Read and understand a protocol specification and be able to break it into
issues and turn it into Go code
- Design and implement new features for the host
- Refactor and improve existing features in the host
- Ensure the client stays compatible with the other host implementations
- Collaborate with and assist team members with their issues
- Collaborate with other protocol implementation teams to share knowledge on the
protocol, whether it be high-level protocol details or technical details that
are common to every client
- Communicate effectively with the team and document your code and the client
as a whole
Required skills and experience
- Proficiency in Go
- 3+ years of Go programming language, paradigms, constructs, and idioms
- 5+ years of professional software back-end development experience
- Knowledge of system design in Go
- Effective usage of Go debugging tools
- Be able to proactively dive into the novel territory and share knowledge on
what you’ve learned
- Basic understanding of cryptography and common applications
- Ability to write clean and effective documentation and comments
Nice to have
- Experience with Rust, as the Polkadot reference implementation (Substrate) is
written in Rust
- Experience with blockchain protocols, whether it be the usage of a blockchain
API, knowledge of how a blockchain operates, or any other experience
- Experience with distributed systems, peer-to-peer systems, network
programming, or cryptography
- Experience writing software from a technical specification or a reference
implementation
- Experience maintaining a large codebase with many components and keeping it
well-designed, future-proofed, and modular
- Experience with documenting a large codebase, both for internal and
user-facing components
- Familiarity with open-source software principles
- Familiar with Git and GitHub/GitLab
- Can construct and maintain CI/CD pipelines
- Experience with RPC, WebSockets, or GraphQL
Tell us who you are
If you feel like you’re the perfect fit for the role, please apply even if you
don’t match all the requirements.
Hiring Steps
- Prior to an interview, a technical task or a sample of open-source code
will be reviewed by the team along a provided CV.
- Next, candidates will be invited to a values interview with one of our
technical project managers.
- Finally, candidates will be invited to an interview with the team lead.
Why Join ChainSafe Systems Protocol Engineering
Founded by developers for developers, ChainSafe is a company with an
international team. We continue to provide opportunities for personal and
professional growth, value autonomy and responsibility, have a results-driven
environment, and offer flexible work hours.
We care deeply about our values and look for these attributes in every new team
member. In addition, we recognize the benefits of cultivating a diverse team and
aspire to embed respect for all people into our culture. We encourage women, the
LGBTQIA+ community, people of colour, and members of any other group
underrepresented in the blockchain space - or tech in general - to apply.
How to Apply
To apply:
- send an email to afri@chainsafe.io containing the following
- an indicator what role you apply for
- a motivational letter
- an up-to-date résumé (CV)
- wait two weeks before you follow up
Note:
- If you do not complete the steps above, we will disregard your application.
- We do not work with recruiters or talent agencies.