Специалисты
Я имею большой опыт разработки enterprise-приложений на Java, обладаю глубокими знаниями архитектуры ПО и координации взаимодействий между системами. Успешно применяю техники декомпозиции сложных задач и эффективного планирования сроков реализации проектов. Обладаю значительным опытом проектирования высоконагруженных решений и оптимизации производительности.
Ранее активно занимался реверс-инжинирингом сетевых игр и созданием игровых серверов, что сформировало глубокое понимание принципов построения многопользовательских платформ и обработки сетевого трафика. Имею широкий спектр технических компетенций:
Java: Spring, Hibernate, Guice, Play Framework, JMS (ActiveMQ, RabbitMQ, IBM MQ), Kafka, Redis/Redisson, Camunda BPM, Reactive Programming, Jasper Reports, Keycloak, S3/CEPH/Minio, Aspose, Apache POI, KillBill, Netty, libGDX
C/C++: APR, WinAPI, POSIX API, Recast&Detour/RecastNavigation, Bullet Physics, Box2D, SDL
C#: WinForms, WPF, Unity
Графическое моделирование: UML-диаграммы, Sequence Diagrams, Activity Diagrams, BPMN
Готов решать самые амбициозные задачи с высоким уровнем профессиональной компетенции и ответственности.
Образование: 1. Российский Новый Университет (РосНОУ). Бакалавр, Прикладная математика. 2017
2. Российский Государственный Технологический Университет им. К.Э.Циолковского (МАТИ). Фундаментальная Информатика. 2012
Операционные системы - Linux, Mac OS, Windows
Языки разработки - Java (Java EE 8-10, Java SE 8-24), скриптовые языки (Bash, Shell, CMD, Powershell), SQL, PL/SQL, C, C++, C#, Kotlin
Фреймворки и библиотеки - Spring Core, Spring DI/IoC, Spring Boot, Spring Data JPA, Spring Data JDBC, Hibernate, Hikari Connection Pool, Spring Security, Spring AOP, Spring Transactional, Log4j, Spring Cloud (Open Feign), Spring Streams, Spring Kafka Streams, Spring Doc, OpenAPI/Swagger, Flyway, Liquibase, Lombok, Mapstruct, Java Core, Concurrency, Guice, Play Framework, Reactive, Jasper Reports, Aspose, KillBill, Netty, libGDX, Apache POI
СУБД - PostgreSQL, MariaDB (MySQL), Oracle, Hive/Greenplum, MongoDB, Redis
Тестирование - Spring Test, AssertJ, JUnit5, Testcontainers, Mockito (Mock&Stub), Podam. Unit-тестирование, интеграционное тестирование
Контроль версий Git (Github, Gitlab, Bitbucket)
Архитектура Микросервисы, Монолит (модульный монолит). DDD, AAA, EDA. Архитектурные шаблоны (Saga, CDC, CQRS, Template, Outbox). Проектирование архитектуры приложений. Проектирование высоконагруженных сервисов. ALM.
Инфраструктура Gitlab CI/CD, Github actions, Docker, K8s (Kubernetes), Grafana, Prometheus, Graylog, ELK Stack (Elasticsearch, Logstash, Kibana), Filebeat, FluentBit, Jaeger, Zipkin, Graylog, Loki
Технологический стек Общие: шаблоны проектирования (GoF), алгоритмы и структуры данных. O(n), Clean Code, владение принципами ООП, организация отказоустойчивости, Cloud Ready архитектура.
Безопасность: Keycloak, OAuth2, JWT, OWASP, CORS, CSRF, SSO.
JVM, JRE, JDK
Очереди: Kafka, RabbitMQ,ActiveMQ, IBM MQ
Кэширование: Redis/Redisson
Протоколы: HTTP/REST, WebSocket, gRPC, SOAP, GraphQL
Хранилища: S3, CEPH, Minio
Облачные технологии: Google APIs, Cloudflare, AWS, Yandex Cloud, Selectel Cloud
Нотации: BPMN, UML, C4
Оркестратор бизнес-процессов: Camunda
Управление проектами - Atlassian Jira, Confluence, Trello. Agile Scrum/Kanban
Система расчета рейтингов и рисков
Роль в проекте Старший Java-разработчик Цель проекта Разработка системы формирования индивидуального банковского портфеля на основании детального анализа риск-профиля клиента банка, его финансовых целей и актуальной рыночной обстановки. Программа выполняет глубокий многоуровневый анализ поступающих данных и предлагает клиентам индивидуальные рекомендации, позволяющие учитывать личные потребности каждого клиента и динамику рынка. Архитектура ● Микросервисная ● Backend: Java 21, Spring Framework, Kotlin ● Frontend: JavaScript, TypeScript ● СУБД: PostgreSQL, Greenplum, Redis ● Взаимодействие: REST, GraphQL, WebSocket ● Kafka / RabbitMQ ● Модели расчета: Python/R Непосредственные задачи ● Создал графовые запросы и мутации на GraphQL для выборки и изменения сложных структурированных данных клиентов и банковских продуктов. ● Реализовал механизмы веб-сокетов (WebSocket) для предоставления пользователям обновлений состояния портфелей и рекомендаций в режиме реального времени. ● Интегрировал систему с внешней платформой для проверки кредитоспособности. ● Реализовал хранение исторических данных по пользователей в ClickHouse, оптимизировал схемы хранения и создал агрегационные индексы. ● Создал сервис агрегирования финансовой отчетности, интегрирующийся со сторонними системами. ● Оптимизировал работу критически важных компонентов инфраструктуры, сократив среднее время отклика сервиса с 150 мс до менее 50 мс за счет перехода на использование управляемого кеша Redis. ● Автоматизировал процессы сборки и деплоймента микросервисов с использованием Docker, Kubernetes и GitLab CI/CD. ● Написал исчерпывающий набор unit-тестов с покрытием всех ключевых бизнес-функций, увеличив тестовое покрытие до 90% и снизив число багов в релизе на 40%. ● Провел аудит производительности БД, реализовал схему миграции на ClickHouse и уменьшил объем хранимых данных в PostgreSQL на 60%. Административные задачи: ● Руководил подкомандой из 5 java-разработчиков. ● Организовал обучение сотрудников работе с новыми технологиями, повысил общий уровень квалификации команды, позволив быстрее адаптироваться к новым требованиям разработки. ● Оценивал задачи, проводил демо, код-ревью и онбординг новых сотрудников в проект. Состав команды Руководитель проекта, стейкхолдеры, 15 backend-разработчиков, 7 frontend-разработчиков, 8 QA, 6 аналитиков, 1 DevOps
Java 11/21, Spring Framework, Spring Transactional, Spring Data JPA, Kafka / RabbitMQ, PostgreSQL, ClickHouse, Redis, HTTP/REST, Open API (Swagger), Spring MVC, Spring test, Collection API, Liquibase, GraphQL, WebSockets, Docker, Kubernetes, GitLab CI/CD, Jenkins, ELK Stack, Prometheus, Grafana, Scrum, Jira
25 месяцев
Система противодействия мошенникам (банковский антифрод)»
Роль в проекте Старший Java разработчик Цель проекта Разработка комплекса мер для предотвращения и оперативного выявления мошеннических действий внутри финансовой инфраструктуры банка. Система предназначена для круглосуточного мониторинга и детекции рисков мошенничества в ходе совершения финансовых операций клиентами и партнерами банка. Система интегрирована с внутренними базами данных банка и сторонними источниками информации (черные списки, государственные регистры и кредитные бюро), обеспечивая разнообразную проверку подлинности операций и выявление подозрительного поведения. Архитектура Бэкенд на Java Основные функциональные модули системы включают: ● Модуль оценки риска: рассчитывает вероятность мошенничества на основе большого объема исторических данных, включая поведение клиента, тип операции, сумму и регион транзакции. ● Географический фильтр: контроль над соответствием местоположения пользователя IP-геоданным, профилю клиента и предыдущему опыту транзакций. ● Анализ временных рядов: продвинутые алгоритмы Machine Learning для обнаружения аномалий в поведении клиентов и предсказания возможных попыток мошенничества. ● Механизм идентификации пользователя: строгая многоступенчатая процедура аутентификации с применением токенов, биометрии и уникальных идентификаторов для повышения уровня защищенности. ● Автоматическое управление транзакциями: автоматическая реакция на обнаруженные угрозы, вплоть до временного приостановления подозрительных операций или полного ограничения доступа к счету. ● Постоянное обновление правил и критериев оценки риска посредством регулярных проверок исторических данных и тестирования новых гипотез. ● API-интерфейсы интеграции: интеграция с системами третьих лиц, такими как правоохранительные органы и партнеры по обработке данных для обеспечения высокого уровня прозрачности и согласованной борьбы с мошенничеством. Непосредственные задачи Разработал модуль расчета статистических показателей для каждого платежа, позволяющий выделять аномальные транзакции и оценивать уровень риска на основе исторически накопленных данных клиентов и рынка. ● Создал механизм фильтрации операций по геоданным, включающий проверку соответствия региона осуществления сделки региону проживания клиента, истории активности и возможным страновым зонам повышенного риска. ● Разработал классификатор операций («красная», «желтая», «зеленая»), учитывающий историю операций, частоту и характер платежей, поведенческие характеристики пользователей и выдающий рекомендованное решение. ● Оптимизировал аутентификацию, внедрив многоуровневую верификацию с использованием двухфакторной аутентификации (SMS, push-уведомления) и протокол анализа устройства клиента (IP, браузер, ОС). ● Реализовал механизмы параллельной обработки больших объемов данных для быстрого обнаружения аномальных моделей поведения, улучшения производительности анализа временных рядов и снижения количества ложноположительных сигналов. ● Внедрил ML модели для автоматического выявления новых видов мошенничества, основанных на анализе корреляций данных, структурированных и неструктурированных объектов, профилей пользователей и паттернов поведения. ● Реализовал инструменты для автоматической сегментации сообщений, индексирования поступающих заявок и последующей автоматической классификации подозрительной активности, помогающей специалистам анализировать объемы данных быстрее и эффективнее. ● Регулярно проводил оценку точности предиктивных моделей, оптимизировал показатели True Positive Rate (TPR) и False Positive Rate (FPR), минимизируя убытки банка от ошибочных отказов клиентам. ● Интегрировал API-антифрод-систем с сервисами партнеров. ● Участвовал в разработке функционала передачи сигнала специалистам службы безопасности банка и автоматизации этапов принятия решений относительно блокировки счетов и операций, оптимизации ручного вмешательства и сокращения сроков реакции на тревожные события. Состав команды Владелец продукта, руководитель проекта, 3 аналитика, 2 архитектора, 2 старших java разработчика, 9 backend разработчиков,3 QA, 2 AQA, 2 ИБ, 2 DevOps, 1 DBA, 2 ML-инженера, 2 техписа, 1 менеджер релизов
Java, Spring Boot, Hibernate / JPA, Kafka, PostgreSQL, Redis, RabbitMQ, Docker, Kubernetes, Prometheus / Grafana, ELK Stack (Elasticsearch, Logstash, Kibana), GitLab CI/CD, Kafka Streams, Airflow, ActiveMQ, AWS, Ansible / Terraform
30 месяцев
Универсальная интеграционная платформа банка
Роль в проекте Старший Java-разработчик Цель проекта Разработка и внедрение высоконагруженной интеграционной платформы для финтеха, обеспечивающей унифицированную обработку запросов и взаимодействие между внутренними сервисами и сторонними системами. Реализован интеграционный шлюз с поддержкой множества протоколов и форматов данных, обеспечивая масштабируемость, надежность и безопасность транзакций. Платформа поддерживает микросервисную архитектуру, API-шлюзы, очереди сообщений и асинхронную обработку данных. Решение внедрено в крупном финансовом учреждении, что существенно улучшило производительность и стабильность интеграции клиентских сервисов. Архитектура ● Микросервисная ● Бэкенд на Java, Spring Boot ● Фронтенд на React.js ● API Gateway ● Взаимодействие: RESTful API, GraphQL ● СУБД: PostgreSQL, MySQL, MongoDB. Redis для кэширования ● Data Lake: Hadoop ● Обмен сообщениями: Kafka, RabbitMQ ● Контейнеризация: Docker, Kubernetes для оркестрации Непосредственные задачи Участвовал в проектировании архитектуры сервиса, включая интеграцию с банками и процессинговыми центрами. ● Разработал новый микросервис, отвечающий за передачу платежей внешним платежным провайдерам, выполнил интеграцию с несколькими банковскими системами и платёжными платформами. ● Провёл рефакторинг схемы базы данных для повышения эффективности операций чтения-записи. Были добавлены механизмы кэширования часто запрашиваемых данных в распределённой памяти и организована схема балансировки нагрузки с использованием Hazelcast. ● Спроектировал новые шаблоны рассылки сообщений с возможностью кастомизации содержимого писем и уведомлений. Разработал правила автоматического повторения попыток отправки сообщений при сбоях. ● Разработал систему профилирования и анализа узких мест с использованием инструментов для сбора метрик и построения дашбордов в Grafana. ● Написал обработчики входящих и исходящих запросов, обработку ошибок и исключительных ситуаций. ● Написал интеграционные тесты для проверки взаимодействия с внешними сервисами. Состав команды Общая команда более 50 человек, рабочая группа состоит из 8-10 человек. В каждой рабочей группе 1 тимлид, 2-3 аналитика, 2-4 java-разработчика, frontend-разработчик. Есть отдельная команда DevOps, QA, 1 архитектор решений
Java 11, Spring Boot, PostgreSQL, MySQL, MongoDB, Redis, Hazelcast, GraphQL, gRPC, HTTP/REST, Kafka, RabbitMQ, Micrometer, Prometheus, Grafana, Hadoop, Docker, Kubernetes
Конструктор бизнес-процессов банка
Роль в проекте Java разработчик Цель проекта Разработка приложения для автоматизации банковских бизнес-процессов на платформе Camunda Platform 8. Создание механизмов автоматического выбора бизнес-процесса в зависимости от типа входящего запроса, интеграции с системой единого входа (SSO). Разработка системы управления версиями бизнес-процессов и их состояний, включающую хранение, редактирование и проверку валидности процессов перед выполнением. Проект позволил банку значительно повысить эффективность внутренних операций благодаря унифицированной обработке и мониторингу бизнес-процессов Архитектура ● Микросервисная. ● Бэкенд на Java 17, Spring Boot. ● СУБД PostgreSQL. ● Взаимодействие через Kafka, Rabbit MQ, REST API. ● Автоматизация бизнес-процессов: Camunda Platform 8. Непосредственные задачи ● Реализовал RabbitMQ коннектор для отправки сообщений в очереди из BPMN процесса. ● Реализовал kafka коннектор для отправки эвентов в kafka-топики из BPMN процесса. ● Реализовал кастомный HTTP коннектор, дополнил логикой обогащения запросов пользовательских данных для передачи в сервисы компании. ● Разработал и реализовал механизм автоматического определения запуска процесса, исходя из источника запроса на запуск процесса. ● Доработал существующие коннекторы для поддержки передачи трассировочной информации в заголовках (traceparent). ● Доработал security компоненты для работы с SSO. ● Реализовал кастомное решение для работы с пользовательскими задачами. ● Реализовал функционал хранения, редактирования состояния бизнес-процессов и их валидацию (проверка возможности компиляции) на стороне бэкэнда. ● Реализовал версионность бизнес-процессов для возможности быстрого отката изменений в случае необходимости. ● Участвовал в проектировании и реализации системы бизнес-логирования выполняемых процессов. Состав команды Руководитель проекта, 3 Java-разработчика, 2 QA (ручной + авто), 1 аналитик, 1 DevOps, 1 архитектор
Java 17, Spring Boot, PostgreSQL, Camunda Platform 8, Kafka, Rabbit MQ, HTTP/HTTPS, Log4j, FileBeat, SSO, BPMN
32 месяца
Биллинговая система
Роль в проекте Java разработчик Цель проекта Биллинговая система для автоматизации управления подписками на продукты и сервисы компании. Она позволяет клиентам самостоятельно оформлять подписки, оплачивать их и получать доступ к сервисам. Система управляет продуктовым каталогом, моделями ценообразования, политикой приостановки сервисов, балансами и т.д., также обеспечивает генерацию сопроводительной документации и масштабирование продаж. Архитектура ● Основная логика KillBill, расширяемая при помощи Java-плагинов ● Микросервисы (данные клиентов, уведомления и т.п.) ● Бэкенд на Java, Spring Boot ● Фронтенд на JavaScript (взаимодействие через BFF) ● СУБД PostgreSQL ● Обмен сообщениями: Kafka ● Кэширование: Redis ● Авторизации и управления пользователями: Keycloak Непосредственные задачи ● Реализовал функционал менеджера по созданию подписки для клиента. ● Разработал логику для выбора тарифа и подтверждения оплаты подписки пользователем. ● Провёл интеграции с внешними платежными сервисами. ● Добавил функционал автоматического расчета стоимости подписки на основе различных факторов (тариф, скидки, акции и т.д.). ● Разработал аналитический плагин для анализа больших объемов данных биллинга, включая агрегирование статистики по заказам и расчет KPI. ● Реализовал логику автоматической блокировки аккаунтов пользователей при достижении определенных условий (неоплата, нарушение правил пользования). ● Реализовал инструменты для настройки индивидуальных схем начисления комиссий и управления скидками для каждого клиента отдельно. ● Реализовал поддержку сценария перерасчетов, продления сроков подписки, отмены и возврата денежных средств. ● Провёл рефакторинг устаревших частей системы. ● Провёл оптимизацию скорости отклика системы с использованием кеширования (Redis) для ускорения операций чтения данных. ● Настроил мониторинг системы с помощью Prometheus и Grafana для сбора и визуализации метрик производительности. Состав команды Руководитель проекта, 2 аналитика, 5 java-разработчиков, 1 frontend-разработчик, 1 QA
Java 8 / Java 11, Spring, Hibernate, PostgreSQL, KillBill, OSGi, Shiro, Guice, WebFlux, FlyWay, PL/SQL
10 месяцев
Платформа клиринга для биржевой торговли
Java/Kotlin разработчик Цель проекта Разработка и поддержка высоконагруженной платформы клиринга для биржевой торговли. Система отвечает за расчеты между участниками торгов, обеспечение гарантий исполнения сделок и управление рисками в режиме реального времени. Архитектура ● Микросервисная ● Бэкенд на Java/Kotlin ● Фронтенд на JS, TS ● Межсервисное взаимодействие: Kafka и REST API ● СУБД PostgreSQL, Oracle ● Контейнеризация: Docker, Kubernetes для оркестрации Непосредственные задачи ● Разработал микросервис расчета обязательств участников торгов и реализовал обработку транзакций в режиме реального времени. ● Разработал и оптимизировал схемы PostgreSQL и Oracle, создавал индексы, хранимые процедуры и триггеры для обеспечения высокой скорости чтения и записи. ● Автоматизировал процесс миграции схем и данных в продакшн. ● Настроил кэширование в Redis. ● Организовал межсервисное взаимодействие посредством Apache Kafka и REST API. ● Автоматизировал процессы сборки и деплоя. ● Реализовал мониторинг состояния и производительности сервисов с помощью Prometheus и Grafana, анализ логов с помощью ELK-стека (Elasticsearch, Logstash, Kibana). ● Провёл рефакторинг legacy-кода. ● Участвовал в проектировании и реализации новых архитектурных решений, направленных на улучшение отказоустойчивости, масштабируемости и производительности платформы. ● Писал тесты, устранял узкие места и повышал эффективность использования ресурсов, проводил профилирование и оптимизацию алгоритмов и структуры данных. ● Проводил code-review. Состав команды Руководитель проекта, техлид, 1 разработчик Java/Kotlin, 5 Java разработчиков, 1 frontend-разработчик, DevOps, 2 AQA, 2 ИБ, 2 аналитика
Java, Kotlin, Spring Boot, Micronaut, PostgreSQL, Oracle, Redis, Kafka, Liquibase, HTTP/REST, Spring WebFlux, Project Reactor, Docker, Kubernetes, GitLab CI, Prometheus/Grafana, ELK-стек (Elasticsearch, Logstash, Kibana), JUnit, Testcontainers
20 месяцев
Геймдев
Java разработчик Цель проекта Разработка популярных сетевых игр, эмуляторов серверов и вспомогательных утилиты для управления ресурсами игры. Непосредственные задачи ● Разработал и поддерживал игровой бэкенд высоконагруженных онлайн-игр. ● Оптимизировал трафик сервера, обеспечивал сокращение нагрузки. ● Реализовал алгоритмы производительности, поддерживающие одновременную игру более 2000 пользователей. ● Проектировал сложные игровые механики, включая расчеты путей движения персонажей, проверку видимости объектов, оптимизацию расчетов дальних маршрутов и предиктивное движение игроков. ● Участвовал в разработке и поддержке инфраструктуры игровых серверов для многопользовательских игр. ● Работал над алгоритмами поиска пути и реализацией физических взаимодействий в игровом мире. ● Разработал инструменты для анализа и улучшения архитектуры сетевого взаимодействия. ● Получил опыт написания эффективных и масштабируемых архитектур, обеспечивающих стабильную работу системы даже при высоких нагрузках
Java