Специалисты

Описание

Операционные системы
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 месяц