(Senior) Scala Developer / Database Researcher

Contiamo, Berlin

share this

About the role

The product: A sophisticated query engine

We are building a sophisticated OLAP/SQL query engine for advanced analytics, accessing data from many different data sources (RDBMS's, Hive, Impala, Druid, Elasticsearch and others). The query engine is written in Scala and builds on Apache Calcite. We are planning to open-source it during the course of this year with the goal of making it an Apache project eventually.

The stack

Scala, Java, Apache Calcite, Apache Spark

The challenge

The project involves working with many interesting concepts related to data processing and querying such as query parsing and validation, relational algebra, creation of logical and physical plans and adapters to different database and execution engines. Your work will also involve participation in the communities of and development of contributions to Calcite and other open-source libraries we use.

Your profile

Being fluent in Java and Scala is a must .

We highly appreciate experience in:

Open source projects, especially those by the Apache foundation

SQL & OLAP-type query planning & optimisation

Relational algebra as a foundation for relational databases

Database adapters (both sql & no-sql)

About us

Who we are

Contiamo is a Berlin-based, fast-growing tech company.

We are tech-driven and keep a close watch on recent scientific developments and emerging technologies. We love open-source. We are a very international team with interesting people from all over the world (95% of us have relocated to Berlin).

How we work

We strongly believe in the importance of uninterrupted time to get stuff done and quality over quantity when it comes to working hours. We prefer to keep our schedule meeting-light and work in a library-like atmosphere during the core hours.

We believe the ability to give and get constructive feedback and express divergent ideas is crucial to make innovation come to life. We live a very open discussion culture and prefer the evaluation of ideas based on merit over top-down decision making.

We strongly believe in ownership of one's features, from spec to implementation to operation. We also understand that ownership comes with a sense of responsibility towards others that depend on the results of our work.

We believe that everybody should be able to find meaning in their work. We match assignments based on both ability and individual interests and discuss your progress and individual needs every 3 months.

We don't see people as “resources” and genuinely care about each other. We also understand that there's more than fancy perks and cool events to people's satisfaction and engagement. We continuously work towards an environment providing a lot of autonomy, transparency and development opportunities and rely on everybody's feedback to hold us accountable for maintaining our high standards.

About the interview process

How we get to know each other

We like to start out with a brief 20-30min session for a mutual introduction. We tell you about our company, product and culture and are happy to answer any questions you might have. From your side, we're mostly interested in understanding what kind of challenges you're looking for, what technologies you'd like to work with and what role you'd like to be in.

If both sides agree that this could be a good fit, we move on to a more technical session. We ask you to walk us through one of your past projects as if we were new colleagues joining you on the job. The ability to communicate effectively and concisely about complex systems and trade-offs between different approaches is key.

In a second technical session, we discuss some of the technologies and concepts you have used. We also give you a walk-through of our product and solutions, discuss our architecture and components. Finally we try to scope your initial role and focus — should you be joining us.

In the last session, we discuss the remaining details, logistics and plan your relocation.