Написал ряд проектов на микросервисной архитектуре с использованием Java, Maven, Gradle, Spring, Quarkus, PostgreSQL, Kafka, Docker и других технологий, в том числе в реактивном стиле. Активно изучаю все, что связано с Java и смежными технологиями.
GitHub: https://github.com/IIExpanse
Telegram: https://t.me/lExpanse
Разрабатываю CRM-систему НОТА МОДУС в составе вендора Холдинга Т1, компании НОТА.
Проанализировал и устранил 50+ дефектов, реализовал ряд доработок. Регулярно пишу код в рамках как классического императивного, так и функционального и реактивного/асинхронного стилей программирования. Параллельно выполняю задачи с разных проектов внедрения системы НОТА МОДУС.
С нуля продумал и реализовал структуру нового внутреннего сервиса для управления ресурсами.
С нуля разработал идею реализации и сам сервис для миграции данных из выгрузок внешнего источника данных в продуктовую базу. Сервис применяет для миграции транзакционную модель на базе Liquibase, способен подключаться к разным базам данных и внешним API, позволяет запускать атомарные шаги миграции в заранее определенном порядке.
Наиболее интересные задачи включают:
- Реализация многомодульного сервиса для миграции данных в продуктовую БД. Реализован функционал валидации и пересборки выгрузок в более структурированный и очищенный вид, а также сама миграция на основе программных вызовов Liquibase с обращением к внешним БД и API.
- Анализ багов BPM-процессов (Camunda BPM), связанных с асинхронным выполнением вложенных процессов (состоянием гонки между родительским и дочерним процессом).
- Анализ причин низкой производительности представлений (view), собирающих значительные объемы информации для витрин данных.
- Доработка интеграции внутренних сервисов с почтой.
- Анализ и устранение различных дефектов, включавших в себя межсервисное взаимодействие: REST, GraphQL, gRPC -запросы, а также топики Kafka, в т.ч. проблемы с коннекторами.
- Написание SQL-запросов для устранения дефектов в продуктовых данных и объединения данных с нескольких БД.
- Настройка кодогенерации из OpenAPI и GraphQL схем.
- Составление сложных запросов к БД в рамках фреймворков Criteria API, JOOQ и инструментами Spring Data.
Написал два микросервисных приложения - одно на основе сервлетов, с использованием JDBC и с покрытием тестами, другое на основе Spring в составе команды.
В рамках командного проекта выполнял функции тимлида - разработал архитектуру приложения, разбил ее на модули, составил описание API проекта и распределил задачи в команде.