ДмитрийЯманко

Java Backend Developer

Бэкенд для банкинга, документооборота и ритейла. Три года развивал внутренний портал услуг банка из топ-5 РФ, которым пользуются ~30 000 сотрудников: Java 21, Spring Boot 3, Camunda 7, PostgreSQL, Kafka. Отвечал за восстановление после инцидентов и BPMN-инструменты от анализа до сопровождения в продакшене, включая фронтенд на Vue.js.

Опыт
6+ лет коммерческой разработки на Java
Последнее место
Java-разработчик в IT_One, до октября 2026
Формат
Удалённо, полная занятость, есть опыт удалёнки
Часовой пояс
Тбилиси, UTC+4
Оформление
B2B (ИП в Грузии) или EOR
Английский
C1 (EF SET 67/100)

Основной стек

  • Java 8–21
  • Spring Boot 3
  • Apache Kafka
  • Camunda 7
  • PostgreSQL
  • Vue.js 3 / 2

Стек

Технологии из резюме по группам. Маркером выделен основной стек.

Backend

  • Java 8–21
  • Spring Boot 3
  • Spring Security
  • Spring Data JPA
  • Hibernate
  • Apache Kafka
  • REST, OpenAPI
  • JUnit, Mockito
  • Spring Boot Test
  • MapStruct
  • ShedLock

BPM и автоматизация

  • Camunda 7
  • Groovy
  • Dify, LLM
  • Python
  • BPMN
  • JUEL
  • bpmn-js

Данные

  • PostgreSQL
  • Redis
  • Liquibase
  • XML, XSD, JAXB

Сборка и инфраструктура

  • Docker
  • Portainer
  • TeamCity
  • GitLab CI
  • Nexus
  • Maven
  • Git
  • Grafana

Frontend

  • Vue.js 3 / 2
  • JavaScript
  • Vuex
  • Element UI

Архитектура: микросервисы, декомпозиция монолита, событийная архитектура (Kafka), паттерны GoF, фоновые задачи и распределённые блокировки (ShedLock)

Процессы и инструменты: Scrum Jira Confluence Claude Code

Сейчас изучаю:Camunda 8 / Zeebe, Kubernetes и Helm, AWS, Kotlin

Кейсы

Четыре задачи из опыта: что было нужно, что я сделал и что получилось.

Сначала кейсы для роли Java Backend. Сменить роль

IT_One, проект для крупного банка для роли Java Backend

Событийные уведомления и интеграции

Задача
Связать портал с внешними системами и уведомлять сотрудников о ходе заявок.
Что сделал
  • Продюсер уведомлений в Kafka и консьюмер, который доставляет сообщения через API корпоративного мессенджера
  • Единые отметки прочтения из трёх источников (Redis, задачи процессов, заявки): атомарный Lua-скрипт, идемпотентная запись в PostgreSQL
  • API курьерской службы: расчёт стоимости, документы, трекинг, статусы по расписанию
  • Админский поиск по нескольким миллионам заявок переписан с JPA / Criteria API на динамический нативный SQL: фильтрация и пагинация в CTE до соединения таблиц, GIN-индексы pg_trgm
  • REST-интеграции с low-code Idea Platform
Результат
Поиск заявок ускорился с ~1–2 с до ~200–300 мс. Уведомления строятся на событиях Kafka и приходят сотрудникам в корпоративный мессенджер, портал обменивается данными с курьерской службой и Idea Platform.
  • Kafka
  • REST
  • Redis
  • PostgreSQL
Продюсер публикует события уведомлений в Kafka, консьюмер доставляет их через API корпоративного мессенджера.

IT_One, проект для крупного банка для роли Java Backend

Восстановление процессов после сбоев

Задача
Процессы Camunda должны переживать сбои внешних систем, а администраторы — видеть, что случилось и как это разобрать.
Что сделал
  • Доработал обработчик инцидентов: ошибки, подходящие под настраиваемые шаблоны, ставятся в очередь в PostgreSQL
  • Планировщик под ShedLock перезапускает шаг через ProcessInstanceModification: до 3 попыток с паузой, защита от зацикливания, алерт о переполнении очереди
  • Журнал действий по инцидентам, перевод процесса на выбранный шаг и база инструкций «ошибка → решение» с автоотправкой в кадровую систему
Результат
По оценке, 25–30% из 100–500 инцидентов Camunda в день закрываются без администратора.
  • Camunda 7
  • ShedLock
  • PostgreSQL
  • Spring Boot
Согласование
Вызов внешней системы
Исполнение
Заявка создана
Выполнена
Отклонена
Согласовано?
да
нет

Как устроен автоповтор

Сверху путь заявки в портале, снизу механизм, который я сделал. Ошибку по шаблону планировщик повторяет, и заявка идёт дальше. Ошибка не по шаблону не повторяется и уходит администратору. Если повторы не помогают, их останавливает лимит.

Astelit для роли Java Backend

Из монолита в сервисы

Задача
Вынести из монолита уведомления, синхронизацию с внешними системами и Telegram-ботов.
Что сделал
  • Проектировал REST API между сервисами при декомпозиции монолита на микросервисы
  • Самостоятельно, с нуля сделал сервис интеграции с 1С: планировщик на каждую таблицу, выгрузка пачками через API 1С, проверка целостности
  • С нуля настроил CI/CD: сборка и тесты, Nexus, Docker, docker-compose, Portainer
Результат
Уведомления, синхронизация и боты работают отдельными сервисами, сборка и доставка автоматизированы.
  • Spring Boot
  • REST
  • Docker
  • CI/CD
Уведомления, синхронизацию с внешними системами и ботов вынесли в отдельные сервисы с REST API между ними.

IT_One, проект для крупного банка

BPMN-редактор внутри портала

Задача
Дать аналитикам смотреть и править BPMN-схемы прямо в портале вместо desktop Camunda Modeler.
Что сделал
  • Сделал самостоятельно, с нуля, от анализа до продакшена: бэкенд на Spring Boot, фронтенд на bpmn-js
  • bpmn-js Modeler с панелью свойств Camunda, публикация в движок с обязательным комментарием
  • Ролевой доступ, история версий и публикаций
Результат
~10 аналитиков команды перешли на него с desktop Camunda Modeler. Схемы правятся и публикуются в самом портале, у каждой есть история версий и разграничение доступа.
  • Camunda 7
  • bpmn-js
  • Spring Boot
  • Vue 2
Все версии схемы хранятся, опубликованная подсвечена. Без роли редактора палитра и правка недоступны.

Плюс: автоматизация с LLM

  • 1–2 дня → ~2 часа

    Проектирование процессов с LLM. От оценки реализуемости до продакшена. Dify-пайплайн строит BPMN для Camunda 7 по описанию услуги, проверяет схему статическим анализатором и LLM-аудитом и готовит отчёт для ревью; пайплайн, промпты и анализатор спроектировал сам, проверено на 10 реальных процессах. Генерация занимает около 10 минут, остальное — доработка. Второй пайплайн переносит описания полей форм из Confluence в XML-формы портала.

Опыт

В коммерческой разработке с августа 2020 года, это 6 лет и 3 месяца. Домены: банкинг, электронный документооборот, ритейл.

IT_One

Java-разработчик

ноябрь 2023 — октябрь 2026

Внутренний портал услуг банка из топ-5 РФ: им пользуются все ~30 000 сотрудников, через него согласуются отпуска, зарплатные и другие вопросы, до ~2000 новых заявок в день. On-prem, 3 инстанса за балансировщиком F5. Команда 20+ человек.

  • Отвечал за направления восстановления после инцидентов и BPMN-инструментов от анализа до сопровождения в продакшене, на бэкенде (Spring Boot) и фронтенде (Vue 2).
  • Автовосстановление после сбоев внешних систем: по оценке, 25–30% из 100–500 инцидентов Camunda в день закрываются без администратора.
  • Самостоятельно сделал BPMN-редактор в портале: ~10 аналитиков команды перешли на него с desktop Camunda Modeler.
  • Переписал админский поиск заявок с JPA на нативный SQL с индексами pg_trgm: ~1–2 с → ~200–300 мс.
  • Написал продюсер уведомлений в Kafka и консьюмер, который доставляет сообщения через API корпоративного мессенджера; интегрировал курьерскую службу и кадровую систему.
  • Довёл генерацию BPMN через LLM (Dify) от оценки реализуемости до продакшена: проектирование процесса — с 1–2 дней до ~2 часов.
  • Проводил код-ревью; разбирал проблемы релизного конвейера: замечания security-скана, сборки, синхронизация dev → prod Nexus.

Java 21, Spring Boot 3.5, Camunda 7, PostgreSQL, Liquibase, Kafka, Redis, ShedLock, MapStruct, Docker, TeamCity, GitLab CI, Nexus, Grafana, Prometheus, Vue 2, bpmn-js, Dify

Astelit

Инженер-программист (Java Backend)

август 2020 — сентябрь 2023

Заказная разработка, Ростов-на-Дону. Три проекта полного цикла в команде из 6 человек: электронный документооборот, Telegram-бот, бэкенд мобильного приложения для ритейла.

  • Лид разработки бэкенда мобильного приложения для ритейла: сбор требований с клиентом, план интеграции с его legacy-системой.
  • Самостоятельно, с нуля сделал сервис интеграции с 1С: планировщик на каждую таблицу, выгрузка пачками через API 1С, проверка целостности.
  • Проектировал REST API между сервисами при декомпозиции монолита на микросервисы; писал и дорабатывал Kafka-продюсер push-уведомлений.
  • С нуля настроил CI/CD: пайплайны сборки и тестов, артефакты в Nexus, Docker, docker-compose, Portainer.
  • С нуля сделал дашборд аналитики в Grafana на сложных SQL-запросах; внедрил Redis для кэширования главной страницы приложения.
  • Spring Security и LDAP, фронтенд на Vue 3; свой код покрывал unit-тестами на JUnit и Mockito. Был наставником junior-разработчика команды.

Java 8–17, Spring Boot, Spring Security (LDAP), PostgreSQL, Liquibase, Kafka, Redis, Grafana, Docker, docker-compose, Portainer, Nexus, JUnit, Mockito, Vue 3

Образование

  • 2024

    Магистр, программная инженерия (09.04.04), программа «Веб-технологии»

    Университет ИТМО, Санкт-Петербург. Диплом с апостилем.

  • 2021

    Бакалавр, информатика и вычислительная техника (09.03.01)

    Донецкий национальный университет

Языки

  • Русскийродной

  • АнглийскийC1, EF SET 67/100

Контакты

Открыт к удалённой работе на полный день.

Формат
Удалённо, полная занятость
Оформление
B2B-контракт (готов оформить ИП в Грузии) или EOR
Где я
Тбилиси, UTC+4. Гражданство РФ.

Обновлено в ноябре 2026