This opportunity is based in Lausanne

Optimizing Data Access with Machine Learning ( Internship / Master Thesis)



For business applications, fast access to data is crucial. At the same time, they typically contain complicated business rules and logic, built on top of frameworks such as Hibernate to access data. To satisfy performance requirements, developers will often spend time adjusting or rewriting data queries and various parameters, or adapting the logic itself, until it is fast enough. This causes many problems:

  • The code becomes more complex, and harder to maintain
  • It is short-lived: optimal code is a delicate balance, and small changes by future maintainers may cancel the performance gain
  • It mixes technical details and business logic, so the meaning is obscured
  • It wastes the developer’s time
  • Furthermore, optimisation happens at the wrong time and place:
  • developers tend to optimise performance where it’s easiest to make changes: in their development environment, which won’t match production setup.
  • optimisation obviously happens before deployment to production. But data and usage patterns change over time, and so should data access strategies if we want to keep them performant.

This optimisation task therefore must be automated; however, the tricky point is that we typically know after loading and processing is complete what data was  required, and what would have been the best way to obtain it.

In this role


During your internship, you will develop a transparent layer on top of a database access framework such as Hibernate, that must learn how to correlate environment parameters (such as web request parameters, the current time and date, or the user’s role) with data access patterns, and then modify application requests to match expected requirements. It must be able to monitor performance in real-time and adjust query parameters accordingly, to minimise execution times.

The purpose is then to “cleanse” manually-written optimisations out of a typical business application and let your optimisation layer re-discover those optimisations (or better ones!) independently.

We suggest the code be written in Java or in another JVM language such as Kotlin.

What we offer

INTERNSHIP in Lausanne. Join our team as intern and you will find a young, dynamic and culturally diverse working environment.

About your profile

  • Software development
  • Interest in machine learning

If you are INTERESTED in applying for this position, please send us your complete application (CV, cover letter, letter of reference, diplomas and certificates).

By continuing to browse this site, you accept the use of cookies or similar technologies whose purpose is to produce statistics on visits to our site (tests and measurement of visitor numbers, visit frequency, page views and performance) and to offer you content and promotions which will be of interest to you.

Our cookie policy has been updated. Feel free to manage your preferences.


Manage your cookie preferences

Update your cookie preferences

Find out about the type of cookies stored on your device, accept or block them for the entire site, all services or on a service-by-service basis.

OK, accept all

Visitor flow

These cookies provide us with insight into traffic sources and allow us to better understand our visitors anonymously.

(Google Analytics and CrazyEgg)


Sharing tool

Social media cookies allow content sharing on your preferred networks.



Visitor understanding

These cookies are used to track visitors across websites.

The intention is to enable us to offer more relevant, targeted content to existing contacts (ClickDimensions) and display ads that are relevant and engaging for users (Facebook Pixels).


For more information about these cookies and our cookie policy, click here