Kiryl L. Java/Kotlin Software Engineer
Summary
- A software engineer with over 5 years of experience in e-commerce and FinTech domains.
- Boasts a strong grasp of Java, Kotlin, JavaScript, and TypeScript, having used them in various projects.
- Proficient in back-end development with advanced knowledge of Spring frameworks, Hibernate, REST API design, and integrating systems like Elasticsearch and Kafka.
- Has experience in integration payment systems such as Google Pay and Apple Pay.
- Skilled in database management systems such as PostgreSQL, MySQL, and MongoDB.
- Demonstrates expertise in containerization with Docker and Kubernetes and is adept in CI/CD practices using tools like GitLab CI/CD and Jenkins.
Work Experience
Software Developer, E-COMMERCE
05.2022 – 12.2023
Summary: The project is a commercial web application for selling gym certificates. The platform provides integration with the GooglePay payment system. Users have a wide range of functions. Administration features provide flexible application resources management. Project backend is based on JAX-RS for offering support to generated RESTful web services
Responsibilities:
- Providing Global Search with Elasticsearch;
- Created API for ElasticSearch easier access with REST approach;
- Design and implementation of reactive RESTful APIs with WebFlux;
- Concurrent proceeding complex data using Spring WebFlux;
- Configuring Spring Security roles;
- Implementing Spring Cloud Config Server;
- Configuring Hibernate Fetch Mode with Spring Data JPA;
- Implementing an API to parse documents and search JSON-formatted data in the Elasticsearch database using Jolt;
- Configuring replication of Kafka;
- Participating in risk assessments as a part of feature-driven development (FDD);
- Implement the features according to the specifications and design documentation;
- Load balancing configuration between microservices (optimization taking into account high traffic);
- Database migrations with Liquibase;
- Changelog storing using Liquibase;
- Integrating third-party payment systems such as Google Pay;
- Implement business logic for payment card processing;
- Handling debit and credit card processing;
- Develop reusable components and services using component-based architecture provided by Angular;
- Optimizing Angular performance;
- Integrations with external services;
- Implementing data access layer for the MongoDB;
- Developing RESTful endpoints to Cache application-specific data in in-memory data Redis cluster;
- Creating Conceptual Data Models, Use Case Diagrams, Class Diagrams;
- Implementation of integration tests using TestContainers;
- GitLab CI/CD pipelines processing;
- Solving major software version compatibility issues;
- Supporting and bug fixing on front-end and backend.
Environment: Java, TypeScript, Spring (Boot, Data, MVC, Security, Cloud, WebFlux), Angular, Hibernate, Liquibase, PostgreSQL, MongoDB, Redis, Gradle, REST, JAX-RS, JSON, Jolt, HTML, CSS, ELK, Apache Kafka, GitLab CI/CD, TestContainers, Docker, Docker-Compose, Kubernetes, Prometheus, Grafana, JUnit, Mockito, Swagger, Git, GitLab, Jira, Confluence.
Software Engineer, CORE BANKING SYSTEM
08.2021 – 04.2022
Summary: Implementation of a modern banking system comprising many business modules focusing on trade finance web applications for legal entities.
Responsibilities:
- Designing and development of the business logic layer components using Spring;
- Database design development;
- Developing and optimizing DB queries;
- Implementing backend business logic using Spring;
- Implement Object-Relational mapping using Hibernate and Spring Data JPA;
- Adding configuration of Spring beans using their lifecycle stages;
- Implementing DAO for the MongoDB;
- Writing scripts with Liquibase for DB migration;
- Storing changelog files with Liquibase;
- REST API implementation;
- Implementation of the authorization and authentication of the application using Spring Security;
- Proceeding complex JSON-formatted data;
- Optimization of database requests for JSON-formatted complex data;
- Kafka consumers and producers implementation;
- Implement business logic for payment card processing;
- Payment card transaction handling;
- Creating CI/CD Jenkins jobs;
- Writing technical documentation;
- Writing unit tests using JUnit and Mockito;
- Developing integration tests using TestContainers;
- Bug fixing.
Technologies: Java, Spring (Boot, Data, MVC, Security), Hibernate, Liquibase, PostgreSQL, MongoDB, Maven, REST, JSON, Apache Kafka, Jenkins, TestContainers, Docker, Docker Compose, JUnit, Mockito, Swagger, Git, GitHub, Jira, Confluence
Software Developer, HUMAN RESOURCES SYSTEM
06.2019 – 07.2021
Summary: Automated, integrated personnel management system with functionality that offers quick access to helpful information for employees. It also allows sending user requests to the company’s internal systems to resolve various issues swiftly.
Responsibilities:
- Building RESTful services that produce and consume JSON-formatted data using JAX-RS;
- Designing PostgreSQL database;
- Storing database changelogs using Liquibase;
- Configuring Spring Boot properties for working in different environments;
- Using Spring Config Server to improve microservices configuration process;
- Implementing reactive WebFlux modules;
- Resolvers implementation for GraphQL;
- Implement frontend features with Typescript/JavaScript;
- Kafka consumers and producers implementation;
- Optimizing Apache Kafka message processing;
- Using Kotlin's coroutines for writing both asynchronous and non-blocking operations;
- Using Kotlin's suspend functions to define asynchronous operations within WebFlux handlers;
- Write and execute unit tests using Kotlin’s testing frameworks;
- Preparing Docker configuration files for application deployment in different environments;
- Use Kubernetes to orchestrate the deployment, scaling, and management of Docker containers;
- Developing Angular components;
- Implementing reusable HTML page patterns using Angular;
- Moving from regular HTML tags to semantic ones;
- Implementing responsible flexbox layouts using Bootstrap and CSS;
- Animating pages using Bootstrap and CSS;
- Gathering requirements, preparing technical and validation documents;
- Participating in code review;
- Bug fixing;
Technologies: Kotlin, JavaScript, TypeScript, Spring (Boot, Data, MVC, Security, Cloud, WebFLux), Angular, Hibernate, Liquibase, PostgreSQL, Gradle, REST, JAX-RS, JSON, HTML, CSS, Bootstrap, GraphQL, Apache Kafka, Jenkins, Docker, Docker-Compose, Kubernetes, Mapstruct, JUnit, Mockito, Swagger, Git, GitHub, Jira, Confluence.
Software Engineer, DANCE STUDIO APPLICATION
Duration: 04.2018 – 05.2019
Summary: A web application for clients to select dance classes by various criteria, purchase memberships, make online enrolments, and view all the related statistics. Allows marking client visits, generating financial reports, etc.
Responsibilities:
- Communicating with the customer and clarifying solution details;
- Implementing business features;
- Developing and optimizing MySQL database queries;
- Implement Object-Relational mapping using Hibernate;
- REST API implementation;
- Implementation of the authorization and authentication of the application using Spring Security (JWT);
- Integrating modern payment systems such as Google Pay and Apple Pay;
- Creating Docker images and docker-compose files;
- Mapping XML to JSON;
- Handling JSON requests and responses;
- Debugging and solving technical problems;
- Writing technical documentation;
- Developed data insertion forms and validated them using JavaScript;
- Design UI with Bootstrap/HTML/CSS;
- Preparing GitLab CI/CD jobs;
- Developing integration tests using TestContainers;
- Writing unit tests;
- Code refactoring;
- Bug fixing.
Technologies: Java, JavaScript, Spring (Boot, Data, MVC, Security), REST, JSON, MySQL, Hibernate, HTML, CSS, Bootstrap, JUnit, Mockito, TestContainers, Docker, Docker Compose, Swagger, Git, GitLab, GitLab CI/CD, Maven, Jira, Confluence.