Специалисты · FC-102

Backend-разработчик (Java) Middle+

Backend-разработчик с 5-летним опытом проектирования и разработки серверной части приложений на Java и Kotlin. Работает с реляционными и документными базами данных, выстраивает микросервисную архитектуру, интегрирует системы через REST API и Kafka. Применяет современный стек Spring Boot 3, Hibernate, обеспечивает CI/CD-процессы и мониторинг production-систем.

  • Middle+грейд
  • 5 летопыт
  • 6проектов в CV
  • 3отрасли
JavaKotlinSpringPostgreSQLDockerKubernetesHibernatejOOQMockitoJUnit

Стек

Технологии

Языки
JavaKotlinSQL
Фреймворки
SpringHibernatejOOQMockitoJUnit
Библиотеки и утилиты
LombokMapStruct
Фреймворки и библиотеки
Vaadin
Реляционные
PostgreSQL
NoSQL
MongoDBRedis
Миграции
LiquibaseFlyway
CI/CD
JenkinsOpenShiftGit CI/CD
Контейнеризация
DockerKubernetes
Сборка
MavenGradle
Мониторинг и анализ
OpenSearchGrafanaPrometheusGraylog
Коммуникация
KafkaWebSocket
Версионный контроль
GitHubGitLabBitBucket
Управление задачами и документация
JiraConfluence
Протоколы и архитектура
REST APIмикросервисная архитектура
Форматы данных
JSONXML
Документирование API
Swagger

Экспертиза

Что умеет

Backend-разработка

  • Реализация бизнес-логики
  • Проектирование микросервисов и схемы БД
  • Составление и оптимизация многотабличных SQL-запросов
  • Реализация многопоточности, кэширование данных и асинхронного взаимодействия между МС
  • Настройка ролевой модели

Качество кода и процессы разработки

  • Написание модульных и интеграционных тестов
  • Проведение ревью кода и технического задания
  • Декомпозиция задач
  • Следование принципам чистого кода, работа в Agile-командах, ведение технической документации
  • Профилирование приложений
  • Устранение уязвимостей приложений на основе AppSec-отчета

Полный цикл и смежные области

  • Участие во всем жизненном цикле приложения — от проектирования и разработки до развертывания и мониторинга

Проекты

Над чем работал

Названия заказчиков не раскрываются. Детали обсуждаем на встрече.

Платформа хранения документов

Backend Developer01.2025 — по настоящее время

Внутренняя платформа документооборота крупного банка, обеспечивающая централизованное хранение, согласование и маршрутизацию корпоративных документов. Система реализована на микросервисной архитектуре (15 сервисов) с синхронным и асинхронным взаимодействием, охватывает более 2 000 пользователей. Функциональность включает ролевое разграничение доступа, полнотекстовый поиск, версионирование документов и интеграцию с корпоративной инфраструктурой.

Команда: 5 System Analysts, 7 Backend Developers, 2 Frontend Developers, 5 QA Engineer

  • Реализовал ключевые бизнес-сценарии согласования документов: маршрутизация по ролям, параллельное и последовательное согласование, автоматические уведомления через Kafka-события — сроки согласования договоров сократились с 3 дней до нескольких часов.
  • Построил полнотекстовый поиск на OpenSearch: кастомный анализатор для русского языка с морфологией и синонимами, индексирование содержимого PDF и DOCX, поиск с нечётким соответствием и подсветкой вхождений — сотрудники находят нужный документ за секунды вместо ручного листания папок.
  • Спроектировал и реализовал ролевую модель на Keycloak: иерархические роли (просмотр → редактирование → согласование → администрирование), атрибутивный контроль доступа на уровне отдела и типа документа, интеграция с корпоративным LDAP — 2 000+ пользователей получили ровно те права, что нужны по должности.
  • Настроил Kafka-топики для асинхронного взаимодействия: партиционирование по типу события, dead letter queue для повторной обработки сбоев, мониторинг лага консьюмеров через Grafana — система не теряет ни одного события даже при временном падении downstream-сервиса.
  • Провёл аудит безопасности по AppSec-отчёту: устранил SQL-инъекции через параметризацию запросов, закрыл XXE-уязвимости в XML-парсере, настроил CSP-заголовки — все критические и высокие уязвимости закрыты по итогам повторного сканирования.
  • Последовательно рефакторил кодовую базу: декомпозировал God Objects на сервисный слой, заменил N+1 запросы на fetch join с пагинацией, убрал дублирование маппинга через MapStruct — покрытие тестами выросло с 34% до 71%, время сборки сократилось на 25%.
  • Участвовал в ревью архитектурных решений: предложил схему версионирования документов через иммутабельное хранение ревизий вместо мягкого удаления — это упростило аудит изменений и сняло целый класс багов с параллельным редактированием.
  • Java 17
  • Spring Framework
  • PostgreSQL
  • Liquibase
  • Hibernate
  • Gradle
  • Apache Kafka
  • Keycloak
  • OpenSearch

Модуль переноса настроек

Backend Developer06.2023 — 01.2025

Внутренний инструмент автоматизации миграции справочных данных между средами разработки и тестирования. Система на основе трёх микросервисов выполняет сравнение схем и данных двух экземпляров БД, после чего генерирует DML-скрипты переноса и отката изменений. Ключевой результат: переработка логики с Oracle PL/SQL на Java с применением многопоточности позволила сократить время выполнения критического сценария с 2 часов до 1,5 минут.

Команда: Team Lead, 2 System Analysts, 4 Backend Developers, 2 Frontend Developers

  • Выступил техническим лидом подпроекта: провёл декомпозицию на три микросервиса (reader, comparator, script-generator), согласовал архитектуру с командой, распределил задачи и контролировал качество через ревью каждого PR.
  • Спроектировал и реализовал ядро сравнения: рекурсивный обход иерархических справочников, алгоритм diff с учётом зависимостей по foreign key (чтобы DML применялся в правильном порядке), обработка коллизий при переименовании объектов — корректная работа на схемах с 200+ взаимосвязанными таблицами.
  • Реализовал генератор DML-скриптов переноса и отката: скрипт переноса идемпотентен, скрипт отката точно обращает каждую операцию, транзакционные блоки с savepoint для атомарного применения групп изменений — команда релиза перестала бояться применять скрипты вручную.
  • Добавил многопоточность через ExecutorService: параллельное чтение из нескольких схем, thread-safe накопление результатов через ConcurrentHashMap, правильный порядок сборки итогового diff через CountDownLatch — это и дало снижение с 2 часов до 1,5 минут на самом тяжёлом сценарии.
  • Разработал систему аудита на уровне БД: триггеры на всех справочных таблицах пишут историю (кто, когда, что, старое и новое значение), представления для удобной фильтрации по пользователю и периоду, нормализация схемы устранила дублирование в 5 таблицах.
  • Реализовал UI на Vaadin для аналитиков: визуальное diff-дерево с подсветкой добавлений/изменений/удалений, фильтрация по схеме и типу объекта, генерация SQL по кнопке на лету — аналитики работают с инструментом без единого обращения в DevOps.
  • Обеспечил совместимость с двумя СУБД (PostgreSQL и Oracle): абстрагировал диалекто-специфичные конструкции через стратегию, покрыл граничные случаи интеграционными тестами через Testcontainers.
  • Java 17
  • Sptring Boot 3
  • Hibernate JPA
  • PostgreSQL
  • Oracle
  • Maven
  • Vaadin

Система рассмотрения кредитных заявок

Backend Developer02.2023 — 06.2023

Внутренняя монолитная система банка для рассмотрения заявок на кредитование физических лиц. Задачей участия в проекте являлась стабилизация системы перед плановым масштабированием: построение полноценного контура наблюдаемости, устранение узких мест в производительности и повышение сопровождаемости кодовой базы. Система обрабатывает кредитные заявки в режиме реального времени, что предъявляет высокие требования к надёжности и корректности реализованной бизнес-логики.

Команда: Team Lead, 6 Backend Developers, 2 Frontend Developers, 3 QA Engineers, 5 System Analysts

  • Выстроил observability стек с нуля: структурированное JSON-логирование через Logback + MDC (traceId, userId, requestId в каждой строке), централизованный сбор в Graylog с фильтрами по контексту, дашборды в Grafana по ключевым бизнес-метрикам (число заявок в час, время рассмотрения, процент отказов).
  • Настроил мониторинг приложения в Kubernetes: Prometheus scraping через аннотации на подах, кастомные метрики через Micrometer (размер очереди заявок, время ответа внешних сервисов), алерты по p95 latency и error rate — время обнаружения инцидентов сократилось с «жалоба пользователя» до автоматического алерта за 2 минуты.
  • Провёл профилирование под нагрузкой через async-profiler: нашёл три горячие точки — лишняя сериализация в Kafka-продюсере, неиндексированный запрос в цикле, блокировка на synchronized-методе при конкурентном доступе к кешу — устранение этих точек снизило p99 latency на 40%.
  • Выполнил рефакторинг критически важных модулей: разбил методы по 500+ строк, заменил магические константы на задокументированные enums, покрыл отрефакторенный код юнит-тестами — следующий разработчик разбирается в логике рассмотрения заявки за час, а не за день.
  • Реализовал сложную бизнес-логику расчёта кредитного решения: правила андеррайтинга с учётом кредитной истории, дохода и скоринга, корректная обработка граничных случаев (нулевой доход, незакрытые просрочки, поручительство) — покрыл логику 47 параметризованными тест-кейсами.
  • Java 11
  • Spring Boot 3
  • Apache Kafka
  • Oracle
  • Kubernetes
  • Maven
  • Liquibase
  • Graylog
  • Grafana

Сервис для моделирования угроз безопасности ПДн

Backend Developer08.2022 — 02.2023

Веб-сервис автоматизированного построения модели угроз безопасности персональных данных в соответствии с методологией ФСТЭК России. Система формирует актуальный перечень угроз на основе характеристик информационной системы, указанных пользователем, и генерирует готовый отчётный документ установленного формата. Реализована в виде монолитного приложения с двухфакторной аутентификацией и модулем автоматической отправки результатов по электронной почте.

Команда: Project Manager (Analyst), 1 Backend Developer, 1 Frontend Developer

  • Реализовал движок моделирования угроз: граф зависимостей между объектами защиты, нарушителями, векторами атак и угрозами из банка ФСТЭК, алгоритм автоматического вывода актуальных угроз на основе характеристик системы — то, что аналитик делал 3–5 дней, сервис строит за 30 секунд.
  • Разработал генератор отчётов в формате ФСТЭК: шаблон с автоподстановкой результатов, нумерация угроз, таблицы актуальности с обоснованиями, экспорт в DOCX — организация получает готовый документ для регулятора без единой ручной правки.
  • Настроил автоматическую отправку отчётов по email через Spring Mail: HTML-письмо с резюме угроз, DOCX во вложении, шаблонизация через Thymeleaf, retry при временной недоступности SMTP.
  • Реализовал двухфакторную аутентификацию: TOTP через Google Authenticator (RFC 6238), QR-код для первичной привязки, graceful period для смены устройства, audit log всех попыток входа — доступ к данным ПДн защищён вторым фактором у всех пользователей.
  • Покрыл бизнес-логику модульными и интеграционными тестами: 118 параметризованных кейсов по матрице ФСТЭК, интеграционные тесты с реальной PostgreSQL через Testcontainers, проверка содержимого DOCX через Apache POI — coverage 79%, ни одного бага в логике угроз после релиза.
  • Спроектировал схему БД через jOOQ: типобезопасные DSL-запросы, миграции через Flyway с откатными скриптами — схема прошла 14 миграций без единого инцидента с потерей данных.
  • Java 17
  • Spring Boot 3
  • PostgreSQL
  • jOOQ
  • Flyway
  • Docker

Платформа для поиска контрагентов

Backend Developer07.2021 — 08.2022

B2B-платформа для поиска и установления деловых контактов между организациями: поставщиками, подрядчиками и инвесторами. Ключевое техническое требование — интеллектуальный полнотекстовый поиск с поддержкой нечёткого соответствия, устойчивый к опечаткам, сокращениям и вариативности написания. Проект реализован с нуля, что обеспечило полное участие в выборе архитектурных решений и технологического стека

Команда: 1 Business Analyst, 1 System Analyst, 1 Data Analyst, 2 Backend Developers, 2 Frontend Developers, 1 QA Engineer

  • Разработал полнотекстовый поиск с нечётким соответствием на PostgreSQL: триграммный индекс (pg_trgm) для fuzzy-матчинга, GiST-индексы для ускорения по сходству, tsvector + tsquery для лексемного поиска по русскому тексту — результаты за 80–120 мс на таблице с 500k контрагентов.
  • Добавил векторный поиск по семантической близости: sentence embeddings через ruBERT, хранение в pgvector, гибридный скоринг (полнотекстовый + семантический с весами) — система находит релевантных контрагентов, даже если пользователь описывает деятельность своими словами.
  • Реализовал автоисправление опечаток: словарь с частотами, алгоритм Дамерау–Левенштейна для генерации кандидатов, suggest-блок над результатами — пользователи с опечатками всё равно получают результат вместо пустой страницы.
  • Участвовал в архитектурных решениях: обосновал выбор PostgreSQL + pg_trgm вместо отдельного Elasticsearch (меньше инфраструктуры при достаточной производительности на данном объёме), выбрал OpenShift по требованиям заказчика к изоляции.
  • Провёл нагрузочное тестирование через Gatling: симуляция 500 одновременных запросов, профилирование через EXPLAIN ANALYZE, тюнинг work_mem и effective_cache_size — p95 latency при пиковой нагрузке не превышает 300 мс.
  • Выстроил прямую коммуникацию с заказчиком: еженедельные демо, фиксация требований через user stories в Confluence, оперативное согласование изменений в ранжировании — ни одного «не то, что хотели» за 13 месяцев.
  • Покрыл поисковую логику интеграционными тестами: 85 сценариев с реальными данными (опечатки, синонимы, частичные совпадения, кириллица + латиница), прогон в Jenkins CI — регрессии в ранжировании видны сразу при мерже.
  • Java 17
  • Spring Framework
  • PostgreSQL
  • Flyway
  • jOOQ
  • OpenShift
  • Jenkins
  • Maven

Сервис шаблонного создания и хранения резюме

Backend Developer02.2021 — 07.2021

Внутренний корпоративный инструмент для формирования и хранения резюме сотрудников на основе унифицированных шаблонов. Система предоставляет HR-специалистам и менеджерам проектов возможность создавать, редактировать и экспортировать актуальные резюме без привлечения разработчиков. Реализована в виде монолитного приложения с разграничением прав доступа, версионированием и генерацией документов в формате PDF.

Команда: 1 System Analyst, 2 Backend Developers, 1 Frontend Developer, 1 QA Engineer

  • Реализовал систему авторизации на Spring Security + JWT: регистрация с подтверждением email, хранение refresh-токенов в PostgreSQL с TTL и ротацией при каждом обновлении, чёрный список отозванных токенов — защита данных без избыточной сложности для внутреннего инструмента.
  • Разработал движок шаблонов резюме: JSON-схема для описания структуры, рендеринг через Thymeleaf в HTML, конвертация в PDF через Flying Saucer — HR может создать новый корпоративный шаблон без участия разработчика, меняя только JSON-конфигурацию.
  • Реализовал полный CRUD с валидацией через Bean Validation, пагинацией в Spring Data и оптимистичной блокировкой для предотвращения конфликтов при одновременном редактировании — основа, на которую надстраивался весь функционал.
  • Принимал активное участие в обсуждении архитектуры: предложил Hibernate JPA вместо JDBC-шаблонов для ускорения разработки, обосновал Liquibase для миграций с учётом роста команды — решения прижились и не потребовали пересмотра.
  • Задокументировал REST API через Swagger/OpenAPI с примерами запросов, ответов и кодами ошибок — frontend-разработчик интегрировался с API за день без единого вопроса к backend.
  • Java 17
  • Spring Framework
  • PostgreSQL
  • Hibernate JPA
  • Liquibase
  • Maven

Заявка

Запросить этого специалиста

Пришлём полное CV и предложим дату старта. Если профиль уже занят — подберём равнозначного.

Все специалисты

Ответим в течение рабочего дня (Пн–Пт, 10:00–19:00 МСК). Менеджер на связи по телефону, почте и в мессенджерах — пишите там, где удобно.