Position: Principal software engineer (SQL API)
Company: Cube
Experience required: 5y
English level: upper

At Cube we are building a technology stack for modern analytics.
We’re looking forward to further improving SQL API support.
That’s why we’re looking for a Software Engineer to join the Cube team to work on SQL API.

At Cube 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.

Cube is used to build analytical APIs over trillion data point datasets in SQL databases (e.g., Postgres, ClickHouse) and data warehouses (e.g., Google BigQuery, AWS Athena, Snowflake). Such APIs serve requests with sub-second latency and high concurrency.

Cube provides SQL API which gives an ability to access Cube from BI tools like Apache Superset, Metabase, Tableau, etc. To achieve that we have implemented a server with the same interface and protocol as the MySQL server has. It’s written in Rust language but we embedded it into the Cube.js process (Node.js) via Neon. Under the hood, It uses different strategies for execution: simple transpiling from SQL to OLAP or real query engine (it uses Apache Data Fusion).

We’re looking forward to further improving SQL API support by providing joins, data blending and post processing capabilities as well as support for more BI platforms and data consuming tools.

That’s why we’re looking for a Software Engineer to join the Cube team to work on SQL API. You will contribute to Cube and maintain its codebase on GitHub, participate in community support in Slack.

Requirements:

- Expert in data structures and algorithms
- Base understanding of how databases work
- Strong coding skills
- Experience 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.

Bonus points:

- Experience in data engineering, building analytics applications, or OLAP
- Experience with implementing network protocols, analyzing packets
- Embedding native code into Node.js or any other language
- Strong knowledge of JavaScript/TypeScript
- Experience with contributing to or the maintenance of an open-source project