About me

Hi! I am Nikita Koval and you are on my personal website. I am a researcher in the Kotlin team at JetBrains and lead a Concurrent Computing lab at JetBrains Research, working on a PhD in the field of concurrency at the same time. My primary research interests are concurrent data structures and algorithms, their verification, and practically applicable code analysis. Here you can find all the recent information about me and my projects.

I am passionate about outdoor activities, such as cycling, skiing, or hiking when not working. Yet, the true love is sailing on small sports boats — that's me on a laser on the right ⛵

Do not hesitate to drop me a line if we have an interesting topic to discuss!

Upcoming events


Let's meet at the following industrial and academic conferences:
  • PPoPP '24 (2-6 March 2024, Edinburgh, UK). Giving a tutorial on concurrent algorithms in Kotlin coroutines and presenting the "Memory Bounds for Concurrent Bounded Queues" paper.
  • Devoxx UK (8-10 May 2024, London, UK). Giving the "Lincheck: A Practical Framework for Testing Concurrent Data Structures on JVM" talk.
  • KotlinConf (22-24 May 2024, Copenhagen, Denmark). Giving the "Redesigning Communication and Synchronization in Kotlin Coroutines" talk.
  • PLDI '24 (24-28 June 2024, Copenhagen, Denmark). Giving a tutorial on concurrent algorithms in Kotlin coroutines.

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. Please refer to the user guide to see how easy it is to test concurrent algorithms with Lincheck.
  • 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 algorithmic framework called CancellableQueueSynchronizer, which enables simple yet efficient implementations of a wide range of fair and abortable synchronization primitives: mutexes, semaphores, barriers, count-down latches, and blocking pools. We will merge the framework into Kotlin coroutines soon.
  • Fast and Scalable Channels in Kotlin Coroutines [PDF]
    Nikita Koval, Dan Alistarh, Roman Elizarov. PPoPP 2023.
    This paper describes the recently developed algorithm for rendezvous and buffered channels in Kotlin coroutines, significantly improving previous implementations in both the sequential and high-contended workloads.
  • 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.
See the full list of publications here.