Position: Senior Software Engineer
Category: Java
English level: upper
Years of experience: 10


January 2019 – Current time
Developed from scratch internal GitOps like tool for processing JSON configs and through the complex logic applying them into a series of REST requests to keep service state according to JSON configuration (logic is written in Groovy, Jenkins builds Docker image which is then used in config processing Jenkins job).

    Rewrote Dockerfiles for a bunch of services for Docker Compose in order to run infrastructure for local development on different platforms like amd64 and arm64. Lowered memory footprint. Sped up local start-up from 15 minutes to 3.

    Participated in implementing Oauth2 (JWT) for clients and third parties. 

    When Redis didn’t support TLS yet added support for mutual TLS connection by putting Stunnel in front of Redis (Chef cookbook modification) including certificate management.


June 2016 – December 2018
    Developed REST web services (Java 8, Spring Boot, RESTEasy, Spring MVC, Retrofit) based on microservices architecture.

    Implemented distributed cache (on top of Google Guava) synchronized via RabbitMQ notifications.

Implemented features including inter-services communications, RabbitMQ notifications publishing and consuming, sending data to index in Elasticsearch, and storing to MongoDB.

    Developed data models necessary to cover millions of records and allowed to index them in Elasticsearch by batch documents.

Involved in development using Kotlin.

    Tested solution performance with Apache Jmeter and analyzed performance impact.
 
Analyzed production application metrics and profiled with VisualVM and JProfiler.

Developed new UI component on Angular 1.6.

2013 - 2016
in CV
Although I have experience in developing frontend, currently I would prefer to work with backend.