← В ленту

Портфолио

Arrival

- Некоторые общие задачи с PostgreSQL, Spring Boot и Kafka. - Я создал доставку телеметрии (географических координат) через подписки GraphQL в мобильное приложение.

Банк «Открытие»

- Интеграция с партнёрами и вендорами, поддержка и рефакторинг микросервисной архитектуры. - Удалил тонны вендорского кода, прорефакторил Spring Security часть, покрыл её тестами. - "Схлопнул" 5 микросервисов в 1 для упрощения отладки и тестирования. - Удалил привязку к вендорскому решению (реверс-инжиниринг с помощью tcpdump). - Внедрил тесты с базой с помощью testcontainers. - Настроил GC в docker registry. - Привел к общему виду механизм обработки исключений (@ExceptionHandler). - Поднял мастер-ноду дженкинса, перенес на нее таски со старой. - Поднял gitea для Spring Cloud Config. - Удалил gitea. - Внедрил Spring Cloud Gateway. - Настроил nexus. - Поддерживал кластер kubernetes. - Лидил 3 продуктовые команды разработки и онбордил новых сотрудников.

Альфа Банк

- Исправил код работы с Hazelcast, удалил ImageMagick, отказался от Kafka, удалил самописную реализацию CQRS, отрефакторил базу - разделил монотаблицу с запутанными структурами высокой степени вложенности (попытка сделать mongo на jsonb) на несколько таблиц в соответствии с бизнес сущностями. - Оптимизировал SQL запросы (рефакторил базу для создания более подходящей под большие объёмы схемы). - Написал сериализатор Spring Statemachine,сохраняющий состояние в таблицу как jsonb (дефолтный сохраняет через Kryo - затрудняет обновления версий). - Организовывал процесс деплоя вышеперечисленных доработок в прод - координировал 2 команды сопровождения и команду нагрузочного тестирования.

Скиллы

ActiveMQ
Alpine Linux
Ansible
Apache Qpid
bash
CentOS
Consul
DDD
Debian
Design Patterns
DevOps
Docker
Docker Compose
DoltDB
Elasticsearch
ELK
Fedora
Feign
Freemarker
Frontend
Git
Github Actions
Gitlab CI
Glassfish
Go
Golang
GraalVM
Gradle
Grafana
Groovy
H2
Hazelcast
Helm
Helmsman
Hibernate
Jackson
Jaeger
Java
Java Spring Framework
JAXB
JDBC
Jenkins
Jetty
Jmeter
JMS
journald
JPA
JSF
JsonPath
JUnit
k8s
Kafka
Keycloak
Kotlin
ksqlDB
Ktor
Kubernetes
Linux
Liquibase
Maven
Micrometer
Microservices
Microsoft Virtual PC 2007
Mockito
MongoDB
MySQL
Netflix DSG framework
OKD
OpenCensus
Open Metrics
OpenSearch
Openshift
OpenTelemetry
Oracle VM VirtualBox
PostgreSQL
PrimeFaces
Prometheus
Python
Qemu
RabbitMQ
Redis
Rest Assured
Rocky Linux
Spring Boot
Spring Cloud Sleuth
Spring Data JDBC
Spring Data JPA
Spring Data Mongo
Spring Data R2DBC
Spring GraphQL
Spring Rabbit
Spring Security
Spring Session
Spring Test
Spring Testing
supervisord
systemd
TDD
Terraform
Testcontainers
TestNG
Tomcat
Travis
Undertow
VMware Workstation
Vue.js
Vuetify
Webpack
WebRTC
Wildfly
XStream

Опыт работы

Старший бэкенд-разработчик
с 02.2022 - По настоящий момент |Arrival
PostgreSQL, Java Spring Framework, Spring Boot, GraphQL, Apache Kafka, Git, Kotlin
- Некоторые общие задачи с PostgreSQL, Spring Boot и Kafka. - Я создал доставку телеметрии (географических координат) через подписки GraphQL в мобильное приложение.
Ведущий разработчик
10.2020 - 02.2022 |Альфа Банк
Kotlin, Java, PostgreSQL, Kubernetes, Spring Boot, Docker, Hibernate, Junit, MongoDB
- Исправил код работы с Hazelcast, удалил ImageMagick, отказался от Kafka, удалил самописную реализацию CQRS, отрефакторил базу - разделил монотаблицу с запутанными структурами высокой степени вложенности (попытка сделать mongo на jsonb) на несколько таблиц в соответствии с бизнес сущностями. - Оптимизировал SQL запросы (рефакторил базу для создания более подходящей под большие объёмы схемы). - Написал сериализатор Spring Statemachine,сохраняющий состояние в таблицу как jsonb (дефолтный сохраняет через Kryo - затрудняет обновления версий). - Организовывал процесс деплоя вышеперечисленных доработок в прод - координировал 2 команды сопровождения и команду нагрузочного тестирования.
Старший разработчик
11.2019 - 10.2020 |BCS FinTech
MongoDB, Kubernetes, Java, Spring Boot, Apache Kafka, RabbitMQ, Junit
- Обновил MongoDB 3->4 на проде, внедрил (интеграционные) автотесты(JUnit 5, Spring Boot, Spring Test, Freemarker), вывел из эксплуатации 1 микросервис. - Сделал версионирование позиций, подобно MVCC в PostgreSQL.
Эксперт
08.2017 - 11.2019 |Банк «Открытие»
Jenkins, Java, Spring Boot, RabbitMQ, Hibernate, PostgreSQL, Bash, Junit
- Интеграция с партнёрами и вендорами, поддержка и рефакторинг микросервисной архитектуры. - Удалил тонны вендорского кода, прорефакторил Spring Security часть, покрыл её тестами. - "Схлопнул" 5 микросервисов в 1 для упрощения отладки и тестирования. - Удалил привязку к вендорскому решению (реверс-инжиниринг с помощью tcpdump). - Внедрил тесты с базой с помощью testcontainers. - Настроил GC в docker registry. - Привел к общему виду механизм обработки исключений (@ExceptionHandler). - Поднял мастер-ноду дженкинса, перенес на нее таски со старой. - Поднял gitea для Spring Cloud Config. - Удалил gitea. - Внедрил Spring Cloud Gateway. - Настроил nexus. - Поддерживал кластер kubernetes. - Лидил 3 продуктовые команды разработки и онбордил новых сотрудников.
Инженер-программист
04.2015 - 08.2017 |Altarix
Jenkins, Java, MongoDB, PostgreSQL, Python, Spring Boot, Junit
- Написание компонентов высоконагруженной платформы (отправка пушей, рассылка почты, методы работы с профилем пользователя). - Настроил Jenkins, сделал docker-compose сборки проекта, состоящего из 10 модулей, привёл в порядок gradle-скрипты, объединил эти модули в один репозиторий, js админка собирается gradle-таской gradle-node-plugin; - Внедрил интеграционные автотесты на связке Groovy + Rest Assured, установил это на Jenkins.
Программист
08.2014 - 04.2015 |ИнфоТеКС
VMware, Java
- Внедрение работы с виртуальными машинами VMware Workstation через ant-vix-tasks в тестовый фреймворк ... и последующий отказ от тасков в пользу vmrun; - Расширение функциональности тестового фреймворка для новых сценариев.

Образование

Вычислительные машины и системы
2010 - 2015
Российский технологический университет МИРЭА

Языки

АнглийскийВыше среднего