Специалисты
Операционные системы
Linux (Ubuntu, CentOS), Windows
Языки разработки: Java (SE/EE, версии 8–17), Kotlin (базово), SQL (ANSI SQL), Bash (базово)
Фреймворки и библиотеки: Spring Boot, Spring MVC, Spring WebFlux, Spring Security, Spring Data JPA, Spring Transactional, Spring Core, Spring AOP, Spring Cloud, AspectJ, JPA/Hibernate, MyBatis, EclipseLink, Liquibase, Flyway, Kafka Client, Kafka Streams, Redis, Hazelcast, OpenAPI/Swagger, WebSocket, JUnit 5, Mockito, TestContainers, AssertJ, Jasper Reports, Freemarker (базово)
Архитектура
● Микросервисная архитектура (Kafka, REST, WebSocket, Redis)
● Монолитные REST-приложения
● Архитектурные шаблоны: DDD, Saga, CQRS, CDC, Template Method
● Проектирование архитектуры, API и взаимодействия микросервисов
● Работа с BPM-движками: Camunda, Zeebe
● Cloud Ready-архитектура, отказоустойчивость, масштабирование (Sharding, Partitioning, Master-Slave), Eventual Consistency
● Применение GoF-шаблонов, SOLID, DRY, KISS
● Участие в проектировании БД и компонентов системы (UML, C4-диаграммы)
Тестирование:
Unit- и интеграционное тестирование (JUnit 5, Spring Test, TestContainers)
Mock-тестирование (Mockito, MockMVC, stub)
Тестирование REST API, валидации, безопасности
Использование H2, Docker и Testcontainers для изолированных тестов
Поддержка CI-интеграции с прогоном тестов
Покрытие бизнес-логики и взаимодействия с внешними API
Базы данных:
PostgreSQL, MySQL, SQLite, типы NoSQL-хранилищ
ORM: Hibernate, MyBatis, EclipseLink
Инструменты миграции: Liquibase, Flyway
Проектирование нормализованных моделей, индексация, оптимизация запросов (в т.ч. через EntityGraph)
Транзакционность и ACID, CAP-теорема, мастер-слейв репликация, шардинг
Инфраструктура и DevOps:
Docker, Docker Compose, Kubernetes, OpenShift
CI/CD: Jenkins, GitLab CI
Мониторинг и логирование: ELK-стек, Grafana, Sentry
Работа с переменными окружения, YAML-конфигурацией, secrets
Сборка и деплой через pipeline, Nightly build, деплой на CentOS через Jenkins
Контроль версий:
Git, GitHub, GitLab
Работа через pull requests, ревью кода, ветвление, CI-интеграции
Управление проектами:
Scrum, Agile, Code Review
Планирование задач, командное взаимодействие, релиз-менеджмент
Другие технологии:
Common: Шаблоны проектирования (GoF), алгоритмы и структуры данных, оценка сложности (O(n)), ООП, Clean Code
Security: OAuth2, JWT, Keycloak, OWASP, CORS, CSRF, SSO
JVM: Работа с JVM Memory Model, Garbage Collector, компиляцией
Очереди: Kafka, RabbitMQ, ActiveMQ, концепты брокеров сообщений (Sync/Async)
Протоколы: HTTP/REST, WebSocket, gRPC, SOAP
Cloud: AWS (базово)
Работа с документацией и архитектурой: UML-диаграммы, диаграммы компонентов и последовательностей, описание архитектуры микросервисов, взаимодействий, схем БД
О специалисте
Java-разработчик с опытом более 4 лет в проектировании, разработке и сопровождении корпоративных решений в металлургии, инновационных сервисах и бизнес-приложениях. Работаю с микросервисной и монолитной архитектурой, обладаю навыками проектирования API и взаимодействия через REST, Kafka, WebSocket, интеграции с внешними сервисами и системами авторизации (Keycloak, OAuth2, JWT). Имею опыт миграции легаси-систем, реализации сложной бизнес-логики и оптимизации SQL-запросов.
Активно участвую в полной цепочке разработки - от анализа требований, проектирования архитектуры и баз данных до написания модульных и интеграционных тестов, проведения код-ревью и поддержки релизов. Внедряю лучшие практики по безопасности, отказоустойчивости и масштабированию. Работаю с Docker, Kubernetes, Jenkins, ELK-стеком для обеспечения качественного CI/CD и мониторинга.
Регулярно решаю задачи оптимизации производительности, автоматизации процессов и интеграции с внешними системами, включая Telegram-боты и почтовые сервисы. Постоянно совершенствую свои навыки в области архитектуры, тестирования и современных Java-фреймворков (Spring Boot, Hibernate, Liquibase и др.). Готов к новым вызовам и открыт к обмену знаниями с командой..
Образование: БНТУ, Электроснабжение, 2009.
Управление процессом разливки стали, оптимизация и автоматизация
Роль в проекте: Backend-разработчик О проекте: Разработка и внедрение программного планировщика для управления сериями и стадиями разливки плавок стали на агрегатах непрерывной разливки. Система предоставляет интерфейс как для ручного, так и для автоматического управления процессами выплавки и подготовки стали, обеспечивает синхронизацию с фактическими данными и оптимизацию операций. Цели проекта: ● Реализация гибкой системы планирования и управления разливкой стали ● Автоматизация загрузки и распределения серий на агрегаты ● Оптимизация производственного процесса с учетом нормативных параметров, сменности и временных ограничений ● Повышение производительности, точности планирования и качества продукции Архитектура ● Группа микросервисов, взаимодействующих через REST, Kafka и WebSocket ● Синхронное и асинхронное взаимодействие с внешними системами ● Аутентификация через Keycloak и OAuth2 ● PostgreSQL в качестве основной СУБД ● Контейнеризация через Docker, CI/CD пайплайны Непосредственные задачи ● Разрабатывал REST API для взаимодействия фронтенда и микросервисов, используя Spring Boot и Spring Data JPA. ● Реализовал сложную бизнес-логику и обработку асинхронных событий. ● Интегрировал систему с внешними сервисами через REST, SOAP, Kafka и WebClient. ● Настроил аутентификацию через Keycloak и OAuth2. ● Внедрил управление транзакциями в многопоточной среде с использованием Spring Transaction Management. ● Оптимизировал SQL-запросы, добавил индексы, использовал EntityGraph для повышения производительности. ● Написал миграции базы данных с использованием Liquibase. ● Рефакторил и оптимизировал существующий код, устранял технический долг. ● Исправлял баги и проводил анализ инцидентов. ● Участвовал в релизах: собирал, тестировал и выкатывал версии. ● Писал модульные и интеграционные тесты с использованием JUnit, Mockito и Testcontainers. ● Проводил код-ревью, участвовал в развитии стандартов кодирования в команде. ● Анализировал требования от аналитиков и участвовал в планировании новых фич. ● Совместно с командой предлагал улучшения по развитию продукта и процессов. Состав команды 12 человек: backend-разработчики, аналитики, DevOps, QA, архитекторы
Unit-тестирование, PostgreSQL, Kafka, Spring-Cloud, Spring DI/IoC, Docker, Mock_ирование, JPA/ORM (Hibernate), HTTP/REST, Spring Transactional, Spring Data JPA, Spring Security, Open API (Swagger), Spring MVC, Spring test, Collection API, Liquibase
Октябрь 2023 – по настоящее время месяцев
MES-система сталеплавильного производства»
Роль в проекте: Backend-разработчик О проекте: Система контроля качества продукции в металлургическом производстве. Обеспечивает проверку соответствия химического состава, геометрических параметров и структуры стали техническим условиям, а также автоматизацию процесса аттестации плавок и управления замечаниями. Цели проекта: ● Повышение прозрачности и эффективности контроля качества ● Хранение истории операций, связанных с аттестацией ● Автоматизация анализа параметров и принятия решений ● Обеспечение полноты и достоверности производственных данных Архитектура ● Микросервисная архитектура с обменом данными через REST и Kafka ● PostgreSQL в качестве хранилища ● Интеграция с системами авторизации через Keycloak ● Контейнеризация и CI/CD пайплайны Непосредственные задачи ● Реализовал формы "Замечание по технологии", "Назначение", "Шаги аттестации" и форму "Химический анализ" для контроля качества готовой продукции. ● Разработал функциональность для проведения аттестации металла и формирования сертификатов качества. ● Внедрил ролевую модель на уровне микросервисов с использованием Spring Security и Keycloak (OAuth 2). ● Оптимизировал бизнес-логику микросервисов, обеспечивающих контроль химического состава, макроструктуры, геометрии и структуры сляба. ● Интегрировал микросервисы для взаимодействия по REST и Kafka, обеспечив надежную синхронную и асинхронную коммуникацию между компонентами системы. ● Участвовал в исправлении багов, внедрении новых фич и оптимизации существующего функционала. ● Выполнял анализ требований, активно взаимодействуя с командой для планирования и реализации задач. ● Написал модульные и интеграционные тесты с использованием JUnit и TestContainers. ● Проводил code review и участвовал в релизах, поддерживая качество кода и стабильность поставок. ● Выполнял миграции БД с помощью Liquibase, обеспечивая консистентность данных. ● Использовал Hazelcast для распределённого кэширования и повышения производительности системы. ● Работал с Docker и Kubernetes для деплоя микросервисов в продакшн-среду. Состав команды:10 человек: разработчики, аналитики, QA, DevOps, архитекторы
Java 17, Spring Boot, Spring MVC, Open API (Swagger), Spring Data JPA, Spring Security, Keycloak, OAuth 2, Kafka, PostgreSQL, Liquibase, Hazelcast, TestContainers, JUnit, Docker, Kubernetes, Sentry, Gradle
Февраль 2023 – Октябрь 2023 месяца
Сервис инициации и оценки инновационных концепций
Роль в проекте: Backend-разработчик О проекте: Сервис для генерации, структурирования и оценки бизнес-идей по множеству критериев. Обеспечивает сбор обратной связи, оценку рисков, генерацию отчетов и централизованное управление концепциями. Цели проекта: ● Создание платформы для управления инновационными идеями ● Интеграция с системой авторизации и системами уведомлений ● Визуализация информации и генерация отчетов ● Обеспечение отказоустойчивости и масштабируемости Архитектура ● Микросервисная архитектура, REST API через Gateway ● Взаимодействие с Kafka, файловое хранилище ● Интеграция с Keycloak и ELK ● PostgreSQL как основная СУБД ● Docker-compose для сборки окружения Непосредственные задачи ● Спроектировал и внедрил микросервисную архитектуру для сервиса генерации и оценки инновационных идей: обеспечил взаимодействие между микросервисами через REST и Kafka, организовал REST API через Gateway. ● Проектировал и реализовал архитектуру и структуру базы данных для всех микросервисов совместно с командой: создавал диаграммы компонентов, диаграммы последовательностей, разрабатывал схемы БД и описания требований к системе. ● Разработал и внедрил сервис регистрации и авторизации пользователей с использованием Keycloak, реализовал взаимодействие user-service с Keycloak и настройку аутентификации и авторизации по протоколу OAuth2 и JWT. ● Настроил фильтры безопасности, SecurityConfig, JWT-конвертер и защиту эндпоинтов для обеспечения безопасного доступа к ресурсам. ● Создал и конфигурировал docker-compose-файл для разработки, включающий Keycloak, базу данных, ELK-стек и другие компоненты, а также участвовал в создании общего docker-compose для запуска всего проекта. ● Реализовал сквозное логирование через ELK-стек, обеспечив централизованный сбор и анализ логов микросервисов. ● Автоматизировал миграции базы данных с использованием Liquibase. ● Разработал генерацию отчетов в формате PDF с использованием Jasper Reports и созданных шаблонов. ● Обеспечил качество кода через написание модульных и интеграционных тестов с использованием testcontainers, участие в код-ревью и исправление багов. ● Активно участвовал в релизах, командной коммуникации и развитии архитектуры и бизнес-логики проекта. Состав команды: 5 человек: backend-разработчики, DevOps, QA, аналитик
Spring core (scope, context, lifecycle, configuration types), Spring Transactional, Spring Data JPA, Spring-boot (starter"s, autoconfiguration), Spring Security, Spring DI/IoC, Spring MVC, Spring AOP, AspectJ, Spring-Cloud, Collection API, JPA/ORM (Hibernate), Luqibase, PostgreSQL, OAuth2, JWT, JVM (Memory Model, Garbage Collection, Compilation), Kafka, Unit-тестирование, Spring test, Mock"ирование, HTTP/REST, Jasper, ElasticSearch, Logstash, Docker, Open API (Swagger)
Апрель 2022 – Февраль 2023 месяца
Сервис мониторинга нагрузки специалистов и отчетности
Роль в проекте: Backend-разработчик О проекте: Система для мониторинга и автоматизированного формирования отчетов о рабочих задачах специалистов, с возможностью интеграции с Telegram-ботом и отправки отчетов по электронной почте. Цели проекта: ● Повышение прозрачности выполнения задач ● Автоматизация отчетности и централизованная сборка данных Интеграция с телеграм-ботом и почтовыми сервисами ● Упрощение взаимодействия между членами команды Архитектура ● Монолитное приложение ● Фронтенд — React JS, взаимодействие с backend через REST ● PostgreSQL как основное хранилище ● Автоматическая сборка и деплой через Jenkins и Tomcat ● Работа на CentOS VM Непосредственные задачи ● Спроектировал и реализовал backend-сервис на Java для создания, редактирования, удаления и хранения отчетов о выполненных задачах специалистов. ● Настроил и внедрил автоматическую CI/CD-процедуру с использованием Jenkins: после коммита и webhook"а из GitHub автоматически выполнялась сборка проекта через Maven и деплой на сервер с Tomcat. ● Развернул и сконфигурировал виртуальные машины на CentOS, установил и настроил Jenkins и Tomcat без UI. ● Реализовал парсинг JSON-отчетов, поступающих с фронтенда, с помощью jackson.databind, с последующим сохранением данных в PostgreSQL. ● Разработал механизм генерации PDF-отчетов, объединяющих задачи всех членов команды за день. ● Создал и внедрил сервис взаимодействия с Telegram-ботом и отправки отчетов в чат Telegram и на email. ● Настроил автоматическую отправку ежедневных отчетов с помощью QuartzScheduler. ● Разработал REST API с использованием javax.servlet для работы с отчетами: создание, изменение, удаление. ● Участвовал в проектировании архитектуры, ежедневной коммуникации с командой, планировании задач и ревью кода. ● Обеспечивал стабильную работу и поддержку проекта в условиях быстро меняющихся требований и сжатых сроков. Состав команды: 3 человека: backend, frontend, DevOps
Collection API, PostgreSQL, JVM (Memory Model, Garbage Collection, Compilation), HTTP/REST, Docker, JDBC, javax.servlet, jackson databind, quartz scheduler, Telegram, Jenkins, CentOs, Tomcat.
Август 2021 – Март 2022 месяца
Сервис подбора туров, личный кабинет и скидочные механики
Роль в проекте: Backend-разработчик О проекте: Веб-приложение для клиентов туристического агентства. Позволяет просматривать, бронировать и отменять туры, а также взаимодействовать с менеджерами. Реализована система скидок, внутренняя коммуникация и мультиязычность. Цели проекта: ● Цифровизация туристического сервиса ● Реализация системы бонусов и скидок ● Интеграция личного кабинета и внутренней коммуникации ● Обеспечение мультиязычного интерфейса Архитектура ● Монолитное Java-приложение ● JSP-страницы с использованием JSTL ● MySQL как основная БД ● Серверная логика на JavaEE ● Сессии пользователей Непосредственные задачи ● Спроектировал архитектуру монолитного приложения с учетом бизнес-логики для подбора и заказа туров. ● Разработал полностью функционал backend-сервиса, включая CRUD операции с турами, оформление заказов и отмену туров. ● Создал кастомный пул соединений (Connection Pool) для оптимизации работы с базой данных MySQL. ● Реализовал сервисы пользователей и их взаимодействия с турами, включая систему специальных предложений, скидок и акционных механик. ● Разработал сервис коммуникации между клиентами и менеджерами агентства для обсуждения вопросов по конкретным турам. ● Написал JSP страницы с использованием JSTL для отображения функционала, обеспечил поддержку мультиязычности через JSTL. ● Внедрил функционал мультиязычности, обеспечив удобство использования для пользователей разных языков. ● Проводил JUnit-тестирование ключевых модулей для обеспечения качества и стабильности кода. ● Участвовал в проведении релизов, код-ревью, исправлении багов и добавлении новых функций. Состав команды 4 человека: fullstack-разработчики, аналитик
Collection API, Unit-тестирование, JDBC, connection-pooling, JavaEE, MySQL, jsp, JSTL, JUnit, Maven.
Ноябрь 2020 – Июль 2021 месяц