This is a remote position.
Our client is at the forefront of web3 innovation. Ourmission is to establish The Graph as the unbreakable foundation ofopen data.
Our pioneering sub graphs set the industry standard andsolidify The Graph as the premier solution for organizing andaccessing blockchain data.
At Edge & Node wechampion a decentralized future based on shared values. Dedicatedto decentralizing power and resisting censorship we aim for arobust permission less information era free from central controlthus eliminating the traditional vulnerabilities associated withmisplaced trust.
The Graph Network Engineering team isfocused on building and maintaining core software components thatmake The Graph work.
We are especially focused on graphnode an OpenSource Rust project that provides the core indexing capabilities ofThe Graph.
We are looking for a Data Engineer withdeep understanding of relational databases and modern data stacksand a desire to code in Rust.
A Rust Data Engineer will not justuse Rust data tools but build our general purpose blockchain datasystems and also contribute to our dependencies.
WhatYou ll Be Doing
Working within the Graph Node team toimprove Graph Node s capabilities as a data processing and queryingengine
Familiarizing yourself with the large andcomplex Rust codebase that is Graph Node
Using sub graphsto understand both the specification implemented by Graph Node aswell as the developer experience of the builders who are our users.
Develop an understanding of existing code and designchoices and then analyze how they can be experimented with andimproved upon
Setting up performance tests doingquantitative assessments of any proposals and changes you make andmonitoring how the changes ultimately behave when rolled out
Experimentally validating and if necessary falsifyingyour own ideas.
Reviewing pull requests of your colleaguesand taking responsibility for the reviewed code as if it were yourown
Documenting important aspects of the software whileunderstanding that Graph Node has a large community of independentoperators that need to understand how to run configure and monitorGraph Node
Hiring Criteria
Based inNorth or South America
Extensive experience with Rust(min two years professionally)
Prior experience building data tools in Rust
Web3 experience (or very interested in thespace)
Requirements
You vecontributed more than 10000 lines of code to a production softwareproduct
Thinking about data in SQL terms comesnaturally for you
You have an understanding of some of thetheory behind data systems such as relational algebra and anunderstanding of fundamental DB data structures and data formatssuch as BTrees LSM Trees and compression formats
Youhave an interest in higherlevel query languages such GraphQL
You have an interest in federated data and federatedquery frameworks
You understand how small design choicescan have large effects in big data systems
You arecomfortable working with an existing system and codebase and makingfundamental improvements to it while being mindful of backwardscompatibility
You understand tracing and debuggingrequirements of complex software
You have anunderstanding of the academia and theory that backs the softwarelibraries you use but also understand the pragmatic necessity ofshipping usable software quickly
Benefits
HiringCriteria
Based in North or South America
Extensive experience with Rust (min two yearsprofessionally)
Prior experience building data tools inRust
Web3 experience (or very interested in the space)
You ve contributed more than 10,000 lines of code toa production software product Thinking about data in SQL termscomes naturally to you You have an understanding of some of thetheory behind data systems, such as relational algebra, and anunderstanding of fundamental DB data structures and data formats,such as BTrees, LSM Trees, and compression formats You have aninterest in higher-level query languages such GraphQL You have aninterest in federated data and federated query frameworks Youunderstand how small design choices can have large effects on bigdata systems You are comfortable working with an existing systemand codebase and making fundamental improvements to it while beingmindful of backward compatibility You understand tracing anddebugging requirements of complex software You have anunderstanding of the academia and theory that backs the softwarelibraries you use but also understand the pragmatic necessity ofshipping usable software quickly