Резюме
Контакты
- dzmitrykashlach@pm.me
- Telegram
- GitLab
- Локация: Беларусь
Кратко обо мне
Старший backend‑разработчик (Java/Kotlin) с 10+ годами опыта проектирования, разработки и рефакторинга высоконагруженных серверных систем на Kotlin/Java 8–24, Spring Boot с использованием гексагональной архитектуры. Специализируюсь на поиске и устранении проблем производительности в сложных монолитах, проектировании масштабируемых микросервисных архитектур и автоматизации релизов через CI/CD пайплайны (GitLab, Jenkins, TeamCity).
Уверенно беру на себя front-end задачи при необходимости (CRM-style Angular‑приложения) и привык работать в Agile окружении, в первую очередь Scrum (LeSS) и Kanban.
Работал в командах от 2 до 7 человек и тесно взаимодействовал с аналитиками, DevOps‑инженерами и менеджерами.
На протяжении карьеры я работал в страховом и финтех доменах, а также получил опыт работы с SaaS и внутренними корпоративными
платформами.
Меня интересует решение архитектурных задач, и я ищу проекты, где был полезен в этом направлении.
Проекты
Dec 2024 – now Старший Kotlin разработчик, Altabel Group
Продукт: Приложение для продажи подарочных карт.
Стэк: Kotlin, Spring Boot, REST API, OAuth, Keycloak, Kubernetes, Elasticsearch, Loki, Grafana,
MariaDB, Gitlab, 3 бэкенд-разработчика, 1 devops.
Обязанности:
- Разработал основные бэкенд-микросервисы с нуля.
- Обеспечил способность бэкенда обрабатывать 200–300 RPS используя Infinispan cache .
- Реализовал схему базы данных MariaDB и индексы Elasticsearch.
- Внедрил статический анализ кода (инструмент
detekt), повысив качество кода и обеспечив соблюдение единых стандартов кодирования во всех сервисах. - Реализовал CI/CD: пайплайн GitLab, установка агента Gitlab в кластере.
- Реализовал multi-realm архитектуры авторизации (1 realm на 1 организацию) на базе Keycloak.
- Повысил надёжность платформы за счёт zero-downtime обновлений Keycloak, включая миграции конфигураций и адаптацию шаблонов.
- Внедрил централизованное логирование и мониторинг на базе Loki и Grafana.
- Усилил отказоустойчивость системы авторизации, развернув реплики Keycloak в Kubernetes.
Sep 2022 – Nov 2024 Старший Kotlin разработчик, Altabel Group
Продукт: Кредитный конвейер для выдачи кредитов физическим лицам.
Стэк: Kotlin, Spring Boot, ELK, PostgreSQL, 5 бэкенд-разработчиков.
Обязанности:
- Рефакторинг Open API: уход от привязки к внутреннему приложению для возможности интеграции внешних партнёров.
- Разработка функционала по запросам владельца продукта: автоматические погашения, цессия, интеграция с внешним банком для повышения стабильности погашений.
- Участие в обсуждении архитектуры, разработка кода по принципам гексогональной архитектуры, реализация контрактов сервисов (REST, Apache Thrift), интеграционные и юнит-тесты.
- Разработал и внедрил улучшение Spring Cloud Consul агента для перерегистрации микросервиса в случае перезапуска Consul агента.
Apr 2020 – Jun 2022 Старший Java разработчик, EPAM
Продукт: Корпоративная библиотека.
Стэк: Java, Kotlin, Spring Boot/MVC, MySQL, 5 бэкенд-разработчиков
Обязанности:
- Сократил количество ручной работы для аналитиков производительности посредством интеграции системы (корпоративный инструмент для совместной работы, Spring MVC, Atlassian Confluence, ~100k пользователей, ~1 TB MySQL) с системой для нагрузочного тестирования (REST API, Spring Boot/Data/Security, OAuth 2.0, JWT, Thymeleaf, Apache JMeter).
- Сократил количество обращений от пользователей через настройку JVM GC.
- Сократил количество обращений от пользователей через оптимизацию проблемного SQL-запроса (MySQL).
- Установил процесс анализа производительности приложения и обучил этому двух разработчиков.
- Уменьшил Time to Interactive (TTI) на 0.5 сек. через настройку кэширования на Akamai CDN.
- Провёл несколько лекций для MJC (Minsk Java Community) School.
Apr 2018 – Jan 2020 Старший Java разработчик, EPAM
Продукт: Автоматизация бизнес-процессов для страховой компании.
Стэк: Java, Selenium, MySQL, AWS S3
Обязанности:
- Разработал автоматизацию для производственных бизнес-процессов (домен страхования, платформа WorkFusion, Spring MVC, Java 11, Windows Server, Selenium).
- Уменьшил количество обращений от пользователей через улучшение архитектуры существующей автоматизации (монолит) и рефакторинг кода.
Nov 2016 – Mar 2018 Java разработчик, BlazeMeter LTD
Продукт: Генератор тест-планов для Apache JMeter.
Стэк: Java, Apache JMeter, AWS EC2, AWS S3
Обязанности:
- Разработал генератор тест-планов (Java 8, Apache JMeter, Spring Boot, AWS) для улучшения UX SaaS-платформы нагрузочного тестирования.
Nov 2015 – Oct 2016 Java разработчик, BlazeMeter LTD
Продукт: Java библиотека для CI/CD плагинов.
Стэк: Java, Maven, Nexus, REST API
Обязанности:
- Разработал библиотеку на Java для существующих CI/CD плагинов (Java 8, Maven, Nexus, REST API) для встраивания нагрузочного тестирования в CI/CD процесс.
Jan 2013 – Oct 2015 Java разработчик, BlazeMeter LTD
Продукт: CI/CD плагины для SaaS-платформы.
Стэк: Java, Maven, Nexus, REST API
Обязанности:
- Разработал плагины для интеграции CI/CD систем с SaaS-платформой для нагрузочного тестирования (Jenkins, TeamCity, Bamboo).
- Разработал компонент для open-source проекта Apache JMeter DNS Cache Manager, позволяющий равномерно распределить нагрузку с разных локаций во время нагрузочного тестирования.
Технические навыки
- Языки: Java (9+ лет), Kotlin (4+ года)
- Бэкенд: Spring Boot, Spring MVC, Spring Security, Spring Data, Ktor
- Базы данных: PostgreSQL, MySQL, MariaDB, Liquibase, Elasticsearch
- Инфраструктура и CI/CD: Docker, Jenkins, Kubernetes, Git, GitLab CI, TeamCity
- Интеграция и очереди: REST API, Apache Kafka, Apache Thrift
- Облачная инфраструктура: AWS (EC2, S3, Route 53)
- Кэширование и логирование: Infinispan, ELK, Loki
- Безопасность и авторизация: OAuth 2.0, Keycloak
- Производительность: настройка JVM, оптимизация SQL-запросов, анализ производительности приложений
Иностранные языки
- Английский: B2 — upper-intermediate; уверенно общаюсь на профессиональные темы, свободно читаю техническую документацию.
Образование
2001–2006 Дизайн электроники, Специалист, Belarusian State University of Informatics and Radioelectronics (BSUIR)