About me

Hi, I'm Nikita Koval. Welcome to my personal website 👋

I work on concurrency, programming languages, and AI tools. I have authored several synchronization and communication constructs in Kotlin Coroutines, including channels, mutexes, semaphores, and select, and I lead Lincheck, a JVM framework for testing concurrent algorithms.

Recently, my focus has shifted toward debugging. At JetBrains Research, I led a team working on AI agent debugging and co-created AppGlass, a product for safe debugging of production systems.

Outside work, I enjoy cycling, skiing, hiking, and especially sailing small sports boats — that's me on a Laser on the right ⛵

Feel free to drop me a line if you'd like to discuss something interesting!

Concurrent Programming Fundamentals for AI Era


Elevate your team's concurrent programming skills with an intensive 4-day workshop! Designed specifically for corporate teams, this hands-on training delivers practical algorithms and techniques that your developers can immediately apply to real-world challenges.

  • Comprehensive curriculum from basic locking to advanced concurrent data structures
  • Hands-on exercises with instructor guidance throughout
  • Builds long-lasting intuition for solving concurrent programming challenges
  • Trains your eye to quickly spot concurrency issues — especially when AI sounds confident

Book for Your Team

Selected talks


Channels in Kotlin Coroutines
KotlinConf 2024

How we test concurrent algorithms in Kotlin Coroutines
KotlinConf 2023

Selected publications


  • Lincheck: A Practical Framework for Testing Concurrent Data Structures on JVM [PDF]
    Nikita Koval, Alexander Fedorov, Maria Sokolova, Dmitry Tsitelov, Dan Alistarh. CAV 2023.
    Here, we present the Lincheck framework for testing concurrent data structures on JVM.
  • CQS: A Formally-Verified Framework for Fair and Abortable Synchronization [PDF]
    Nikita Koval, Dmitry Khalanskiy, Dan Alistarh. PLDI 2023.
    In this work, we introduce a new CancellableQueueSynchronizer algorithmic framework, which enables simple yet efficient implementations of a wide range of fair and abortable synchronization primitives: mutexes, semaphores, barriers, count-down latches. We are going to merge the framework into Kotlin coroutines.
  • Fast and Scalable Channels in Kotlin Coroutines [PDF]
    Nikita Koval, Dan Alistarh, Roman Elizarov. PPoPP 2023.
    This paper describes how rendezvous and buffered channels in Kotlin Coroutines work under the hood.
  • Multi-Queues Can Be State-of-the-Art Priority Schedulers [PDF]
    Anastasiia Postnikova, Nikita Koval, Giorgi Nadiradze, Dan Alistarh. PPoPP 2022.
    This paper introduces several techniques that make the classic multi-queue significantly faster without losing fairness.