Oleksii Kachaiev

Principal Software Engineer @ Riot Games, Inc.

I work on ML/AI for League of Legends.

As a hobby, I do a research on representation learning techniques and graph neural networks for gameplay modeling.

Scientifically interested in algebras and theory of computation.

Previously put a lot of effort into network protocols (including MQTT, HTTP/2 and QUIC 😱),
async programming runtimes, dependent types, symbolic PLs and graph rewriting systems.



Easily serialize dataclasses to and from tensors (PyTorch tensors or NumPy ndarrays)


QUIC transport protocol and HTTP/3 for Java

aleph (active contributor)

Asynchronous communication for Clojure.


Minimalistic implementation of Naiad paper "A Timely Dataflow System" in Scala.


Run SQL queries over your Maven artifacts cache.

nasus http.server

A simple zero-configuration command-line HTTP files server that scales.


Clojure library that makes remote data access code elegant and efficient at the same time.


Clojure library to keep you away from bugs with precise schemas (refined types with runtime checks).


Functional programming in Python: implementation of missing features to enjoy FP.


Aleph, Async, HTTP, Clojure | 01/26/2019

Go: Channels Are Not Enough | 09/14/2014

Parsing CSS File with Monadic Parser in Clojure | 08/30/2014


Talking SQL to Strangers on how to create system that understands SQL language as an API | 05/29/2020

Managing Data Chaos in the World of Microservices | 09/13/2018, StrataData '18, New York

Deep HTTP Dive Through Aleph & Netty Internals | 07/10/2018, Clojure Tech Talk, Kyiv

Keep Your Data Safe With Refined Types | 06/19/2018, Clojure Meetup, Kyiv

Clojure @ Attendify: Experience Report | 11/14/2017, Attendify Clojure Meetup, Kyiv

Finagle & Clojure | 08/13/2015, FinagleCon 2015, San-Francisco

Efficient, Concurrent and Concise Data Access | Video | 06/26/2015, EuroClojure 2015, Barcelona

Microservices in Clojure. Lessons learned | 04/16/2015, Kyiv Clojure Meetup #7

Errors Handling with core.async | 10/22/2014, Kyiv Clojure Meetup #4

Deterministic Parallel and Distributed Programming with Clojure. Quick Intro | 07/03/2014, KievFProg #7

Monadic Parsing in Python | 06/07/2014, KyivPy #12

Fn.py: Persistent Data Structures | 03/22/2014, Kharkiv.py #10

Erlang in Production. Lessons learned | 11/16/2013, KyivFProg #11

Union-based Heaps in Haskell and Python | 10/26/2013, KyivPy #11

Channels & Concurrency: Go, Clojure, Erlang, Scala, Haskell | 08/03/2013, KievFProg

Real-time collaboration with Erlang and Websockets | Repo | History | 06/01/2013, HotCode 2013

Streams as fundumental abstraction | 06/01/2013, HotCode 2013

Web, Concurrency & Functional Programming | 05/31/2013, HotCode 2013

Functional programming for Web | PDF | 04/24/2013, iForum 2013

Stop Coding Pascal | PDF | 04/06/2013, KyivPy #10

Fn.py: ideas and internals | PDF | 03/27/2013, Kyiv FProg

Modern Concurrency: Erlang, Scala, Go, Clojure | PDF | 01/26/2013, KharkivPy #0

Fn.py: enjoy FP in Python | 01/19/2013, KyivPy #9

Lazy evaluation and declarative approach in Python | PDF | 12/08/2012, KharkivPy #6

Functional programming with Python | PDF | 10/20/2012, Kyiv, PyCon UA 2012