JetBrains/kotlin
Maintainers
Subsystem ownership map. The data is derived from .space/CODEOWNERS (which uses JetBrains Space CODEOWNERS syntax — see reference/configuration.md) and from git log against master for the trailing 12+ months. Bot accounts are filtered.
The "Recent contributors" column shows the top 2-3 committers to that subsystem on master over the past one to two years; it is a quick guide to who recently worked on a given area, not a record of all maintainers.
Code ownership
| Subsystem | Space team owner(s) | Recent contributors | Notes |
|---|---|---|---|
FIR / K2 frontend (compiler/fir/) |
"Kotlin Frontend" | Kirill Rakhman, Dmitriy Novozhilov, Mikhail Glukhikh | Most-active subsystem. |
K1 frontend (compiler/frontend/, compiler/resolution/) |
"Kotlin Frontend" | Dmitriy Novozhilov, Alexander Udalov | Maintenance + bug fixes. |
PSI (compiler/psi/) |
"Kotlin Frontend" | Dmitriy Novozhilov, Kirill Rakhman | Stable; rare changes. |
Backend IR (compiler/ir/ir.tree/, compiler/ir/backend.common/) |
"Kotlin Common Backend" | Ivan Kylchik, Sergej Jaskiewicz, Wojciech Litewka | Cross-target. |
JVM backend (compiler/ir/backend.jvm/) |
"Kotlin JVM" | Sergej Jaskiewicz, Ivan Kylchik | The default backend for most users. |
JS backend (compiler/ir/backend.js/, js/) |
"Kotlin JS" | Artem Kobzar, Ilya Goncharov, Zalim Bashorov | |
Wasm backend (compiler/ir/backend.wasm/, wasm/) |
"Kotlin Wasm" | Ilya Goncharov, Artem Kobzar | |
Native backend (kotlin-native/, native/) |
"Kotlin Native" | Alexander Shabalin, Igor Chevdar, Svyatoslav Scherbina, Dmitriy Dolovov, Vladimir Sukharev | Largest single subsystem after the frontend; includes the C/C++ runtime. |
CLI (compiler/cli/, compiler/arguments/) |
"Kotlin Compiler" | Dmitriy Novozhilov, Sergej Jaskiewicz, Alexander Udalov | |
Build Tools API (compiler/build-tools/) |
"Build Tools API" | Yahor Berdnikau, Andrey Yastrebov, Timofey Solonin | Heavy churn; under active development. |
Daemon (compiler/daemon/, compiler/incremental-compilation-impl/) |
"Kotlin Build Tools" | Ilya Chernikov, Dmitriy Novozhilov, Alexander Udalov | |
Analysis API (analysis/) |
"Kotlin Analysis API" | Dmitrii Gridin, Marco Pennekamp, Kirill Rakhman | Ka* prefix lives here. |
Standard library (libraries/stdlib/) |
"Kotlin Libraries" | Filipp Zhinkin, Ilya Gorbunov, Sergej Jaskiewicz | |
kotlin-reflect (libraries/reflect/) |
"Kotlin Libraries" | Alexander Udalov, Dmitriy Novozhilov, Filipp Zhinkin | JVM-only. |
kotlin-test (libraries/kotlin.test/) |
"Kotlin Libraries" | Ilya Gorbunov, Sergej Jaskiewicz, Filipp Zhinkin | |
Scripting (libraries/scripting/) |
"Kotlin Libraries" | Ilya Chernikov, Alexander Udalov, Dmitriy Novozhilov | |
Kotlin Gradle Plugin (libraries/tools/kotlin-gradle-plugin*) |
"Kotlin Build Tools" | Yahor Berdnikau, Andrey Yastrebov, Timofey Solonin | |
Kotlin Maven Plugin (libraries/kotlin-maven-plugin*) |
"Kotlin Build Tools" | Alexander Udalov, Dmitriy Novozhilov, Filipp Zhinkin | |
JPS (jps/) |
"Kotlin Build Tools" | Ilya Chernikov, Alexander Udalov, Yahor Berdnikau | |
Compose plugin (plugins/compose/) |
"Kotlin Compiler" + Compose team | Andrei Shikov, Dmitriy Novozhilov, Wojciech Litewka | Co-developed with Google's Compose team. |
kotlinx.serialization plugin (plugins/kotlinx-serialization/) |
"Kotlin Libraries" | Dmitriy Novozhilov, Leonid Startsev, Kirill Rakhman | |
kapt (plugins/kapt/) |
"Kotlin Compiler" | Alexander Udalov, Dmitriy Novozhilov, Ilmir Usmanov | |
Parcelize (plugins/parcelize/) |
"Kotlin Compiler" | Dmitriy Novozhilov, Kirill Rakhman, Rafal Galczak | |
allopen / noarg / sam-with-receiver / lombok (plugins/) |
"Kotlin Compiler" | Dmitriy Novozhilov, Alexander Udalov, Kirill Rakhman | Small, related plugins. |
Test infrastructure (compiler/test-infrastructure*, compiler/tests-common-new) |
"Kotlin Compiler" | Dmitriy Novozhilov, Sergej Jaskiewicz, Mikhail Glukhikh | |
Build/CI (repo/, .teamcity/, gradle/) |
"Kotlin Build Infrastructure" | Andrey Yastrebov, Yahor Berdnikau |
Top-15 contributors over the past year
These are the most prolific human authors (excluding bots) on master over the past year. Numbers are commit counts. The list is unevenly distributed across subsystems — Analysis API, FIR, and KGP all have heavy committers near the top.
| Author | Approx commits (1y) | Primary area |
|---|---|---|
| Dmitriy Novozhilov | 970 | FIR / cross-cutting |
| Dmitrii Gridin | 890 | Analysis API |
| Kirill Rakhman | 640 | FIR / Analysis API |
| Dmitriy Dolovov | 480 | Native |
| Mikhail Glukhikh | 470 | FIR |
| Vladimir Sukharev | 440 | Native |
| Ivan Kochurkin | 360 | Compiler / FIR |
| Sergej Jaskiewicz | 320 | IR / JVM |
| Ivan Kylchik | 320 | IR / JVM |
| Yahor Berdnikau | 270 | KGP / Build Tools |
| Nikolay Lunyak | 250 | (varied) |
| Alexander Udalov | 230 | Compiler / kapt / reflect |
| Grigorii Solnyshkin | 220 | (varied) |
| Andrey Yastrebov | 220 | KGP / Build Tools |
| Denis Zharkov | 200 | Frontend |
How ownership is enforced
The CODEOWNERS file is checked at build time by org.jetbrains.kotlin.code.SpaceCodeOwnersTest. Every path under the repository root must be claimed by some owner (or marked UNKNOWN / NO_OWNER). When you add a new top-level directory or a new package, you also have to add the corresponding CODEOWNERS entry.
How to find the right reviewer
For most changes, the answer is: open a PR (or Space MR) and let the auto-assignment from CODEOWNERS find the right team. For large changes that span multiple subsystems, the convention is to ping the most-relevant owner directly on Slack (#kotlin-internal or the area-specific channels) ahead of opening the PR.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.