Job Description
Summary
As a P2P Engineer you will play a key role in the development and advancement of decentralized networking technologies by implementing libp2p protocols, and contributing to the evolution of the nim-libp2p implementation.
The role involves implementing libp2p protocols according to existing specifications, as well as collaborating with researchers to support the practical application of new advancements in libp2p, transforming research outputs into usable implementations.
Key responsibilities
- Implement libp2p protocols according to existing specifications
- Further architecture and development of the nim-libp2p implementation
- Support researchers who conduct research exploring advancements in libp2p
- Create practical implementations of research outputs and contribute to libp2p specifications, ensuring they are accessible and usable
You ideally will have
- A passion for decentralization, P2P and privacy-preserving technology
- Excellent communication skills
- Willingness to adapt to changing project requirements and priorities
- Strong engineering background
- In-depth knowledge of peer-to-peer networking protocols
- Experience with low level/strongly typed languages (C/C++/Go/Rust or Java/C#)
- Experience building networking-heavy applications and p2p networking specifically
- Experience implementing core networking protocols such as Websockets and/or Quic
- Familiar with p2p building blocks such as gossiping, routing and discovery (DHTs), and Nat traversal
- Knowledge of security protocols and practices for securing P2P networks and protecting data
Skills
- C++
- Development
- Java
- Networking
- Rust
- Software Engineering