Обо мне

Всерьез увлекся разработкой в 2014: Python и Angular. В 2015 перешел на Java/Spring и Kotlin. Осенью 2017 года попал на стажировку в Surf, где мне очень пригодился опыт, полученный от pet-project'ов.

Довольно много знаю из сферы devops, даже доводилось админить физический Kubernetes/Ceph-кластер, но работу чисто в роли devops-инженера не рассматриваю.

Очень люблю Kotlin, но понимаю, что в серверной разработке он все еще редкость. Поэтому вполне готов к "дауншифтингу" на Java: в конце концов, это одна экосистема.

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


Профессиональные навыки
Участие в профессиональных сообществах
Опыт работы
Российская IT-компания, оказывающая услуги по разработке и внедрению программного обеспечения для Сбербанка России
Старший эксперт по технологиям
Май 2020 — По настоящее время (6 месяцев)
Первый российский банк с японским капиталом
Главный разработчик
Июль 2019 — Май 2020 (11 месяцев)

Разработка нового ДБО для физлиц. Стек: Spring Boot, Kotlin, Coroutines, WebFlux, R2DBC, PostgreSQL, Kafka, Kubernetes, OKD.

Фактически выполнял роль техлида в команде из 8 разработчиков, пытаясь выстроить унифицированную, событийно-ориентированную архитектуру сервисов и их взаимодействия между собой и с мастер-системами (Terrasoft CRM, АБС Инверсия XXI век, процессинг Compass Plus).

За прошедшие 9 месяцев удалось сделать очень многое:

* Выработать единые стандарты написания кода, внедрить трейсинг (Zipkin) и адекватное логирование запросов с поддержкой маскирования критичной информации.
* Начать переход на событийно-ориентированную модель взаимодействия с мастер-системами, где это возможно.
* Разделить приватный и публичный API при помощи реализации паттерна API Gateway
* Написать с десяток новых сервисов, реализующих систему быстрых платежей, поддержку токенизации (Google Pay), управление доверенными лицами в семейном пакете, единую платформу уведомлений и подтверждения операций.
* Переписать некоторые критичные сервисы на новую архитектуру, включая сервисы регистрации/авторизации, подтверждения операций.
* Интегрировать новую платформу уведомлений, поддерживающую отчеты о доставке sms/push, с мастер-системами, сократив более чем вдвое расходы на смс.

Создаем удобную финансовую экосистему. Рушим стереотипы о банковских продуктах, делая их понятными и приятными
Kotlin/Spring Backend Developer
Февраль 2019 — Июль 2019 (6 месяцев)

Изначально пришел сюда за новым опытом и работой в команде с более опытными людьми, а в итоге - написал с нуля два сервиса за полгода.

Первый - инструмент, занимающийся построением временных рядов (метрик в стиле prometheus'а) в реалтайме на основе потока логов из Kafka (~300 мбит/с). Полученные данные отрисовывались в Grafana, аггрегировались в соответствии с развесистыми правилами и анализировались при помощи ML-моделей и stability index. Ну и алерты, конечно же. Стэк: Kotlin, Spring (Boot, Cloud, Data, Kafka), Kafka, PostgreSQL, Oracle DB, Kubernetes (OKD), TeamCity.

Второй проект - переписывание диспетчера, слушающего события из шины данных (IBM MQ) и прокидывающий их внутрь большой state-машины, занимающейся обработкой заявок на новые продукты. Kotlin, Spring, Oracle DB, IBM MQ.

Моб. прил. с базой ресторанов по всему миру, отзывами Посетителей, экскл. скидками и системой оплаты "кэшбэк".
Руководитель направления разработки ПО, Java/Kotlin backend developer
Май 2018 — Февраль 2019 (10 месяцев)

Поддержка существующей реализации (Python/Django/Postgres) и параллельное переписывание сервера на Kotlin/Spring + MongoDB/Elasticsearch/RabbitMQ + Angular/Typescript для внутренних интерфейсов.

Версию с новым бэкендом успешно запустили в декабре 2018, примерно спустя полгода активной разработки. Основные запросы стали работать в 2-10 раз быстрее (например поиск теперь занимает порядка 80-110ms против 700-1200ms раньше). 

Получилось примерно 25k LOC. Под капотом - активное использование Elasticsearch (n-gram search, geolocation decay functions, ранжирование по нескольким весам) и MongoDB (много разнообразных низкоуровневых запросов для обеспечения производительности и атомарности операций), большое количество инфраструктурных технологий, призванных обеспечить отказоустойчивость (Kubernetes с распределенным control plane, Weave Net, Ceph + RadosGW как замена AWS S3, кластеры MongoDB/Elasticsearch/RabbitMQ с автофейловером, CI/DI (Drone, self-hosted docker registry), Sentry, ELK-stack + Prometheus/Grafana для мониторинга и аналитики).

Для запуска платежной платформы использовался API альфа-банка (платежи привязанными картами, apple pay, google pay).

Помимо непосредственной разработки занимался проработкой бизнес-логики и координацией технической команды проекта из пяти человек.

Делаем приложения для iOS и Android, сходим с ума по технологиям
Python Backend Developer
Октябрь 2017 — Апрель 2018 (7 месяцев)

Разработка и поддержка нескольких средненагруженных проектов. Основной стек - Python/Django, postgresql, rabbitmq, celery. Есть немного aiohttp, sqlalchemy, mongodb.

Так уж сложилось, что приличное количество рабочего времени я потратил на миграцию всех серверных проектов студии на новую инфраструктуру с Docker, Kubernetes, Gitlab, ELK-стеком для аггрегации и анализа логов, Prometheus для сбора метрик, Sentry в качестве системы отслеживания ошибок.

Высшее образование
Международный университет природы, общества и человека «Дубна»
Дубна
Факультет: Институт системного анализа и управления
Январь 2018—Февраль 2020 (2 года и 1 месяц)
Воронежский государственный университет
Воронеж
Факультет: Прикладной математики, информатики и механики
Сентябрь 2017—Январь 2018 (4 месяца)