Position: Java Developer
Category: Java
Experience: 4 years | English: fluent

I am proud of my last project.

The project was quite big and long-term (around 1 and a half years). The main goal is to analyze DB, generate a huge amount of test data, measure the product DAO and Service level with special algorithms and benchmarks such as JMH, prepare daily / weekly/ monthly web / .pdf / .xlsx report, send a report to notification person list. The project was built from scratch by my team and was built on microservice architecture. The microservice architecture consists of 4 standard services for microservice architecture (API Gateway - the main dispatcher between the final user and application, Authorization Service - security for entering and communication between services, Config Service - built on the Spring Cloud Config horizontally scalable centralized configuration service, Service Discovery or Registry Service - automatic detection of network locations for service instances) and 10 business logic microservices. Each microservice is a Spring Boot application and it has its own responsibility, also it has a Circuit Breaker represent by Hystrix and each service is dockerized. 2 microservices have a connection to different DB (PostgreSQL, MongoDB). Services which have DB connection have entity layer, repository layer based on Spring Data JPA or Spring Data MongoDB, service layer, rest controller layer, dto layer. Measuring built with JMH benchmark and main mathematical principles such as min, max, average, median, standard deviation, percentile. Searching metrics organized with the Elasticsearch. The PDF report built on itext, XLSX report built on the Apache POI. The web report-dashboard based on AngularJS and Grafana charts. The important role was in testing. There are unit tests, rest test, service test, repository test, integration test, end-to-end test.

My responsibilities on the project: preparing software architecture, creating  Spring Boot micro-service architecture with complete testing; responsible for project CI and CD; managing VMs and Docker containers lifecycle; managing projects repository (merging, merge requests); managing small team and project according to an Agile principles; providing schooling for another company departments about new software features; organizing communication with another company departments from other countries; providing a software release presentation for a customer; researching and implementation of new technologies into company product; writing technical documentation for developers.
I was a part of the special research and development department the main idea of which was to find and integrate the best solutions to the main company product. The technology stack was wide.

The last great project was quite big and long-term. The main goal is to analyze DB, generate a huge amount of test data, measure the product DAO and Service level with special algorithms and benchmarks such as JMH, prepare daily report, send a report to notification person list. The project was built from scratch by my team and was built on microservice architecture. The microservice architecture consists of 4 standard services for microservice architecture (API Gateway, Authorization Service, Config Service, Service Discovery) and 10 business logic microservices. Each microservice is a Spring Boot application and it has its own responsibility, also it has a Circuit Breaker represent by Hystrix and each service is dockerized. 2 microservices have a connection to different DB (PostgreSQL, MongoDB). Services which have DB connection have entity layer, repository layer based on Spring Data JPA or Spring Data MongoDB, service layer, rest controller layer, dto layer. Measuring built with JMH benchmark and main mathematical principles such as min, max, average, median, standard deviation, percentile. Searching metrics organized with the Elasticsearch. The PDF report built on itext, XLSX report built on the Apache POI. The web report-dashboard based on AngularJS and Grafana charts. The important role was in testing. There are unit tests, rest test, service test, repository test, integration test, end-to-end test.