About the Role
In this role, you will collaborate closely with a technical project lead and other team members to design and implement various database components, such as query optimizers, query engines, and storage layers. You will tackle challenging technical problems that often lack straightforward solutions, including, but not limited to:
- Query engines: relational operators, vectorized and compiled execution, resource scheduling.
- Cost-based query optimizers: relational optimization rules, statistics gathering, join graph enumeration.
- Storage layers: recovery, concurrent access, indexes, data spilling.
- Distributed algorithms: transaction protocol, data replication fault-tolerance.
Our Stack
We develop new databases in Java and C++. Our key technologies:
- Apache Arrow and Velox for vectorized and columnar data processing.
- Apache Calcite for query optimization.
- LLVM for compiled query engines.
You Will
- Develop core database components.
- Analyze open-source products and academic papers in the area of data management.
- Write design documents and prove the validity of your suggestions through cross-reviews and prototypes.
- Share your knowledge with the community through blog posts and conference talks.
You Have
- Solid knowledge of foundational algorithms and data structures, and high motivation to learn theory and practice in the database and distributed systems domains.
- Strong analytical skills. Ability to grasp complex technical concepts and tie the impact of trade-offs to product goals.
- Strong knowledge of Java. Readiness to learn new languages and tooling.
- The thoughtful and empathetic mindset. A desire to partner with your teammates on challenging problems.
- Ability to communicate in English, both written and spoken.
- Research publications are a big plus.
- Experience with databases or distributed systems is a big plus.
- Experience with parallel algorithms and concurrency is a plus.
- Experience with big data stacks is a plus (Apache Spark, Apache Flink, etc).
We offer
- Working in a team of experts in the areas of data management and distributed systems.
- Extraordinary complex and interesting tasks.
- A competitive salary, above the market average.
- Fully remote work with flexible working hours.
- Paid sick leave and day-offs.
- Opportunity to speak at international conferences.