This opportunity is based in Bern and Zurich

Master Thesis: Implement a Language Server for Code Completion

Apply

 

Description  

Operating and maintaining data pipelines of advanced data lakes is a challenge. Our open-source product SmartDataLakeBuilder (smartdatalake.io) makes this much more efficient by a metadata driven approach. Data objects and transformations  are configured in HOCON notation (superset of json). With this information SmartDataLakeBuilder executes the data pipelines using state-of-the-art BigData technologies (Apache Spark). In order to write the HOCON configuration files more easily, we would like to develop a service providing code completion to IDE’s by implementing the language server protocol (LSP).

Challenge: The SmartDataLake configuration file needs to be parsed and the context at a given position understood. With that it is possible to look up possible configuration options from the Scala configuration structures. Then a list of code completion hints can be created. Welcome to the world of parsers and compilers with a not so complicated entry level challenge.

In this role

The goal of the master thesis is to:

  • develop a service implementing the language server protocol with LSP4J and Java/Scala, to provide SmartDataLake HOCON notation code completion for various IDE’s.
  • Create a plugin for Visual Studio Code to use your LSP implementation
  • Bonus: Create a plugin for IntelliJ to use your LSP implementation

What we offer

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

About your profile

knowledge / skills required  

  • Knowledge in Java/Scala and basic knowhow about parsers and compilers.
  • Interest to deep dive into a concrete parser/compiler challenge.

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.

close
save

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)

New

Sharing tool

Social media cookies allow content sharing on your preferred networks.

(ShareThis)

New

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).

 

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