Моя карьера в IT

В IT я попал не сразу. Первую часть сознательной жизни я занимался вещами, очень далёкими от программирования. Всё изменилось в 2016 году, когда я увидел рекламу курсов по программированию, в которых уверяли, что программистом может стать каждый.

Я работаю программистом с 2017 года. За это время мне удалось поработать и в стартапе, и на галере, и в госкорпорации. Вот уже больше 3 лет я в Сбере. На данный момент, я Java Lead в СберТехе.

В IT я попал не сразу. Первую часть сознательной жизни я занимался вещами, очень далёкими от программирования. Всё изменилось в 2016 году, когда я увидел рекламу курсов по программированию, в которых уверяли, что программистом может стать каждый.

Я работаю программистом с 2017 года. За это время мне удалось поработать и в стартапе, и на галере, и в госкорпорации. Вот уже больше 3 лет я в Сбере. На данный момент, я Java Lead в СберТехе.

СберТех

Наименование

ОАО «Сбербанк-Технологии»

Время работы

с февраля 2024

Позиция

Lead Java / Kotlin Developer

.

Kotlin
Spring
OpenSearch
Kafka
GraphQL
GraphQL
GraphQL

СберТех

Наименование

ОАО «Сбербанк-Технологии»

Время работы

с февраля 2024

Позиция

Lead Java / Kotlin Developer

Проект

Platform V Flow

Обязанности

Руководство командой backend-разработки компонента управления данными процессов, наставничество, предоставление обратной связи. Управление задачами, планирование и декомпозиция задач. Ответственность за архитектуру и дизайн компонентов, подготовку технических решений, проведение Code Review.

Достижения

В предельно короткие строки реализовал компонент BPMU с нуля, в условиях постоянно меняющейся аналитики, с использованием новых новых подходов и технологий, что позволило обеспечить вывод компонента в заданные сроки; в качестве базы данных использован OpenSearch, в качестве основной архитектуры API использован GraphQL.

Первым и единственным на данный момент в кластере реализовал компонент с использованием реактивного подхода (Kotlin Coroutines / Spring Webflux), что позволило снизить утилизацию ресурсов (CPU, RAM) и позволило пройти требования нагрузочного тестирования.

Внедрил требования к качеству кода и архитектуры, в результате чего удалось получить понятный и поддерживаемый код. Это позволило сохранить стоимость строки кода в пределах, приближенных к таковой на начальном этапе разработки. Охват модульными тестами составил более 80% (были покрыты все публичные функции), что вкупе с интеграционными тестами, также написанными с нуля, позволило достичь небольшого количества багов в условиях постоянно меняющихся требований.

Выступления

Выступил на следующих митапах и конференциях:

  • WS Meetup (Ростов-На-Дону), доклад: «Как полюбить модульное тестирование: обратная сторона TDD»
  • Т.Конф (Самара), доклад: «Как полюбить модульное тестирование: обратная сторона TDD»
  • IT Community Day (Казань), доклад: «Как полюбить модульное тестирование: обратная сторона TDD»
  • Merge (Сколково), доклад: «Domain-Driven Design: пишем приложение сверху донизу»
  • Spring NOW 2025 (Санкт-Петербург), доклад: «Монополия Spring на доступ к данным: почему это не очень хорошо, и что с этим делать»
  • IT Link 2025 (Чебоксары), доклад: «Domain-Driven Design: пишем приложение сверху донизу»
  • Java Conf (Санкт-Петербург), доклад: «Оптимизация работы потоков в 2k25: почему у корутин получается лучше»
  • IT Talk By Sber 2025 (Новосибирск), доклад: «Domain-Driven Design»: боремся с плохой архитектурой»
  • Импульс Т1 (Екатеринбург), доклад: «Выжимаем максимум из потоков: как увеличить производительность приложения в 2k25″
  • IT Community Day (Рязань), доклад: «Спасаемся от Spring: есть ли альтернативы репозиторным фреймворкам?»
  • Merge Baltic 2025 (Светлогорск), доклад: «Выжимаем максимум из потоков: как увеличить производительность приложения в 2k25″

Технологический стек

Kotlin 1.9    Kotlin Coroutines   Spring Boot 3    Spring Webflux    Apache Kafka    GraphQL    OpenSearch    Gradle

Сбер

Наименование

ПАО «Сбербанк»

Время работы

март 2022 — февраль 2024

Позиция

Senior Java / Kotlin Developer

.

Сбер

Наименование

ПАО «Сбербанк»

Время работы

март 2022 — февраль 2024

Позиция

Senior Java / Kotlin Developer

Проект

Кадровый электронный документооборот

Обязанности

Разработка межсервисной архитектуры приложения, планирование и реализация сервисов. Управление задачами, планирование и декомпозиция задач, согласование решений с другими членами команды разработки. Ответственность за архитектуру и дизайн компонентов, подготовку технических решений. Проведение Code Review.

Достижения

Спроектировал межсервисную архитектуру, позволившую избежать высокой связности микросервисов, через проектирование высокоабстрактного компонента «Фасад / Посредник / Оркестратор», что обеспечило высокий уровень инкапсуляции сервисов и ускорило разработку.

Приложил значительные усилия по системной аналитике, что позволило в очень жёсткие сроки реализовать полностью рабочий MVP проекта.

Разработал и внедрил Coding Style на уровне кластера. Внедрил требования к качеству кода и архитектуры, в результате чего удалось получить понятный и поддерживаемый код. Это позволило сохранить стоимость строки кода в пределах, приближенных к таковой на начальном этапе разработки. Охват модульными тестами составил более 80% (были покрыты все публичные функции).

Выступления

Выступил на конференции Т.Конф с докладом на тему «Разработка приложения: этапы реализации от проекта до релиза», в котором были собраны практики Coding Style, ранее внедрённые на уровне кластера. Выступил на Java Meetup с тем же докладом. Выступил в TED-формате на внутренней площадке Сбера ПроТех с докладом «Жизненный цикл задачи: как быстро бесконфликтно провести задачу от замысла до реализации».

Технологический стек

Kotlin 1.8   Spring Boot 2    Jetbrains Exposed    Apache Kafka    Postgres    Gradle

Проект

Отсутствия

Обязанности

Поддержка существующего кода. Рефакторинг. Реализация новой функциональности в существующей архитектуре.

Достижения

Реализовал масштабный рефакторинг сервиса, с заменой ключевых фреймворков (Spring JDBC поменял на Jetbrains Exposed), благодаря чему стоимость строки кода упала в несколько раз, что так же в несколько раз ускорило разработку последующих фич.

Реализовал ключевые фичи сервиса, такие, как: «Календарь команды» и «Пересечения по отпускам», позволяющие планировать отпуска сотрудников с учётом отсутствий коллег.

Технологический стек

Kotlin 1.8   Spring Boot 2    Spring JDBC    Jetbrains Exposed    Apache Kafka    Postgres    Gradle

Проект

Расчётный листок

Обязанности

Разработка сервиса с нуля. Реализация логики преобразования большого объёма сырых данных в объектную модель. Реализация логики расчёта расчётных листков так, как это реализовано в бухгалтерском сервисе. Решение задач высокой нагрузки и обработки больших данных. Контроль качества кода. Code Review.

Достижения

Спроектировал «с нуля» архитектуру сервиса с учётом требований к чистой архитектуры, что позволило сохранить стоимость строки кода на уровне, соответствующем этапу старта разработки.

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

Внедрил новые для кластера решения и фреймворки, которыми команды пользуются и по сей день; доказал из состоятельность (например, Jetbrains Exposed).

Технологический стек

Kotlin 1.6   Spring Boot 2    Jetbrains Exposed    Postgres    Gradle

ДОМ.РФ

Наименование

ООО «Цифровые технологии»

Время работы

декабрь 2019 — март 2022

Позиция

Senior Java / Kotlin Developer

.

ДОМ.РФ

Наименование

ОАО «Цифровые технологии»

Время работы

декабрь 2019 — март 2022

Позиция

Senior Java / Kotlin Developer

Проект

Domoy.Ru

Обязанности

Разработка сервиса «с нуля». Реализация компонента «Ипотечный брокер» в качестве ключевого разработчика. Контроль архитектуры приложения и качества кода. Реализация компонентов: Ипотечный брокер; Банковский менеджер; Банковские адаптеры.

Достижения

Спроектировал «с нуля» архитектуру сервиса с учётом требований к чистой архитектуры, что позволило сохранить стоимость строки кода на уровне, соответствующем этапу старта разработки.

В установленные сроки выпустил в production мастер-сервис продукта, в рамках которого была реализована функциональность «Анкета заёмщика». В кратчайшие сроки разработал компоненты: «Банковский менеджер», «Генератор анкеты», «Адаптер к банку ДОМ.РФ», «Адаптер к банку Raiffeisen», «Адаптер к Росбанку», что позволило ввести продукт в production в запланированные сроки. Банковские адаптеры были реализованы на основе паттерна «Конечный автомат».

Разработал дополнительные компоненты, такие, как: «Отправка уведомлений через sms и email»; «Управление документами»; «Интеграция с продуктами Google».

Технологический стек

Java 11   Spring Boot 2    Maven    Postgres    jOOQ

Проект

МОЗУ / ЕРО

Обязанности

Разработка продуктов экосистемы «наш.дом.рф»: «Мониторинг освоения земельных участков» / «Единый реестр объектов» в команде разработчиков. Реализация фич, развитие и поддержка продукта. Контроль качества кода. Разработка сервисной архитектуры.

Достижения

Разработал и вывел в production в составе команды разработчиков сервисы «МОЗУ» / «ЕРО», а также, сопутствующие сервисы: «Сервис генерации Excel-таблиц», «Сервис трансформации земельных участков», что позволило в срок вывести социально значимый продукт в промышленную эксплуатацию.

Разработал типовую для решений команды компоновку приложений.

Технологический стек

Kotlin 1.3    Kotlin Coroutines   Spring Boot 2    Spring WebFlux    Gradle    Postgres    JetBrains Exposed    Apache POI

Проект

Электронная закладная

Обязанности

Разработка сервиса «Электронная закладная» в рамках интеграции с Росреестром. Полный рефакторинг предыдущего решения. Системная аналитика. Контроль качества кода. Обеспечение чистой архитектуры.

Достижения

В критически краткие сроки (в течение 2 недель) реализовал основной компонент сервиса «Электронная закладная», что позволило вывести социально значимый сервис в production в течение последующего месяца и сократить время обработки одной электронной закладной с 2 недель до 2 часов.

В отсутствие внятной системной аналитики принял обязанности системного аналитика.

Технологический стек

Java 8   Spring Boot 2    WebSockets    Maven    MongoDB    ActiveMQ    Apache Camel

Проект

Единый центр уведомлений

Обязанности

Разработка решения «Единый центр уведомлений» для всех продуктов компании. Реализация MVP. Разработка архитектуры решения. Контроль качества кода.

Достижения

Разработал решение «Единый центр уведомлений», позволяющее осуществлять доставку уведомлений между сервисами разными транспортными путями (WebSocket, email и проч.). Предоставил MVP решения. Защитил решение на уровне компании.

Технологический стек

Kotlin 1.3   Spring Boot 2    WebSocket    Gradle    jOOQ    Flyway    Apache Kafka    Postgres

Проект

Code Style

Обязанности

Разработка единых стандартов написания кода для backend-разработки в организации. Реализация типового сервиса, призванного служить примером реализации компонентов. Защита стандартов перед командами разработки. Контроль над внедрением стандартов в командах.

Достижения

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

Реализовал типовой сервис, являющийся примером качественного кода с чистой внутрисервисной архитектурой.

Технологический стек

Java 17   Spring Boot 2    jOOQ    Gradle    Postgres    Apache Kafka    Flyway

Доклад со Spring NOW 2025.

Выяснили, почему монополия Spring на доступ к данным — это не очень хорошо, и что с этим делать.

Performance Lab

Наименование

Performance Lab

Время работы

март 2019 — декабрь 2019

Позиция

Middle Java Developer

.

Performance Lab

Наименование

ООО «Перфоманс Лаб»

Время работы

март 2019 — декабрь 2019

Позиция

Middle Java Developer

Проект

HelpDesk

Обязанности

Руководство командой разработки высоконагруженного сервиса технической поддержки сотрудников крупного ритейлера. Ответственность за архитектуру и дизайн компонентов, подготовку технических решений. Проведение Code Review. Ответственность за вывод сервиса в production. Собеседование новых сотрудников на позиции Middle, Senior, Team Lead. Участие в ежедневных scrum-митингах лидов организации в качестве представителя направления разработки. Деплой приложений на DEV, IFT, PROD стенды. Планирование и декомпозиция задач, назначение их на членов команды.

Достижения

В короткие сроки обеспечил работоспособность сырого и проблемного продукта и вывел его в production, что позволило организации передать продукт в приемлемые сроки и избежать убытков.

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

Технологический стек

Java 11   Spring Boot 2    Spring Security    LDAP    Spring Data JPA    Flyway    H2    Postgres    Maven    Hibernate    Hazelcast

Проект

Forms

Обязанности

Реализация внутреннего проекта организации, обеспечивающего первичное тестирование соискателей в Школу Программирования.

Достижения

Разработал «с нуля» сервис тестирования соискателей в Школу Программирования. Это позволило компании в очень короткие сроки внедрить сервис заполнения форм во все необходимые внутренние продукты.

Технологический стек

Kotlin   Spring Boot 2    Spring Mail    Spring Data JPA    Flyway    Postgres    Maven    Hibernate

Проект

HelpDesk (интеграция)

Обязанности

Разработка серверной части проекта. Проектирование и разработка новой функциональности. Внесение правок, багфикс и рефакторинг существующего кода. Интеграция приложения с мастер-системой. Наставничество. Распределение задач. Code Review.

Достижения

Провёл масштабный рефакторинг существующей кодовой базы, произвёл перепроектирование архитектуры. В короткие сроки реализовал недостающие фичи. Это позволило сдать проект в допустимые сроки, несмотря на первоначальные проблемы с архитектурой и качеством кода.

Технологический стек

Java 8   Spring Boot 2    Spring Security    Spring Data JPA    Spring Cloud    Netflix Hystrix    Flyway    Postgres    Maven    Hibernate    Apache Camel    ReactJS

Столото

Наименование

АО «ТК «Центр»

Время работы

июль 2018 — март 2019

Позиция

Middle Java Developer

.

Столото

Наименование

АО «ТК «Центр»

Время работы

июль 2018 — март 2019

Позиция

Middle Java Developer

Проект

888.ru

Обязанности

Разработка и поддержка высоконагруженного сервиса 888.ru. Глубокий рефакторинг кодовой базы. Багфикс, исправление дефектов.

Достижения

Обеспечил глубокий рефакторинг компонента роутинга задач, что улучшило кодовую базу и уменьшило издержки на поддержку существующей кодовой базы и разработку новых фич. Обеспечил «переезд» на Apache Camel.

Технологический стек

Java 8   Spring Framework 5    Spring Data JPA    Apache Camel    Hibernate    ActiveMQ    Maven    MariaDB

Проект

Шлюз покупки и доставки подарочных наборов лотерей

Обязанности

Разработка сервиса «с нуля». Выбор технологий. Проектирование архитектуры, выбор архитектурных паттернов приложения. Защита архитектуры перед руководством.

Достижения

В предельно короткие сроки (1 неделя) реализовал «с нуля» сервис. Изменил предлагаемую ранее архитектуру проекта, защитил новую архитектуру, для чего, написал MVP проекта за 1 час 50 минут. Новое решение соответствовало общепринятым практикам компоновки приложения, что сделало код более понятным. Это позволило сократить дальнейшие издержки на онбординг новых разработчиков проекта.

В течение 2 недель вывел сервис в production «с нуля», что позволило организации вовремя запустить рекламную компанию и обеспечить продажи подарочных наборов лотереи.

Взял на себя обязанности неформального лидера команды, организовал работу, взял персональную ответственность за конечный результат. Это «тонизировало» членов команды и обеспечило соблюдение сроков выпуска продукта как со стороны backend, так и со стороны frontend.

Технологический стек

Java 8   Spring Boot 2    Spring Data JPA    MariaDB    Gradle    Jetty

BAK International

Наименование

BAK INTERNATIONAL LTD

Время работы

октябрь 2017 — июнь 2018

Позиция

Junior Java Developer

.

Bak International

Наименование

BAK INTERNATIONAL LTD

Время работы

октябрь 2017 — июнь 2018

Позиция

Junior Java Developer

Проект

Health Meter

Обязанности

Разработка «с нуля» фитнес-трекера, позволяющего составлять индивидуальную фитнес-программу, вести подсчёт калорий и корректировать программу в зависимости от изменения физических показателей пользователя. Интеграция сервиса в основное приложение Eliot с целью синхронизации приложения с фитнес-трекером. Проектирование архитектуры приложения. Контроль качества кода.

Достижения

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

Технологический стек

Java 8   Spring Boot 2    Spring Data JPA    Oauth 2    Apache Kafka    Hibernate    QueryDSL    Graphite

Проект

Personal Service

Обязанности

Разработка «с нуля» сервиса учёта рабочего дня персонала, включая: статистику времени прихода и ухода; статистику продолжительности рабочего дня; статистику по заказам и чаевым; перерывы между сменами; количество смен в неделю; расписание смен с учётом ТК РФ; хранение данных медицинских книжек; уведомление руководства о внеплановых выходах / прогулах. Контроль качества кода.

Достижения

В кратчайшие сроки (полтора месяца) разработал в вывел в production сервис учёта рабочего времени сотрудников, что позволило организации повысить инвестиционную привлекательность продукта и привлечь новых клиентов из числа ресторанов. Обеспечил понятный и качественный код, что позволило сократить операционные расходы на его развитие.

Технологический стек

Java 8   Spring Framework 5    Apache Kafka    Postgres    Gradle    Spring Data JPA    Hibernate    QueryDSL

Проект

Image Gallery

Обязанности

Разработка «с нуля» и в очень короткие сроки (6 недель) сервиса управления картинками. Сервис позволял управлять картинками: сохранять в файловое хранилище; изменять метаданные; помещать в Корзину; удалять.

Достижения

В кратчайшие сроки (6 недель) разработал в вывел в production сервис управления картинками, что позволило клиентам из числа подключённых ресторанов самостоятельно управлять фотографиями интерьеров и блюд. Это повысило привлекательность приложения для клиентов.

Технологический стек

Java 8   Spring Framework 5    Spring Security    MySQL    QueryDSL    Spring Data JPA    Hibernate

Проект

Message Sender

Обязанности

Доработка и развитие сервиса оповещения клиентов о событиях при помощи Push-уведомлений на их телефоны.

Достижения

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

Технологический стек

Java 8   Spring Framework 5    MySQL    QueryDSL    Spring Data JPA    Hibernate

Проект

Eliot

Обязанности

Поддержка продукта и реализация новых фич. Рефакторинг. Устранение дефектов.

Достижения

Реализовал несколько ключевых фич. Устранил некоторое количество дефектов.

Технологический стек

Java 7   Spring Framework 4    MySQL    Spring MyBatis

Мои статьи на Хабре

Domain-Driven Design: чистая архитектура снизу доверху

Test-Driven Development: как полюбить модульное тестирование

Приложение от проекта до релиза: этапы реализации

Kotlin

Java

Spring

Android

ReactJS

Kafka

Postgres

Elasticsearch

Hibernate

Gradle

Git

Docker

MySQL

Maven

Spring Boot

ActiveMQ

WebSocket

MariaDB

Apache Camel

OpenSearch

MongoDB

Exposed

GraphQL

jOOQ

Kotlin

Java

Spring

Android

Postgres

Elasticsearch

Hibernate

Gradle

MySQL

Maven

Spring Boot

ActiveMQ

Apache Camel

OpenSearch

MongoDB

Exposed

ReactJS

Kafka

Git

Docker

WebSocket

MariaDB

GraphQL

jOOQ