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.

Libraries

dataclasses-tensor

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

Quiche4j

QUIC transport protocol and HTTP/3 for Java

aleph (active contributor)

Asynchronous communication for Clojure.

timely0

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

camille-sql

Run SQL queries over your Maven artifacts cache.

nasus http.server

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

muse

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

schema-refined

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

fn.py

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

Essays

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

Talks

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