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.
Results from "Gym-μRTS: Toward Affordable Deep Reinforcement Learning Research in Real-time Strategy Games"paper reproduced with Stable-Baselines3.
Consice reimpelemntation of the agent and the training procedure from the "Neuroevolution of Self-Interpretable Agents" paper.
"Age of Empires II" Learning Environment compatible with OpenAI Gym API.
Easily serialize dataclasses to and from tensors (PyTorch tensors or NumPy ndarrays).
Minimalistic implementation of Naiad paper "A Timely Dataflow System" in Scala.
QUIC transport protocol and HTTP/3 for Java
Asynchronous communication for Clojure.
Run SQL queries over your Maven artifacts cache.
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
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