Senior backend-разработчик (Java/Kotlin)

Москва, Россия
Миддл • Сеньор • Тимлид/Руководитель группы
Информационные технологии • Разработка • Go • Java • Kotlin
Релокация • Удаленная работа • Частичная занятость
Опыт работы более 5 лет
от 250 000 000 ₽

Кандидат ищет работу анонимно

Есть файл резюме (защищен)
О себе

Текущий статус/должность: Senior backend-разработчик (Java/Kotlin).

Мои компетенции и опыт

СОГАЗ (Июль нужен доступ к резюме по настоящее время) - Senior backend-разработчик (Java/Kotlin)

Спроектировал и вывел в production backend двух B2B-продуктов на Java/Spring Boot. Отвечал 

за архитектуру, интеграции, разработку и эксплуатацию. Выполнял функции технического

лидера команды из 5 человек. Принимал архитектурные решения, планировал квартальные

задачи, проводил code review и менторил разработчиков.

Стек: Java 21, Spring Boot 4.x, Spring Data JDBC, Spring Data JPA, Spring MVC, PostgreSQL, Apache

Kafka

Сервис онлайн-оформление полисов (B2B киберстрахование)

- Сократил p95 latency получения QR-кода на оплату с ~20 до 1 секунды. Разделил процесс на

синхронное формирование QR и асинхронное заведение договора в учётной системе.

Использовал особенности продукта (договор офферта и автоквитование платежей) чтобы

исключить ожидание учетной системы из синхронного сценария.

- Разработал персистентный обработчик асинхронных задач на PostgreSQL. Конкурентный

захват задач через SELECT FOR UPDATE, автоматические ретраи с идемпотентностью по номеру

договора, DLQ с алертингом. Реализовал backpressure и graceful shutdown для корректной

работы под нагрузкой и при остановке сервиса.

- Спроектировал и вывел в production микросервисный backend платформы оформления

B2B-полисов на Java 21, Spring Boot 4, PostgreSQL. Реализовал оркестрацию оформления, расчёт

тарифов и формирование полисов.

- Настроил CI/CD (gitlab ci) - сборка, unit и интеграционные тесты (JUnit 5, Mockito, Testcontainers),

деплой docker образов в Kubernetes. Настроил мониторинг Prometheus/Grafana.

Личный кабинет клиента (B2B страхованию торговых кредитов)

- Спроектировал и вывел в production весь backend и контракт взаимодействия с фронтендом.

Резюме обновлено 18 октября 2026 в 23:11Управление заявками на изменение лимитов страхования, реестры договоров и контрагентов,

уведомления клиентам о решениях по заявкам.

- Интегрировал систему с внутренним андеррайтингом через Kafka и REST и справочником

контрагентов по REST.

- Организовал spec-first разработку через OpenAPI, с генерацией DTO, автоматической

валидацией контракта и структурированными ошибками.

- Предложил и внедрил SSE для уведомлений фронтенда о статусе выполнения заявок вместо

short polling

Помощник андеррайтера

Адаптировал существующую RAG систему под бота-помощника андеррайтера по страхованию

киберрисков, подготовил инфраструктуру и вывел решение в production.

 

Мобильные ТелеСистемы (МТС) (Май 2022 — Июль нужен доступ к резюме Ведущий разработчик (Java/Kotlin)

Разрабатывал сервис "МТС Все Страховки" - B2C-агрегатор страховых продуктов (ОСАГО,

ипотечное страхование и др.) с интеграциями 10 страховых компаний-партнёров. Выполнял

роль backend-разработчика в продуктовой команде. От проработки требований с бизнесом до

вывода в прод и сопровождения.

Стек: Java 17/Kotlin нужен доступ к резюме , Spring Boot 3.x, Spring Data JDBC, Spring Data R2DBC, Spring MVC, Spring

WebFlux + Kotlin Coroutines, PostgreSQL, Apache Kafka, Redis

Производительность и масштабирование:

- Снизил p95 latency критичного API мобильного приложения с ~1.5 с до 300 мс при пиковой

нагрузке >100 RPS. Для устранения конкуренции за ресурсы с основным backend выделил API в

отдельный сервис на Kotlin, Spring WebFlux, Coroutines и R2DBC с неблокирующей обработкой

запросов.

- Устранил конкуренцию аналитических и транзакционных запросов к PostgreSQL, перенеся

аналитику в ClickHouse. Реализовал отдельный сервис на Go, который собирает события

аналитики и публикует в Kafka, откуда ClickHouse забирает их через встроенный коннектор.

Полностью снял аналитическую нагрузку с основной БД и устранил связанный с ней риск

переполнения диска.

- Оптимизировал миграцию таблицы аналитических событий PostgreSQL объёмом ~200 ГБ на

~40 месячных партиций. Использовал BRIN-индекс по времени, чтобы избежать повторных full

scan исходной таблицы при переносе данных.

- Диагностировал и исправил зависание production-сервиса при резких всплесках нагрузки.

Сделал thread dump, выявил deadlock с помощью нужен доступ к резюме . Задачи занимали все потоки

пула, блокирующе ожидая выполнения вложенных задач, запущенных через тот же executor в

глубине стека.

Платежи:

- Добавил оплату через СБП и BNPL (оплата частями). Для обеспечения согласованности с

внешним платёжным шлюзом реализовал saga с компенсацией по таймауту. Настроил надёжную публикацию событий о неуспешной оплате в Kafka через transactional outbox для

последующей отправки SMS.

- Переписал модуль обработки платежей. Устранил зависимость модуля от уведомлений legacy

процессинга и разделил сценарии оплаты паттерном strategy. Новые способы оплаты

добавляются без изменения существующих сценариев. Перед рефакторингом расширил

покрытие интеграционными тестами.

Интеграции с партнёрами:

Вывел > 10 страховых продуктов. Интеграции с партнёрами строил через единый доменный

контракт (жизненный цикл заказа) и адаптер под каждого партнёра.

 

Яндекс (Июнь 2021 — Сентябрь нужен доступ к резюме Стажер-разработчик (Java/Kotlin)

Стек: Java 11, Kotlin нужен доступ к резюме , Spring Boot 2.x, Spring Data JDBC, PostgreSQL

- Разработал сервис управления метаданными мастер-данных в MDM-системе для внутренних

пользователей (Data Stewards).

- Внедрил Yandex Data Transfer для синхронизации данных между экземплярами PostgreSQL в

разных контурах, упростив тестирование на реальных данных.

- Участвовал в масштабировании MDM-системы: проводил нагрузочное тестирование нового

решения.

Кандидат ищет работу анонимно

Дополнительную информацию вы сможете получить, зарегистрировавшись в нашем сервисе



Есть файл резюме (защищен)
Кандидат ищет работу анонимно
Чтобы получить доступ к его резюме, вам нужно связаться с кандидатом и предложить вашу вакансию. Кандидат получит ваше приглашение и ответит вам, если ваше предложение его заинтересует



Интересные кандидаты