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 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 (https://github.com/cube-js/cube.js) and Slack (http://slack.cube.dev/).
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 full-stack 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 features 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 data structures and algorithms.
- Solid understanding of how databases work.
- C++, Rust, or any other low-level language experience.
- Expert in at least one of the high-level VM languages such as Node.js, Ruby, Python, Java, Scala, C#, or similar.
- Good communication skills.
- Fluent English.
- Previous startup experience or interest in working in a small fast-moving company.
- 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.