About me

Hi! I am Nikita Koval, and you are on my personal website. I am a research engineer at JetBrains and lead the Concurrent Computing lab in the research department. Recently, I was delighted to redesign synchronization and communication primitives for Kotlin coroutines, create the Lincheck framework for testing concurrent data structures, and enjoy working on related industrial and academic projects.

Besides work, I am passionate about outdoor activities like 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:
  • 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.
  • JPrime (28-29 May 2024, Sofia, Bulgaria). Giving the "Lincheck: A Practical Framework for Testing Concurrent Data Structures on JVM" 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.