Internships
Register
Copyright © 2000—2025 JetBrains s.r.o.

Extending Kotlin static analysis

Description

Our project aims to make it possible to catch more errors at compile-time when working with Kotlin. We are developing various compile-time checks, such as:

  • Cyclic dependencies in static initialization.

  • Equality comparisons between objects of unrelated types.

  • Incorrect usage of scoped resources like files and coroutines.

We are also developing a Kotlin compiler plugin for formal verification, Snakt (https://github.com/jesyspa/snakt/), which translates Kotlin into Viper. There are several potential internship projects here, such as:

  • Verification of higher order functions.

  • Implementing a uniqueness type system.

The Kotlin compiler builds a control flow graph of the code, and many of our projects require working with this graph. We have prepared the following test task to help you familiarise yourself with this kind of data structure.

Requirements

  • Currently pursuing or recently graduated from a Computer Science degree, or a degree in a related field.

  • Excellent command of oral and written English

  • Programming experience (familiarity with Kotlin is a plus)

  • Experience with compilers or formal verification is a plus

Admission

Internship projects 2025-2026

Contact details

internship@jetbrains.com

Preferred internship location

Armenia
Cyprus
Czechia
Germany
Netherlands
Poland
Serbia
UK

Technologies

Compilers
Kotlin

Area

Research

Internship timing preferences

Flexible start

Candidate graduation status

Final-year students preferred

Additional information

Math-heavy
Potential thesis