Projects
Application deployment framework
Application Deployment Framework for major tech company. Framework is used to simplify deployment of various workload type to AWS and Kubernetes clusters. Also provides DORA metrics, simplifies management of CI/CD pipelines and enforces strict security guidelines.
Developed core components for the framework, different deployment algorithms and support for deploying various workload types, such as EMR, MWAA, containers etc.
Tech stack consists of Golang, AWS, KUbernetes, Github, Screwdriver CI/CD.
Online advertising platform
Working on development of online advertising platform for the world’s third largest advertiser, after Google and Facebook. The company operates sofisticated advertising platform serving millions of customers every day.
Worked as a part of core team in-charge for development of ads configuration application. Software stack used in development is Java 11, Spring Boot, Hibernate, MySQL, AWS
Main duties include development and maintenance of core application, review of design documents and pull requests, maintaining CI/CD pipeline, deploying and monitoring application in production.
Notable achievements include:
- code and SQL queries optimization that reduced response time from 10s of seconds to sub-milisecond time
- migration of CI/Cd pipeline from Jenkins to Screwdriver
- design of development of AWS Step fuction to orchestrate serverless workflow using mTLS connection to on-premise database servers
Data center monitoring software
Blue Medora is the leading provier of software solutions for monitoring data centers and cloud workloads. Their flagshp product is BindPlane, which is a tool for real-time monitoring of metrics and logs for various server side applications.
Working for Blue Medora, I developed a number of modules for monitoring the following applications:
- Apache Mesos
- Apache Kafka
- Docker Swarm
- IBM POWER9 platform (based on OpenStack)
- Alibaba Cloud RDS service
Modules were developed using Kotlin and Java, with Gradle as build tool.
Online payment platform
Skrill is the leading online wallet and payment platform, operating in multiple countries and with multiple currencies. They offer a wide range of payment and money transfer services.
Working on Skrill platform, my duties included backend development and integrating various third-party providers with the corfe platform APIs. Tech stack used on the platform included:
- Java
- RestEasy, an implementation of JAX-RS specification
- Hibernate/JPA as ORM
- Oracle database
- JBoss application server
- Attlassian Bamboo build server
Notable achievements include the integration of the following third-party services:
- Bitcoind payments through Bitpay
- Withdrawals through AstroPay cards
- integration of Rapid Transfer payments
Freelancer marketplace
Upwork is world’s largest online freelance marketplace. It was founded by merger of Elance and oDesk, at the time two of the world’s largest marketplaces. Upwork serves millions of clients worldwide every day.
Working for Upwork, main focus of the project was migrating legacy monolithic applications to modern architecture based on micro services. Intent was to make new application more scalable and able to handle increasing load of new users. In addition, old system had to be kept running while new one is being implemented.
Tech stack used in application:
- Java
- Dropwizard micri services framework
- Netflix OSS components (Eureka, Hystrix, Zuul)
- Postgresql database
Remote video & audio editing
SyncDNA is cloud-based software for remote video, audio and TV postproduction. It enables real-time collaboration between artists working on post-production.
Main duties in this project included design and development of backend components, creating CI/CD pipelines and automated deployment to Kubernetes cluster.
Tech stack for the application:
- Java
- Spring Boot
- PostgreSQL, Redis
- Docker, Kubernetes
- Apache Kafka
Automatic semantic versioning for Git (open source)
Automatic semantic versioning for Git is a Github Action that automatically tags git commits based on Conventional Commits specification. It is an open source project published under Mozilla Public License 2.0
Complete design and implementation is available on Github. Project is published as Docker image with a set of scripts which enable semantic versioning.
Tech stack:
- Github Actions
- Docker
- Bash shell
Launchcode (open source)
Launchcode is a tool to generate native launchers for Java applications. Supported platforms are Windows, Mac OS and Linux. It is an open source project published under MPL-2.0 license.
Users can specify configuration file and the tool generates launchers with specified system properties, runtime arguments, icon and any other property set by configuration. It is distributed as Docker image, to allow for minimal dependencies on any system.
Tech stack:
- Go
- Docker