Oleksii Kachaiev

Principal Software Engineer @ Riot Games, Inc.

First and foremost, I'm Ukrainian 🇺🇦.
On February 24, russia conducted an act of aggression by launching full-scale military invasion of Ukraine.
To whom it may concern: my personal statement.

I work on ML/AI for League of Legends.

My research interests are in the modeling of agents capable of acquiring a variety of skills
in open-ended simulations, particularly in the direction of building biologically inspired world models.

Previously put a lot of time and effort into Big Data infrastructure (including contributions to Spark),
network protocols (including MQTT, HTTP/2, and QUIC), async programming runtimes,
dependent types, symbolic PLs and graph rewriting systems.

Research Engineering

Gym-μRTS with Stable-Baselines3/PyTorch

Results from "Gym-μRTS: Toward Affordable Deep Reinforcement Learning Research in Real-time Strategy Games"paper reproduced with Stable-Baselines3.

Neuroevolution of Self-Interpretable Agents

Consice reimpelemntation of the agent and the training procedure from the "Neuroevolution of Self-Interpretable Agents" paper.

PyAge2

"Age of Empires II" Learning Environment compatible with OpenAI Gym API.

dataclasses-tensor

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

timely0

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

Other Contributions

Among other contributions: RTS game learning environemnt MicroRTS, RL framework stable-baselines3, ML framework for timeseries datasets sktime, and more.

Other Projects

Quiche4j

QUIC transport protocol and HTTP/3 for Java

aleph (active contributor)

Asynchronous communication for Clojure.

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

30 years of Internet through the lens of the HTTP protocol | 04/28/2021, London Clojurians Meetup

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