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

Kotlin Compiler Fuzzer (Kai)

Description

In recent years fuzzing has become one of the widely used ways of finding complex bugs in your software. Kotlin compiler is not an exception, as it has been successfully fuzzed, resulting in over 200 deduplicated bugs found in different compiler subsystems.

But all good things must come to an end. The previous fuzzer implementation is obsolete and outdated, and it cannot be reasonably evolved further. Instead, we would like to make a new and improved Version Kai of the Kotlin compiler fuzzer from scratch, using our previous experiences and all the tools and techniques available now.

For this internship, our main goal is to establish a solid foundation for the future evolution of the fuzzer. This means that we will focus on the following aspects.

  • What the proper fuzzer architecture should be, to allow pluggability;

  • Which tools we should use to input, change, generate and output the Kotlin code;

  • How we should check for compiler errors;

  • What the proper ways of handling all found errors are.

As deliverable, we aim to create a prototype implementation of the Kotlin compiler fuzzer which is pluggable and allows for easier future evolution, compared to a monolithic implementation. If the prototype is able to actually find interesting compiler bugs, that would be a great bonus but is not the main focus of the current internship.

If you have any preliminary questions about the project, do not hesitate to contact me via: marat.akhin [at] jetbrains.com

Requirements

What is a must-have

  • Proficiency with Kotlin or another JVM-based language

  • Technical English good enough for reading the relevant papers and documents

  • Basic understanding of compilers

What is a good-to-have

  • Familiarity with fuzzing or other kinds of program analysis

  • Hands-on experience with Kotlin compiler (plugins) or IDE tooling (plugins) or other kinds of pluggable systems

  • Previous greenfield projects in developer tooling

What you will get in return

  • Hands-on experience with (compiler) fuzzing

  • Better understanding of how one creates (internal) developer tooling

  • Expertise in designing and developing pluggable systems

Admission

Internship Projects Summer/Fall 2026

Contact details

internship@jetbrains.com

Preferred internship location

Netherlands

Technologies

Compilers
Kotlin

Area

QA

Internship timing preferences

Flexible start
Full-time preferable
Applications by 16.03.2026
Interview by 17.04.2026
Feedback and final results by 22.04.2026