PlayQ, Kyiv — Backend Engineer
DEC 2016 -
Speeded up performance by updating DB and caching APIs from 1200 to 1800 req/sec.
Maintained and redesigned platform based on Kappa architecture. Converted Spark Engine into own-designed one.
Implemented a UA and Advertising platform for 10+ partner APIs with scheduled data pulling using Cron and Kubernetes.
Developed of domain language API for models and contracts definition which support client and server parts (minimized typos and code base duplicating)
Replaced TeamCity build definition with Kotlin DSL.
Created a development pipeline involving Github, TeamCity, Jira and Slack notifications for simplifying addition and removal of the new projects and triggering dependent ones.
Decreased build and publish time using Docker containers and Docker Compose to define testing dependencies and isolate them, which gave a speed increase from 20 to 12 minutes.
Macro-based API to fetch property’s name, type and value while logging.
Implemented async console and file APIs for logging.
Implemented partially compile time codecs API to reference config API.
Designed rendering policy layout for logging library.
Implemented reference configuration file for logging library.
API descriptor generator for RPC & Domain Language framework.
Swagger-like documentation and client generator.
Scalaz — Open Source
Implemented CI/CD workflow in TeamCity and Github.
Resolved issues in HTTP and logging libraries.
Kyiv Polytechnic Institute
Bachelor’s in Software Engineering
September 2014 - June 2018
Master in Software Engineering
September 2018 - June 2020
Programming Languages: Scala, Java, Golang, Python
Frameworks: Akka, Play!, Scalaz, Cats, React, Angular
Databases: Cassandra, PostgreSQL, Redshift, MongoDB, Redis, DynamoDB
Message Queuing Systems: Kafka, Amazon SQS.
DevOps tools: ElasticSearch, Docker, Kubernetes, Azuki, Teamcity, Travis CI, Zookeeper
Advertising and User Acquisition: Facebook, Google Adwords, Tune, Kochava, Vungle, Apple Ads
Cluster Computing: Hadoop, Spark
Others: Zookeeper, OneSignal, Aero Gear, SendGrid
English - fluent
Ukrainian, Russian - bilingual