Senior Software Engineer, Database Engineering (Cube.js Core)
At Cube.js we are building a technology stack for modern analytics. If you are fascinated by the software that powers large technology companies but want the challenges and freedom that come with working in a small startup, then the job at Cube.js is for you.
We are a small and dedicated team in San Francisco, funded by top-tier SV investors, working on making advanced analytics infrastructure developed at large tech companies accessible to all developers around the world.
We are focused on the bottom-up adoption, and most of our software is open-source. At Cube.js, you will be part of a vibrant community. Cube.js users often engage with the company on GitHub and Slack.
Thousands of developers are using Cube.js to build analytics applications and we want to help them be successful. That’s why we're looking for a database engineer to join our Cube.js Core team to build state-of-the-art analytics data access technology.
As an engineer of the Cube.js Core team, your main goal will be to build and maintain various parts of open-source Cube.js Core (https://github.com/cube-js/cube.js), community support in our Slack, as well as development of Cube Cloud product.
Some of the problems you'll be working on:
- SQL generation and rewriting. Cube.js is a simple yet powerful way to organize SQL queries. The Cube.js way is to generate the best possible SQL query for a given database while abstracting all complex stuff from users and giving them full power of SQL at the same time. To solve this problem, Cube.js parses SQL queries written by users to understand the structure and rewrites them to apply performance optimizations.
- Rollup DB. Cube.js is used to serve analytics for trillions of data points with sub-second response times. To keep up-to-date with growing big data demands and serving speeds we’re developing our own database optimized for serving huge aggregated tables with latencies of several milliseconds.
- Cube.js APM. One of the main tech problems for Cube Cloud is to provide APM analytics of Cube.js instances using Cube.js itself. Being purely a dog food problem, large-scale real-time analytics has a lot of challenges, most of which will be solved for the first time ever using the SQL approach.
- Expert in database algorithms and data structures: columnar vs row storage, SQL parsing, query planning, indexes, partitioning, join algorithms, filter pushdown optimizations, HLL.
- Expert in C++, Rust, or any other low-level language.
- Good communication skills.
- Fluent English.
- Previous startup experience or interest in working in a small fast-moving company.
- Expert in at least one of the high-level VM languages such as Node.js, Ruby, Python, Java, Scala, C#, or similar.
- Experience with contributing to or the maintenance of an open-source project.
- Experience in data engineering, building analytics applications, or OLAP.
- Experience with Docker and k8s, AWS, GCP.
This is a remote position. Any location is ok, as long as we can expect that person to be online till 1 pm PT. We can pay for your desk at the co-working space you to choose to work from. Down the road, we offer an optional relocation to our HQ in San-Francisco, California with visa (H1-B or O-1) sponsorship. We offer stock options in our US company.