• To help technology companies build innovative data management products.
• To create query optimizers, query engines, storage engines, and distributed protocols.
• To scale your expertise and maintain the greatest startups, databases and platforms
worldwide.
Before joining Querify Labs, we worked on Apache Ignite, Hazelcast, Yandex Clickhouse, and Yandex Database (YDB, YQL) projects. We are frequent speakers at professional conferences (Highload++, Percona Live, ApacheCon), maintain a technical blog about databases, and actively contribute to open-source projects, such as Apache Calcite.
• 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.
• Remote work with flexible working hours.• Additional paid day-offs.
You will work closely with a technical project lead and other teammates on the design and implementation of various database components. You will work on challenging technical problems 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 engines: recovery, concurrent access, indexes, data spilling.
• Distributed algorithms: transaction protocols, data replication, fault-tolerance.
We write new databases in Java and C++. Our tech. 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.
• Write production code in Java or C++ using Apache Calcite, Apache Arrow, RocksDB, LLVM, and other tools.
• Prepare design documents and prototypes.
• Analyze open-source products and academic papers in the area of data management.
• Share your knowledge with the community through blog posts and conference talks.
• Solid knowledge of foundational algorithms and data structures and high motivation to learn theory and practice in the database and distributed systems domains.
• Strong knowledge of Java or C++. Readiness to learn new languages and tooling.
• 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.
• Ability to communicate in English (both written and spoken).
• Experience with databases or distributed systems is a plus.
• Experience with parallel algorithms and concurrency is a plus.
• Experience with big data products is a plus (Apache Spark, Apache Flink, etc.).