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

Java/Kotlin backend developer

Местоположение

Проживание: Россия, Москва

Возраст и стаж

Стаж: 2 года и 2 месяца

Контактная информация


Профессиональные навыки


Java • Kotlin • Java spring framework • Docker • Rabbitmq • Kubernetes • MongoDB • Elasticsearch • PostgreSQL • Python

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


Февраль 2012 —
По наст. время
(7 лет и 9 месяцев)

Хабр

@wutiarn: 1 публикация, 19 комментариев, пишет в хабы:

*nixСтандарты связи
Март 2012 —
По наст. время
(7 лет и 8 месяцев)

GitHub

@wutiarn: 9226 вкладов в 29 репозиториев, связан с языками:

KotlinPythonGoTypeScriptJavaJavaScriptHTMLShell

Опыт работы


Июль 2019 —
По наст. время
(5 месяцев)

SBI Bank

Главный разработчик в отделе сопровождения ДБО
Россия, Москва
Февраль 2019 —
Июль 2019
(6 месяцев)

Tinkoff.ru

Kotlin/Spring Backend Developer
Россия, Москва

Обязанности и достижения

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

Первый - инструмент, занимающийся построением временных рядов (метрик в стиле prometheus'а) в реалтайме на основе потока логов из Kafka (~10 млн. событий в час, ~200 мбит/с). Полученные данные отрисовывались в 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.

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

Май 2018 —
Февраль 2019
(10 месяцев)

Foodmap

Руководитель направления разработки ПО, Java/Kotlin backend developer
Россия, Москва

Обязанности и достижения

Поддержка существующей реализации (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).

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

Октябрь 2017 —
Апрель 2018
(7 месяцев)

Surf

Python Backend Developer
Россия, Воронеж

Обязанности и достижения

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

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


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


Сентябрь 2018 —
По наст. время

Международный университет природы, общества и человека «Дубна»

Институт системного анализа и управления
Россия, Дубна
Сентябрь 2017 —
Июнь 2018

Воронежский государственный университет

Прикладной математики, информатики и механики
Россия, Воронеж

О себе


Активно увлекаюсь разработкой софта с 14 лет. Начинал с Python и фронтенда (SPA на первом Angular, потом Backbone/MarionetteJS). Спустя год переехал на Java/Spring, попробовал писать под Android и на Go, а в начале 2016 открыл для себя связку Kotlin/Spring. 

Почти 4 года (до осени 2017 года) у меня не было возможности полноценно совмещать работу и учебу, так что я старался развиваться за счет pet-project’ов и довольно редкого фриланса. Это был весьма ценный опыт, который очень пригодился в реальной работе. Но указывать pet-project’ы в опыте работы счел несколько некорректным, поэтому подробности моего становления как разработчика я вынес в свой блог.

Помимо непосредстванно backend-разработки у меня довольно много опыта с devops-технологиями: Docker, Kubernetes/Rancher/Swarm, Ceph, ELK-stack/Prometheus. Но работу чисто в роли devops-инженера не рассматриваю.

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

Самое главное в компании, на мой взгляд - возможность активно развиваться, взаимодействуя и обмениваясь опытом с коллегами: код-ревью, обсуждение архитектурных решений и вот это все.