Edge & Node is a creative software development company working to build a vibrant, decentralized future. Founded by the initial team behind The Graph, Edge & Node is dedicated to the advancement of web3, a decentralized and fair internet where public data is available to all—an internet that enables its users to increase agency over their creations and their lives.
Edge & Node’s initial product is The Graph, an indexing protocol for querying networks like Ethereum and IPFS, which ensures open data is always available and easy to access. The Graph is used by thousands of protocols and dapps including Uniswap, Livepeer, Aave, Decentraland, and more.
This role requires a deep understanding of Rust, familiarity with developing open source software, and ideally prior infrastructure and database experience.
The Graph-Node Engineering team is focused on building and maintaining core software components that make The Graph work. We are especially focused on graph-node, an Open Source Rust project that provides the core indexing capabilities of The Graph.
We are looking for an experienced and highly motivated software engineer who can help us develop and implement optimizations for The Graph’s Hosted Service and our graph-node codebase. All subgraphs published in The Graph ecosystem and every query against our Hosted Service indexes rely on graph-node software, so the care and maintenance of this codebase is critical.
What You’ll Be Doing
- Working closely with both operations and development engineers to understand where improvements to our codebase are needed
- Participating in design meetings with engineers from external core development teams and review their PRs as needed
- Designing, engineering, and implementing a number of high priority improvements for The Graph’s Hosted Service platform
- Analyzing requirements for already specified initiatives, develop novel solutions for new issues, and translate them into feature designs
- Writing reusable, testable and efficient code in Rust
- Writing both unit and integration tests, and helping to develop automation tooling for repeated tasks
What We Expect
- Demonstrated experience in and deep understanding of Rust required; additional experience with Assemblyscript/Typescript preferred
- Familiarity with open source software development process
- A solid understanding of software design patterns, and how to build components that are reusable, extensible, and modular
- Some understanding or awareness of blockchain or distributed technology preferred
- Participation in rotating on-call duty during working hours required
- Experience with ops and infrastructure (e.g., testing, tooling) and Postgres databases strongly preferred
- Proven ability to collaborate effectively asynchronously with a multinational team spanning numerous time zones