Principal Software Engineer
Cube Dev, Inc., San Francisco, CA, United States
About Cube Dev
Cube is The Semantic Layer platform for data engineers and application developers to make data accessible and consistent across every application.
It helps provide access to data, organize it, and deliver it to every tool so data engineers and developers can build powerful, fast, and consistent data applications.
Position
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 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 PostgreSQL server has. Under the hood, It uses an advanced rewrite term system powered by EGraphs to plan queries and Apache Data Fusion to execute those.
We’re looking forward to further improving SQL API support by providing sophisticated join queries, predicate push down, cost based optimization and post processing capabilities as well as support for more BI platforms and data consuming tools.
That’s why we’re looking for a Principal 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.
Your qualification
- 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.
Will be a plus
- Experience with Abstract Syntax Trees and parsing
- Experience with database query planning process
- 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