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
Asynchronous communication for Clojure.
Minimalistic implementation of Naiad paper "A Timely Dataflow System" in Scala.
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
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
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
Fn.py: enjoy FP in Python | 01/19/2013, KyivPy #9
Lazy evaluation and declarative approach in Python | PDF | 12/08/2012, KharkivPy #6