Staff Software Engineer - Query
About the Position The Query Engine team builds the primary surface for our customers to interact with their data and the Ditto system: the Ditto Query Language (DQL). We use DQL extensively throughout both the cloud database and on-device SDKs, and query engineers work closely with many other teams to integrate with their systems. As a specialist team this group is laser-focused on enabling customers to get the most out of Ditto while providing a familiar, SQL-like experience.
As an optimization specialist, you will:
Work with product managers and other engineers to help design the future of the technology.
Troubleshoot production issues, and design future remediations to deliver on Ditto's goal of a high performance, self-healing, and reliable mesh.
Design and implement data distribution collection subsystems and index statistics collection subsystems.
Design and implement a query cost based optimizer based on collected data distribution, and as a fall back, a rule based query optimizer, to be used when suitable distributions and statistics do not exist or are insufficient.
Assist with implementation of other query engine features as needed.
Author RFCs, design and document system architecture, and collaborate with other teams within Ditto.
Estimate the delivery timeline for projects and communicate with management and the broader team regarding project execution.
Set team culture by example, expanding Ditto’s culture of Trust, Communication, and Continual Improvement.
What you’ll need:
7+ years of experience in software engineering, 2 or more in a Senior or Staff role, with a focus on distributed systems and low-level programming languages like Rust and/or modern C/C++.
Willingness to learn the Rust programming language.
Prior experience with building SQL like query languages.
Prior experience with building cost based and ruled based query optimizers.
Prior experience with collecting index statistics and data distributions.
A willingness to travel (including internationally) once a quarter for team get-togethers and design sessions.
Strong communication skills, with an emphasis on written communication skills in particular. As a fully distributed team, async communication is the default and the development process often includes written architecture and design documents.
Nice to haves:
Bachelor’s degree or higher in Computer Science or Engineering.
Prior professional experience with the Rust programming language or other systems programming languages (C, C++, D, Ada, Zig, etc).
Experience with property-based testing or other state-space exploration techniques.
Familiarity with Conflict-Free Replicated Data Types (CRDTs).
Experience with monitoring tools such as Prometheus or Grafana.
About the job
Apply for this position
Staff Software Engineer - Query
About the Position The Query Engine team builds the primary surface for our customers to interact with their data and the Ditto system: the Ditto Query Language (DQL). We use DQL extensively throughout both the cloud database and on-device SDKs, and query engineers work closely with many other teams to integrate with their systems. As a specialist team this group is laser-focused on enabling customers to get the most out of Ditto while providing a familiar, SQL-like experience.
As an optimization specialist, you will:
Work with product managers and other engineers to help design the future of the technology.
Troubleshoot production issues, and design future remediations to deliver on Ditto's goal of a high performance, self-healing, and reliable mesh.
Design and implement data distribution collection subsystems and index statistics collection subsystems.
Design and implement a query cost based optimizer based on collected data distribution, and as a fall back, a rule based query optimizer, to be used when suitable distributions and statistics do not exist or are insufficient.
Assist with implementation of other query engine features as needed.
Author RFCs, design and document system architecture, and collaborate with other teams within Ditto.
Estimate the delivery timeline for projects and communicate with management and the broader team regarding project execution.
Set team culture by example, expanding Ditto’s culture of Trust, Communication, and Continual Improvement.
What you’ll need:
7+ years of experience in software engineering, 2 or more in a Senior or Staff role, with a focus on distributed systems and low-level programming languages like Rust and/or modern C/C++.
Willingness to learn the Rust programming language.
Prior experience with building SQL like query languages.
Prior experience with building cost based and ruled based query optimizers.
Prior experience with collecting index statistics and data distributions.
A willingness to travel (including internationally) once a quarter for team get-togethers and design sessions.
Strong communication skills, with an emphasis on written communication skills in particular. As a fully distributed team, async communication is the default and the development process often includes written architecture and design documents.
Nice to haves:
Bachelor’s degree or higher in Computer Science or Engineering.
Prior professional experience with the Rust programming language or other systems programming languages (C, C++, D, Ada, Zig, etc).
Experience with property-based testing or other state-space exploration techniques.
Familiarity with Conflict-Free Replicated Data Types (CRDTs).
Experience with monitoring tools such as Prometheus or Grafana.