Разрабатываю программное обеспечение с 2010 года. Основной фокус на Java-разработку серверных приложений. В данный момент основной интерес представляют распределенные системы, микросервисы, NoSQL/newSQL базы данных, современные системы оркестрации (например, Kubernetes). Фанат гибких методологий разработки (Scrum, Kanban, XP).
Полный цикл разработки интернет-банка юридических лиц. Пилотный проект по интеграции совершенно нового продукта для юридических лиц совместно с ЦБ. Разработка архитектуры новых решений, разбиение смежных унаследованных сервисов на микросервисы. Планирование квартальных инкрементов продуктов, проведение собеседований для найма новых сотрудников. Внедрение стандартов качества на проекте, отслеживание метрик качества. Работа с бэклогом и техническим долгом.
Разработка программных решений для анализа сделок по управлению залоговым риском. Сбор данных из различных источников (REST, SOAP, SFTP и т.п.), публикация данных в Kafka, обработка данных, сохранение реузльтатов в БД (MySQL). Разработка API (REST, JSON) для клиентских приложений.
Технологический стэк: Scala, ZIO, Doobie, Akka-HTTP
- проектирование и разработка API для нового продукта классифайда (VAS: размещение объявления в специальной области) с использованием gRPC
- разработка механизма определения победителя в специальной маркетинговой акции при помощи YT-запроса
- перевод сервиса с устаревшей системы развертывания на современную (на базе Nomad) с применением принципов Cloud Native приложений (например, рефакторинг механизма разделения поведения приложения для тестовой и производственной среды)
Общее описание:
Разработка дилерских продуктов и сервисов монетизации классифайда Auto.ru. Совместная проработка требований с PO, формирование задач для бэклога, участие в оценке задач, полный цикл разработки US от кодирования (REST, Scala, ZIO, Kafka, gRPC, YDB newSQL), развертывания (стек HashiCorp - Nomad, Vault) до мониторинга в производственной среде (Prometheus, Grafana). Использование внутренних инструментов Яндекса для сбора аналитики (YT, ClickHouse) для маркетинговых кампаний. Работа по методологии Scrum (Planning Poker, Backlog Grooming).
- рефакторинг модели сборки проекта с выделением общей переиспользуемой родительской модели с использованием BuildManagement и Enforcer (Apache Maven), разработка Maven Archetype для генерации шаблона типичных микросервисов
- разработка Maven-плагина для интеграционных тестов с использованием Docker (позже замещено TestContainers с DockerComposeModule/SingletonContainer)
- внедрение в CI-пайплайны сканеров типичных ошибок/уязвимостей SpotBugs(+FindSecBugs) (для Kotlin - ktlint и detekt). Настройка warnings-ng для Jenkins для просмотра отчётов
- разработка TestNG/JUnit-раннера для Cucumber-тестов на базе Spring Boot (@SpringBootCucumberTestRunner)
- внедрение CheckStyle/SortPom шагов в CI-пайплайны для унификации форматирования кодовой базы
- разработка библиотеки с открытым исходным кодом для создания эмуляторов внешних серверов с бинарными протоколами (например ISO-8583 c поддержкой EBCDIC-кодировок полей) https://github.com/andreysaksonov/tcp-mocker
- рефакторинг Dockerfile с применением послойной сборки образа для уменьшения занимаемого образом места в Nexus
- внедрение понятия D-Release (опасный релиз) в релизный процесс на основе поиска изменений в ключевых файлах проекта (например, релиз включает миграцию базы данных, изменение версии библиотек платформы и т.п.)
- разработка корпоративной документации/гайдов, например Acceptance Tests Developer Guide
- тонкая настройка HealthChecks/Circuit Breakers для более наглядного отображения деградировавших компонентов в мониторинге для более быстрой обработки онлайн-инцидентов
Общее описание:
Разработка технологической платформы по подключению платежного шлюза к провайдерам платежных сервисов для POS и E-Commerce платежей. Анализ требований и спецификаций протоколов (например, ISO-8583, HSM payShield 9000), имплементация (Java, Kotlin, Spring Boot, MySQL), тестирование (BDD, Gherkin, Cucumber, CI/CD), развертывание в тестовую среду (Rancher, Kubernetes, Terraform, Atlantis, Ansible), пилотирование (A/B-тестирование, Feature Toggles, миграция с Togglz на Unleash) и поддержка 24/7 (On-Call) в производственной среде (метрики, алерты, обработка инцидентов - Prometheus, Grafana, ELK, AlertManager, Icinga, Atlassian StatusPage). Работа по методологии Scrumban (Planning Poker, Backlog Grooming, WIP Limits, ретроспективы 2-х недельных спринтов). Использование практик XP (TDD, BDD, Code Review, Pair Programming, Mob Programming).
Выдан диплом магистра с отличием по направлению подготовки 0104000 Прикладная математика и информатика
Бакалавр (с отличием) прикладной математики и информатики по направлению "Прикладная математика и информатика"