ChainSafe Systems, a blockchain research and development company, is seeking dedicated Protocol Engineers to join our Forest (Filecoin implementation in Rust) team.
As a protocol engineer for Forest, you will join a small team and develop and maintain the Rust implementation of the Filecoin blockchain protocol, often referred to as a node or a blockchain client. You will be tasked with implementing new features, occasionally from a technical specification or a reference implementation; maintaining existing features; and ensuring the implementation stays compatible with the current specification of the protocol, and updating the code when upgrades are made to the network. The position is full-time and remote-friendly.
As a protocol engineer, you have a 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 a desire to contribute to the space.
- Read and understand a protocol specification and be able to break it into issues and turn it into Rust code
- Design and implement new features for the client
- Refactor and improve existing features in the client
- Ensure the client says compatible with the other client implementations
- Collaborate with and assist team members on 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 Rust
- Knowledge of system design in Rust
- Be able to proactively dive into novel territory and share knowledge on what you’ve learned
Nice to have
- Experience with Go, as the Filecoin reference implementation (Lotus) is written in Go
- Experience with blockchain protocols, whether it be 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, and 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
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.
Candidates for this position can expect the hiring process at ChainSafe to follow the order below. Please keep in mind that candidates can be declined from the position at any stage of the process.
- Qualified candidates will be invited to schedule a 30-45 minute screening call with one of our tech recruiters
- Next, candidates will be invited to schedule a 60-minute Cultural Interview with one of our Project Managers
- Then, Candidates will be asked to complete a technical task that takes under 4 hours, but we provide up to 5 business days to complete
- Last, candidates will be invited to schedule a 60-minute interview with the Team Lead
We welcome your fresh perspectives and ideas
At ChainSafe, diversity and inclusion are more than a statement; equality and accessibility are guiding principles embedded in who we are - and why we do what we do. We recognize the benefits of a diverse team and aspire to embed respect for all people into our culture, values, and day-to-day practices. We encourage women, LGBTQIA+ people, people of colour, and members of any other group underrepresented in the blockchain space (or tech in general) to apply.
ChainSafe is a remote-first company with an international team. We offer opportunities for personal and professional learning and growth, value autonomy and responsibility, and have a results-driven environment, flexible work hours and time-off policy, as well as competitive salary.
Salary will be determined through the interview process after a review of experience, knowledge, skills, abilities, equity, and location, as well as alignment with market data.
How to Apply
To apply for this position, please fill out the linked application form and please attach your CV/resume as well as a link to your Github/Gitlab profile or some other software project you have contributed to.