wutiarnwutiarn

Дмитрий Романов

Software Architect · Бэкенд · Разработка ПО · Ведущий (Lead)
Не ищу работу
Опыт работы: 3 года и 4 месяца
Регистрация: 23.03.2014
Последний визит: 1 день назад
Местоположение: Россия, Москва
Профессиональные навыки: Kotlin · Java · Java spring framework · Docker · Rabbitmq · Kubernetes · MongoDB · PostgreSQL · Python · Golang
Войдите, чтобы посмотреть контакты пользователя

Обо мне

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

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

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

Участие в профессиональных сообществах

Опыт работы

  • Российский универсальный коммерческий банк c государственным участием
    Москва · Более 5000 сотрудников
    Архитектор
    Июль 2020 — По настоящее время (7 месяцев)

    Разработка технологического слоя новой омниканальной платформы в ВТБ. Проектирование и реализация систем журналирования и мониторинга с SLA 99.9999%.

    Стек - Golang, Java, Kubernetes, Elastic,  Kafka, Hadoop, Prometheus, Thanos.

  • Российская IT-компания, оказывающая услуги по разработке и внедрению программного обеспечения для Сбербанка России
    Москва · Более 5000 сотрудников
    Старший эксперт по технологиям
    Май 2020 — Июль 2020 (3 месяца)

    Разрабатывал пилотный проект по адаптации платформы Сбербанка для mos.ru.

    К сожалению, ДИТ Москвы отказался от реализации проекта. Профильных задач для нашей команды в сбере не оказалось, поэтому мы в практически полном составе перешли в ВТБ.

  • Первый российский банк с японским капиталом
    Москва · От 100 до 1000 сотрудников
    Главный разработчик
    Июль 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, с мастер-системами, сократив более чем вдвое расходы на смс.

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

    Разрабатывал микросервисы, работающие в рамках системы поддержки принятия решений (BPM).

    Первый - инструмент, занимающийся построением временных рядов (метрик в стиле 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.

  • Моб. прил. с базой ресторанов по всему миру, отзывами Посетителей, экскл. скидками и системой оплаты "кэшбэк".
    Москва · От 10 до 100 сотрудников
    Руководитель направления разработки ПО, 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, сходим с ума по технологиям
    Воронеж · От 10 до 100 сотрудников
    Python Backend Developer
    Октябрь 2017 — Апрель 2018 (7 месяцев)

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

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

Высшее образование

  • Университет «Дубна»

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