Специалисты

Описание

Навыки
Операционные системы Linux, Mac OS, Windows
Языки разработки Java (Java EE 8-10, Java SE 8-24), скриптовые языки (Bash, Shell, CMD, Powershell)
Фреймворки и библиотеки Spring Core, Spring DI/IoC, Spring Boot, Spring Data JPA, Spring Data JDBC, Hibernate, Hikari Connection Pool, Spring Security, Spring AOP, Spring Transactional, Log4j, Spring Cloud (Open Feign), Spring Streams, Spring Kafka Streams, Spring Doc, OpenAPI/Swagger, Flyway, Liquibase, Lombok, Mapstruct, Concurrency, Jasper, JOOQ
Базы данных PostgreSQL, MySQL, Redis
Тестирование Spring Test, AssertJ, JUnit5, Testcontainers, Mockito (Mock&Stub), Podam. Instancio, Unit-тестирование, интеграционное тестирование
Контроль версий Git (Bitbucket, Github, Gitlab)
Архитектура Архитектурные шаблоны (Saga, CDC, CQRS, Template, Outbox) , Микросервисы, Монолит, DDD
Инфраструктура и DevOps Gitlab CI/CD, Github actions, Docker, K8s (Kubernetes), Grafana, Prometheus, Graylog, ELK Stack (Elasticsearch, Logstash, Kibana), Filebeat, Jaeger, Zipkin, Graylog
Технологический стек Общие: Шаблоны проектирования (GoF), Алгоритмы и структуры данных. O(n), Clean Code, Владение принципами ООП, Java Core (Семантика, Generics, Exception Handling, Stream API и т.д.), Concurrency, Организация отказоустойчивости. Оркестраторы, Camunda BPMN. Cloud Ready архитектура
Безопасность: Keycloak, OAuth2, JWT, OWASP, CORS, CSRF, SSO.
JVM и производительность: Memory Model, Garbage Collection, Compilation
Очереди: Kafka, RabbitMQ, Sync vs Async, концепт очередей и брокеров сообщений
Кэширование: Redis
Протоколы: HTTP/REST, WebSocket, gRPC, SOAP
Хранилища: S3, Minio
Облачные технологии: Google APIs, Cloudflare, AWS, Yandex Cloud, Selectel Cloud
Управление проектами Atlassian Jira, Confluence, Trello

Образование: 1. Ульяновский государственный технический университет. Менеджмент организаций. 2009.
2. Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики. Java-разработчик. 2022.

Опыт
Проект

ERP-система производства пищевых продуктов

Описание

Роль в проекте Java разработчик Цель проекта Разработка ERP для предприятий пищевого производства в рамках импортозамещения. Решение автоматизирует управление производственными запасами, персоналом и финансовым учетом. Реализована интеграция с производственным оборудованием и модулями учёта, централизованный контроль остатков сырья и готовой продукции, планирование смен и загрузки производственных мощностей, генерация отчётности в реальном времени. Система направлена на повышение прозрачности процессов и снижение операционных затрат. Архитектура ● Монолит, модульное приложение в рамках концепции JPMS. ● Новая БД на основе Postgresql, старая БД на основе MySQL. ● Данные синхронизируются посредством специального модуля data-bridge. Непосредственные задачи ● Разработал механизм синхронизации списанных продуктов, а также внедрил синхронизацию побочных продуктов в ProductionLines при наличии последних. ● Создал кастомный плагин для Keycloak, обеспечивающий аутентификацию пользователей с использованием формы ввода PIN-кода и виртуальной клавиатуры, оптимизированной для устройств с сенсорными экранами. ● Реализовал расширенный функционал контекстного поиска сотрудников в плагине Keycloak с поддержкой автоподсказок и быстрого поиска по персоналу, защищённый специальным API-ключом для повышения уровня безопасности. ● Предложил гибкую систему аутентификации с выбором режима: либо OAuth2 Authorization Code Flow, либо классическая аутентификация через форму входа (Form-Based Authentication) с возможностью динамического переключения через настраиваемый внешний конфиг-файл, облегчив разработку фронтенда. ● Интегрировал поддержку классов-оберток типа Page для автоматической генерации сущностей с помощью инструмента OpenAPI, решив проблему отсутствия встроенной поддержки этой функциональности стандартным генератором кода. ● Реализовал систему поиска ингредиентов и заявок на производство посредством QueryDsl. ● Сделал систему навигации по заявкам в зависимости от заданной даты или id. ● Реализовал функционал модулей "Производство", "Перемещение" и поиск заявок: производства, перемещения. ● Реализовал функционал складского модуля. ● Создал модуль для формирования отчетов на базе JasperReports с экспортом отчетом по различным форматам. Состав команды 1 TeamLead/аналитик, 5 Java разработчиков, 1 frontend разработчик, 1 Devops, 1 QA, 1 Системный аналитик

Технологии

Java 21, Unit-тестирование, PostgreSQL, Spring DI/IoC, Docker, Mock_ирование, JPA/ORM (Hibernate), HTTP/REST, Spring Transactional, Spring Data JPA, Spring Security, Open API (Swagger), Spring MVC, Collection API, Liquibase, Jasper, JOOQ, JWT, Spring Plugin

Длительность

Март 2025 -Ноябрь 2025 месяцев

Проект

Автоматизация обработки клиентских запросов банка

Описание

Роль в проекте Java разработчик Цель проекта Разработка автоматизированной системы обработки клиентских обращений для крупного российского банка. Реализует комплексный подход к управлению запросами клиентов — от момента поступления обращения до его полного разрешения. Обеспечивает регистрацию поступающих заявок, автоматическое распределение между ответственными сотрудниками и контроль сроков исполнения. Поддерживает интеграцию с внутренними системами банка для оперативного обмена информацией. Повышает качество обслуживания клиентов путем сокращения времени реакции и повышения точности решений. Архитектура ● Микросервисная. ● Серверная часть: Java, Spring Framework. ● Мобильное приложение на Android (Kotlin). ● БД PostgreSQL. Непосредственные задачи ● Реализовал единый сервиса уведомлений по различным каналам связи (email, мессенджеры и т.д); ● Реализовал планировщик задач для удаления старых записей логов пользователей. ● Настроил Keycloak с добавлением новых ролей. ● Написал плагин для Keycloak для поиска пользователей по списку UUID. ● Реализовал функционал аудита, включающий в себя наличие имен пользователей, а не UUID. ● Разработал сервисный уровень для работы с Redis для кэширования пользователей. ● Реализовал миграцию таблиц Camunda в кастомную схему БД. ● Написал делегатные классы для обработки сервисных задач Camunda. ● Установил задачам Camunda временные сроки (таймер), после которых процесс ликвидируется. ● Написал запросы на openFeign для работы с Keycloak для получения отфильтрованного списка пользователей. ● Добавил сервисные методы для работы с S3-файловым хранилищем на удаление и получение файлов. ● Реализовал построение запросов на Webflux (BFF) для обработки запросов с frontend и передачи и обработки данных с различных микросервисов. ● Настроил Kafka-продюсер. ● Настроил pipeline микросервиса для работы с ElasticSearch. ● Создал avro-схему для реакций. ● Реализовал сервисный метод для обработке реакций. ● Добавил эндпоинты на различные микросервисы. ● Написал скрипты миграции для Liquibase как на добавление новых таблиц, на корректировку полей или их удаление. ● Написал интеграционные тесты, mock-тесты после добавления соответствующего репозитория, сервиса или контроллера. ● Исправил различные баги. ● Консультировал frontend разработчиков. Состав команды ПМ, 1 аналитик, TeamLead, 3-5 backend разработчика, 2 frontend разработчика, 1 QA, 1 DevOps

Технологии

Java 11, 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, Kafka, Unit-тестирование, Mock"ирование, HTTP/REST, ElasticSearch, Logstash, Docker, Open API (Swagger)

Длительность

Январь 2024 — февраль 2025 месяцев

Проект

Медицинская информационная система

Описание

Роль в проекте Java разработчик Цель проекта Разработка сервиса для оптимизации работы медицинского персонала и повышения уровня обслуживания пациентов. Проект разрабатывался с целью упростить административные процедуры, повысить эффективность работы медицинского персонала и улучшить качество обслуживания пациентов путем предоставления удобного интерфейса, который облегчает доступ к медицинским услугам. Основные функции: - Управление расписанием врачей и распределение нагрузок среди сотрудников. - Онлайн-запись пациентов на приемы к специалистам различных направлений. - Улучшение качества обслуживания за счёт упрощения административных процедур и предоставления удобного интерфейса для пациентов. Архитектура ● Монолит. ● Взаимодействие по REST API. ● БД PostgreSQL. Непосредственные задачи ● Реализовал персональное пространство для пациентов с возможностью просмотра истории посещений, записей на приёмы и другой важной информации. ● Разработал функционал для администрирования филиалов клиник. ● Создал инструменты для управления различными отделениями внутри клиник. ● Разработал модуль для ведения информации о медицинском персонале. ● Реализовал функционал генерации расписания врачей на основе индивидуальных шаблонов. (относительно дней недели). ● Разработал функционал для отслеживания и обновления профессиональных навыков сотрудников. ● Разработал систему онлайн-записи пациентов на приём. Реализовал возможность экспорта данных для печати. ● Создал планировщик заданий для генерации расписаний с внешней настройкой. Состав команды Более 50 человек, в моей подкоманде 16 человек: ПМ, 7 backend разработчиков, 2 frontend разработчика, 3 QA, 2 аналитика, DevOps

Технологии

Java 17, Spring core (scope, context, lifecycle, configuration types), Spring Transactional, Spring Data JPA, Spring-boot (starter"s, autoconfiguration), Spring Security, Spring MVC, Spring AOP, AspectJ, Collection API, Luqibase, PostgreSQL, Unit-тестирование, Spring test, Docker, Open API (Swagger)

Длительность

Июнь 2022 — декабрь 2023 месяца

Проект

Платформа для эффективного управления проектами и задачами

Описание

Роль в проекте Java разработчик Цель проекта Разработка современной платформы для управления проектами и задачами, схожей с функционалом Jira, специально адаптированной под нужды руководителей. Система позволяет создавать проекты, ставить конкретные задачи, распределять их между сотрудниками и контролировать выполнение в режиме реального времени. Платформа обеспечивает руководителям удобный инструмент для отслеживания прогресса работ, мониторинга загруженности команды и оперативного принятия решений для оптимизации рабочих процессов. Это помогает повысить эффективность командной работы, сократить сроки выполнения задач и минимизировать риски задержек. Архитектура ● Монолит. ● Взаимодействие по REST API. ● Обработка задач с помощью асинхронных методов. Непосредственные задачи ● Реализовал аутентификацию и авторизацию через Spring Security. ● Реализовал различные роли пользователей. ● Разработал функционал для управления пользователями: ○ отображение списка пользователей. ○ изменение статуса пользователей. ○ блокировка и разблокировка аккаунтов. ● Реализовал функционал создания, обновления и удаления проектов. ● Реализовал функционал назначения задач сотрудникам. ● Реализовал функционал управления командами: просмотр, создание, добавление участников, расформирование команд. ● Реализовал управление задачами: присвоение задач ответственным лицам, изменение статусов задач. ● Реализовал обновление статусов выполнения задач. ● Написал функционал генерации отчетов по задачам и проектам в формате PDF. ● Разработал бот для Telegram, интегрированный с системой, для получения информации о текущем состоянии проекта, завершённых и незавершённых задачах, чек-лист проекта. Состав команды ПМ, 4 backend разработчика, 1 frontend разработчик, QA|AQA

Технологии

Java 17, 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, Collection API, Luqibase, PostgreSQL, Unit-тестирование, Spring test, Mock"ирование, HTTP/REST, Docker, Open API (Swagger), Telegram API

Длительность

Октябрь 2021 — май 2022 месяца