ChainSafe is a leading blockchain research and development firm specializing in infrastructure solutions for the decentralized web. Alongside our public goods work within significant ecosystems such as Ethereum, Polkadot, Filecoin, and more, ChainSafe creates solutions for developers across the web3 space utilizing our expertise in gaming, bridging 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.
At ChainSafe, you’ll be part of a global remote team that believes in the community's vital importance and contributes to advancing humanity with open-source and decentralized technology. To learn more about ChainSafe, visit our website or check out our work on GitHub.
Here’s what you need to know before reading on:
- Our tech stack includes Go, Rust, and TypeScript
- We spearhead ecosystem projects like Lodestar, Web3.js, Forest, and Gossamer
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 Polkadot host
- Refactor and improve existing features in the Polkadot host
- Ensure the client stays compatible with the other host implementations
- Maintain up-to-date technical documentation
- 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
- 5+ years of Go programming language, paradigms, constructs, and idioms
- 8+ years of professional software back-end development experience
- Knowledge of system design in Go
- Effective usage of Go debugging tools
- Familiarity with Rust and high conviction to learn
- Understanding of distributed systems, consensus algorithms, networking models, and broadcast algorithms
- 3+ years of experience working with blockchain or highly distributed systems
- 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
- Experience working with open-source software projects
- Familiarity with open-source software principles
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
- Experience with RPC, WebSockets, or GraphQL
Hiring Steps
- Selected candidates will be invited to a 30–to–45–minute screening call with one of our tech recruiters
- Next, candidates will be invited to a 60-minute values interview with one of our team members
- After passing the values interview, candidates are requested to complete the first technical assignment. Based on the quality of the submission, we can decide whether to proceed with the interview process.
- NOTE: If candidates have verifiable OpenSource work experience this step might be skipped
- Given the review of the first technical assignment, a technical 60-minute interview with our engineers will be scheduled.
- During the technical interview, candidates will be asked a series of follow-up questions based on the initial technical assignment. These questions aim to verify the candidates' authorship of their submissions and assess their ability to code and problem-solve in a live environment.
- If necessary, candidates will be requested to complete a second technical task within a timeframe of 10-20 hours. Compensation will be provided for the time and expertise demonstrated in the completion of the work test challenge..
- After the completion of the test assignment call with the Engineering team to discuss and review the results, for 60 minutes.
We strongly encourage you to apply even if you don’t fit all the requirements. You don’t have to match all the listed requirements exactly to be considered for this role.
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.