Looking for Master students for Proteus

The Data Intensive Applications and Systems Laboratory (DIAS) is looking to hire highly motivated student assistants to help with the development of our high-performance database system Proteus.

About Proteus

Proteus is a state-of-the-art database system for analytical and transaction processing on heterogeneous hardware. DIAS is in the midst of open-sourcing Proteus on GitHub. The core Proteus database engine is written in C++ and generates code to run queries at runtime using the LLVM framework. Proteus compiles queries to run both on CPUs and GPUs. The optimiser and SQL interface is based on Apache Calcite. Research based on Proteus has been published in several top tier academic conferences, including VLDB, SIGMOD and CIDR.

Responsibilities

In this role, you will work with senior Proteus project members to improve the functionality and reliability of Proteus.

Specific projects will be tailored to the skillsets of the applicants. Examples include but are not limited to:

     – Implementing data definition language (DDL) commands to configure Proteus via a JDBC connection. This will require a working knowledge of both Scala and C++.

                       – Add transaction support to the SQL interface. This will require a working knowledge of both Scala and C++.

                       – Expand support for the python interface. This will require knowledge of both C++ and Python

     – Improving test coverage of the core engine. This includes writing unit, integration and performance tests and will require knowledge of at least C++ and, ideally SQL.

     – Related to the above: Improving our continuous integration (CI) infrastructure. This includes exporting performance and functionality test data to our dashboards.

Qualified applications shall have:

– Good written and verbal communication in English

– Experience working in a collaborative environment

– Experience programming in Scala and/or modern C++ (ideally both)

– Experience with git workflows or a willingness to learn

– The capability to learn on the job

Bonus points if you have experience with any of the following:

– Knowledge of database internals or have taken an advanced database course.

– SQL

– Apache Calcite, e.g through CS-422 or work on other open source projects

– The LLVM ecosystem, and particularly code generation

– CI tooling such as GitLab/GitHub pipelines and docker.

– Python

Benefits

– 25 CHF/hour, as per EPFL regulations on the hiring of master’s students

– Flexible working arrangements. You can work in the lab or remotely, and you will set your own working hours.

– Shared office space with a monitor, a small kitchen space and unlimited coffee 

– Lab activities with DIAS

– Demonstrate your technical capabilities to future employers by contributing to a (soon-to-be) open-source project

– Interaction with PhDs, postdocs, and professors who can write great letters of recommendation if the work is high-quality

– Potential to continue with DIAS for research projects or master thesis

– Excellent opportunity to prepare yourself for working in the tech industry. Previous master’s students working with DIAS have gone on to work with companies including Google, Oracle, Swisscom, and Expedia.

How to apply

Email a cv and optionally a cover letter to [email protected] with the subject line “[application] Proteus student assistant”.  We will review your qualifications and inform you whether you are a good fit for our team. If you are a good fit, you will be invited to a brief coding interview.

Logistics

Your employment is subject to the EPFL regulations detailed in Directive on Terms of Employment of  Student Assistants, Construction Assistants and Temporary Assistants at EPFL

In particular:

– Applicants must be currently enrolled in a master’s degree at EPFL.

– The role is for a period of 6 months with the option to extend.

– You must maintain good academic standing to continue the position.

– At maximum, you may work 15 hours/week on average over the course of the year. We expect part-time work during the semester, (optional) full-time work during semester breaks and no work during EPFL exam periods.