Lead Software Architect, Database Engine
Местоположение и тип занятости
At Querify Labs, we help technology companies create new data management products that reshape how businesses operate on data worldwide. We are looking for a motivated team member who will lead the design and implementation of the core components of database engines, such as query optimizers, query engines, storage engines, and distributed protocols.
This is a lead-level role that requires prior experience in database engines or distributed systems design. Please refer to our senior-level position if you would like to build databases but do not have the relevant experience yet.
About the Company
At Querify Labs, we help technology companies build innovative data management products. We create query optimizers, query engines, storage engines, and distributed protocols.
Our customers are startups from the USA, Europe, and Israel, building new databases and platforms to address emerging and unique niches in the data management market.
Before joining Querify Labs, we worked on Apache Ignite, Hazelcast, Yandex Clickhouse, and Yandex Database (YDB, YQL) projects. Now we scale our expertise worldwide.
We are frequent speakers at Russian and international conferences (Highload++, Percona Live, ApacheCon), maintain a technical blog about databases, and actively contribute to open-source projects, such as Apache Calcite.
Our mission is to build a strong community of database experts in Russia who will drive innovation in the data management domain.
About the Role
The Database Engine Team at Querify Labs designs and implements the core database components. The team researches the existing and novel data processing approaches, prepares the design documents, creates proofs-of-concept, and writes the production code.
We write new databases in C++ and Java. Our stack includes:
- Apache Calcite for query optimization.
- Apache Arrow for vectorized and columnar data processing.
- RocksDB for storage-related tasks.
- LLVM for compiled query engines.
In this role, you will drive the technical design of one or more database components of a customer's product. You will work closely with teammates and customer engineers to research the subject area, gather requirements, outline the solution space, propose the design, and write high-quality production code.
You will work on challenging technical problems that often do not have 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.
- Lead the design and implementation of one or more 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.
- Write production code in C++ or Java using Apache Calcite, Apache Arrow, RocksDB, LLVM, and other tools.
- Share your knowledge with the community through blog posts and conference talks.
The role requires prior experience with at least one of the following areas:
- Database internals: storage layer, query processing, query optimization, transactions, performance optimization, etc.
- Distributed processing: data exchange, streaming, fault-tolerance, replication, distributed transactions, scheduling, etc.
- Low-level system design: compilers (front-end, optimizations, IR), SIMD and vectorized execution, acceleration with GPU and FGPA, etc.
The successful candidate will demonstrate:
- Strong analytical skills. Ability to grasp complex technical concepts and tie the impact of trade-offs to product goals.
- The thoughtful and empathetic mindset. A desire to partner with your teammates on challenging problems.
- Strong knowledge of C++ or Java. Readiness to learn new languages and tooling.
- Ability to communicate in English (both written and spoken).
- Working in a team of experts in the areas of data management and distributed systems.
- Extraordinary complex and interesting tasks.
- High salary, definitively above the market average.
- Fully remote work with flexible working hours.
- Paid sick leave and day-offs.
- Ability to speak at international conferences.