Download PDF

Summary

JVM. OSS. AWS. The Apache Groovy committer. Testcontainers maintainer.
Public speaker (Spring I/O, JavaZone, GR8Conf, JokerConf, JEEconf, TopConf, Jenkins meetups, etc).

Work History

Jan 2011Present

Software Developer

OpenSource

Contributed to different Jenkins plugins (S3, Delivery Pipeline Plugin), Apache Groovy (macro system), JBoss Modules, Spring Boot, Zipkin, AWS Java SDK, Datastax Cassandra driver, Kundera (JPA ORM for NoSQL databases), InfluxDB optimizations, various Golang projects like marathonctl. 
Maintainer of https://github.com/testcontainers/testcontainers-java.

Sep 2017Present

Head of Backend / Infrastructure

Vivy GmbH, Berlin, Germany

As a first backend employee in a brand new eHealth startup from ex-N26 CTO & Head of Backend, my role required to act fast and kickstart the development of the new services and the infrastructure.

  • Shaped the public cloud infrastructure from scratch (self-service infrastructure-as-code using AWS CloudFormation, ECS, Docker)
  • Scaled the company to 30+ micro-services (Java, Spring Boot), developed or participated in most of them
  • Introduced Event Sourcing/CQRS with Kafka to streamline the development and decouple dozens of business domains
  • Hired 5 backend engineers (2 referrals)
  • Trained team about Reactive Programming using Project Reactor for the high performant, resilient, failure-tolerant micro-services
  • Passed all certifications from EU GDPR, TÜV, ePrivacy, Data Privacy authorities, and others
  • Passed the penetration tests from various companies
  • The company won a public tender in Germany (vs IBM, T-Systems, Cisco and others)
  • Was working with various partners to integrate Vivy with them (IPSec tunnels, integrations, etc)

Talks:

Jul 2017Aug 2017

Team Lead, Engineering Productivity

N26 GmbH, Berlin, Germany

I've joined the company to help driving the DevOps transformation and lead the newly created Engineering Productivity / DevOps expertise team.
Due to specifics of the company, it was decided to merge this team with "DevSecOps" team.

  • Was identifying the biggest obstacles in the software delivery processes by interviewing the developers and learning existing solutions
  • Reduced the complexity of a new service creation to a single YAML file (on top of SaltStack)
  • Migrated existing services to a single-file approach to let the developers perform modifications without learning SaltStack and requesting changes from the infrastructure team
  • Introduced SaltStack macros to the infrastructure team (massive reduction to the templates' size)
  • Improved the observability of security (e.g. OWASP checks visualization)
  • Helped to Dockerize various internal DevSecOps tools

Internal talks:

  • TestContainers: integration testing with Java and Docker
Apr 2017Jul 2017

Site Reliability Engineer

Zalando SE, Berlin, Germany
  • Was working on the reliability of critical components like Elasticsearch cluster
  • Improved the reproducibility of the Jenkins setup by integrating Job DSL

Internal talks:

  • Reactive programming with React and RxJS

Talks:

  • TestContainers: integration testing with Java and Docker
    Represented the company at the largest Java conference in Eastern Europe "JEEConf"
    rated as top 6 talk
Aug 2015Apr 2017

Full-stack Developer

ZeroTurnaround, Tallinn, Estonia
  • Full-stack product development (JAX-RS+Grizzly, Spring Boot, Vaadin, Kotlin, AngularJS, React)
  • Was leading the migration from Angular to React + Redux + RxJS
  • Full Jenkins management (maintaining Docker-based setup, writing plugins, writing job DSLs)
  • Real-time analytics on top of ElasticSearch
  • AWS management (CloudFormation, ElasticBeanstalk, ECS, S3, CloudFront, Route 53, ElastiCache (Redis), RDS (PostgreSQL), DynamoDB)
  • http://share.xrebel.com/
  • Docker-based engine for integration testing of ZT's javaagents

Internal talks:

  • Building DevOps culture with Jenkins
  • Docker for integration testing
  • Scalable infrastructure of http://share.xrebel.com/

Public Talks:

Mar 2015Aug 2015

Software Developer

TransferWise, Tallinn, Estonia

I was working in the payment processing team on many things, including:

  • payments reconciliation system
  • fx risks service
  • AngularJS back office development
  • Jenkins build configuration, continuous delivery process on top of it
  • internal Groovy & Grails consulting
  • migration from Assembla to GitHub
  • splitting monolith app into the microservices
  • introduced Spring Boot and microservice infrastructure
  • successfully introduced and helped to integrate Apache Thrift
  • Advocated Docker for development & production usage
  • SQL queries optimizations
  • database caching
  • ELK

Also, I gave a few talks during internal TEX events:

  • Apache Thrift for inter-service communication
  • Spring Cloud
  • How to replace Groovy with Java 8
  • Apache Mesos and Marathon for servers orchestration

TransferWise sponsored some of my public talks as well:

Aug 2013Feb 2015

Senior Java Developer

Creative Mobile OÜ, Tallinn, Estonia

As infrastructure engineer I did:

  • Build system (Jenkins for CI/CD, Maven/Gradle as build providers)
  • Configure and manage Sonatype Nexus for binary hosting
  • Persuaded a company to switch to git from SVN, integrated GitLab as Git management service
  • Integration and management of JBoss EAP
  • MongoDB and Redis management
  • Full AWS management, including:
    • EC2: dev/prod environments, managed by Puppet, with Auto-scaling (using ASG)
    • Elastic Beanstalk and OpsWorks for "out-of-box" server environments
    • side-projects management (creating instances, consulting)
    • CloudFront for game resources distribution

As developer:

  • Groovy integration
  • Contributions to groovy-core
  • Vaadin-based admin application for company's games
  • social games Spring-based platform development, including:
    • support for social networks such as Facebook, VK, odnoklassniki, StudiVZ and others
    • powerful quest system with declarative editor
    • caching and transactions support for DB optimizations
    • a lot of other components like bonuses, unlocks, shop, resources, notifications, requests
    • Redis-based ranking
  • common project support (accepting merge requests, architecture planing etc)
  • Maven Apache Thrift plugin modifications for project requirements
  • Maven Flexmojos plugin modifications and contributions for project requirements
  • Gradle build integration
  • Gradle thrift plugin development


Public talks:

Oct 2012Feb 2013

iOS Senior Developer

Vuaro, Saint-Petersburg, Russia

iOS application development for http://unicom24.ru/ ( https://itunes.apple.com/us/app/kredity-online/id599505277?mt=8 )


Full development cycle from planning to AppStore. Was involved in UX design development.

Apr 2012Sep 2012

Flash Team Lead

Pragmatix, Saint-Petersburg, Russia

Project Lead at project "Shops" ( http://vk.com/app2915322 ):

  • Full client optimization (the number of active personages at map was increased from 10-15 to 70-80, also after it client stopped crashing at start on slow PCs)
  • Maven integration for better development process

Project Lead at porting lead company's project "Wormix" ( http://vk.com/app1744756 ) to iOS

  • Full client refactoring and optimization, FPS was increased from 2-3 on iPad 2 to 60
  • Introduced my own framework for development speed up
  • Full UX design for mobile devices
Sep 2011Mar 2012

Senior Software Engineer

Signus Labs, Saint-Petersburg, Russia

Outsource game development. Foreign communications (U.S.A., Holland, etc)

  • Java BackEnd development (Spring, Hibernate, MySQL, Redis)
  • Flash games development
  • Porting C++ game to iOS (iOS integration, Game Center, In-App purchases etc)

Public Talks:

  • The current state of Adobe Flash AIR for Game Development
Jun 2009Jul 2011

Project Lead

Tipstery, Saint-Petersburg, Russia

I was developing my own project named "Trilogy" in this company (they were investing money into it)

Besides me, there were 2 developers, 5 art designers, 2 game designers and 1 market analytics specialist

Both server (Java) and client (Flash) core parts were initially written by me.

On the Backend we were using:

  • Apache Mina
  • BlazeDS for client <-> server communications
  • MySQL

On the Client side:

  • Custom fork of Adobe Flex framework with custom compiler for better MXML support developed for our needs
  • My own framework (TrylogicFramework) for fast and productive development
  • Modified Papervision3D for real-time 3D rendering in a browser.

Education

20082012

Bachelor's degree

Saint-Petersburg State University Information Technologies, Mechanic and Optics (University ITMO)

Computer Systems, Networking, and Telecommunications