What You’ll Be Doing
- Familiarizing yourself with a large and complex Rust codebase
- Using subgraphs to understand both the specification implemented by us as well as the developer experience of the builders who are our users.
- Develop an understanding of existing code and design choices, and then analyze how they can be experimented with and improved upon
- Setting up performance tests, doing quantitative assessments of any proposals and changes you make, and monitoring how the changes ultimately behave when rolled out
- Experimentally validating, and if necessary, falsifying your own ideas.
- Reviewing pull requests of your colleagues and taking responsibility for the reviewed code as if it were your own
- Documenting important aspects of the software while understanding that Graph Node has a large community of independent operators that need to understand how to run, configure, and monitor Graph Node
What We Expect
- You’ve contributed more than 10,000 lines of code to a production software product
- Thinking about data in SQL terms comes naturally for you
- You have an understanding of some of the theory behind data systems, such as relational algebra, and an understanding of fundamental DB data structures and data formats, such as BTrees, LSM Trees, and compression formats
- You have an interest in higher-level query languages such GraphQL
- You have an interest in federated data and federated query frameworks
- You understand how small design choices can have large effects in big data systems
- You are comfortable working with an existing system and codebase and making fundamental improvements to it while being mindful of backwards compatibility
- You understand tracing and debugging requirements of complex software
- You have an understanding of the academia and theory that backs the software libraries you use but also understand the pragmatic necessity of shipping usable software quickly
Login or Sign up first to apply