RU · EN

Евгений Уваров

Senior backend-разработчик · Python

Санкт-Петербург · удалённо, гибрид или офис · готов к переезду

Backend-разработчик, 10+ лет коммерческой разработки на Python, последние четыре года — платежи и финтех. Обычно веду сервис от первого коммита до прода и дальше: контракт API, код, деплой, мониторинг, разбор инцидентов.

Важным считаю скучные вещи: идемпотентные миграции, интеграции, которые не ломаются, логи и трейсы, по которым можно разобраться, и деплойменты без последствий для пользователей.

Опыт работы

Life Pay / Fortis · июль 2022 — н. в.

Backend-разработчик · финтех для малого и среднего бизнеса в России: эквайринг, СБП, онлайн-кассы

Fortis (MENA): self-service мерчантов · 2024 — н. в.

  • Self-service онбординг. Веб-портал, где мерчант регистрируется сам; шаги регистрации оркестрируются в Temporal. Написал значительную часть workflow с компенсациями и идемпотентными повторами, сделал страницу-реестр workflows с JSON-схемами входа и выхода.
  • Авторизация. Кастомизация Keycloak: вход через token exchange, magic link, OTP и Sign in with Google, многоуровневая защита от брутфорса. Написал сервис-адаптер к Keycloak на FastAPI, сделал авторизацию Public API по API-ключам.
  • Тарифы и подписки. Разрабатывал платформу тарифов и подписок от первой сборки в AWS до прода в 2025 году, в 2026 году сделал биллинг и аддоны. Спроектировал и написал с нуля шлюз тарифных прав для POS-кассы и проверял его «в тени» на боевом трафике: зеркалирование запросов, расхождения с BFF в Prometheus и Grafana, chaos-тест отказа.
  • Файлы и KYC. Написал с нуля файловый сервис и вывел его в прод за 5 месяцев: хранение в S3, ресайз и трансформации изображений на лету, фоновая нарезка вариантов, HEIC, WebP и PDF. Спроектировал модель данных KYC и сделал сервис загрузки документов.
  • Кабинет мерчанта. Написал с нуля dashboard-сервис личного кабинета и сервис обогащения тикетов Zendesk.
  • HubSpot. Сделал онбординг мерчанта из сделки в CRM и выгрузку в HubSpot метрик использования AI-ассистента и портала. Для платёжных ссылок из сделок доработал адаптер MyFatoorah: несколько аккаунтов с изоляцией по домену.
  • Инженерная база. Вместе с командой внедрили линтеры, pre-commit, CODEOWNERS и SonarQube примерно на 15 проектах, сквозную трассировку, включая Temporal-воркеры, Sentry environments и Prometheus-метрики для on-call. Сделал Ansible-конфигуратор секретов Vault для disaster recovery. Для части сервисов писал OpenAPI-спецификации, в API-first сервисах покрывал контракты тестами на Schemathesis.

AI в разработке · 2025 — н. в.

  • Сделал для AI-ассистента мерчанта Telegram-интерфейс (OIDC через Keycloak, сессии в Redis, SSE-стриминг) и слой данных за инструментом LLM: слой выбирает источник и отдаёт данные в едином формате. При переносе ассистента на отдельный контур с другими требованиями к размещению данных подключил новые BFF и доработал инфраструктуру.
  • Исследовал AI-ревью MR: завёл тестовый MR с намеренными ошибками и сравнил на нём qodo, kodus и свой прототип на локальных моделях. Платные агенты пропускали ошибки и давали разный результат от прогона к прогону, поэтому предложил связку статанализа и параллельной проверки кусков diff.
  • Около года разрабатываю с Claude Code, до этого — Cursor. Перевёл свой сетап на провайдер-агностичный: правила, навыки, MCP и права живут в одном источнике (AGENTS.md), из которого генератор с тестами собирает конфиги для Claude Code и opencode. Замерил расход токенов по 17 сессиям и перестроил работу: чтение кода в субагентах, хуки передачи дел между сессиями, свой учёт расхода.

Life Pay (РФ): интернет-эквайринг · 2022 — 2025

  • Около 2,5 лет вёл систему платёжных ссылок и Telegram-бот СБП как первый автор: API v1 и v2, клиентская библиотека, мультитенантность, админка, метрики, поддержка, квартальные задачи направления.
  • Написал с нуля сервис, который ретранслирует карточные транзакции в единый личный кабинет через Kafka: от схем сообщений до прода, с DLQ.
  • Спланировал и провёл миграцию бэк-офиса с Python 2 и PHP на Python 3 и актуальный Django, включая перевод миграций с SQL на Alembic, а затем на Django-миграции.
  • В сервисе платёжных шлюзов сделал интеграцию Yandex Split (BNPL), а для подготовки выхода на рынок MENA — первую интеграцию MyFatoorah: возвраты, проверка подписи вебхуков, мультивалютность, рекуррентные платежи.
  • В платёжном ядре сделал обработку двухстадийных платежей (холд, подтверждение, отмена) и запрет повторной оплаты уже оплаченного заказа, в бэк-офисе — проверку статусов транзакций и их выравнивание при расхождениях сверки.
  • Нашёл причины и исправил: зависание 3DS, ложные уведомления об оплате, дубли заказов из-за превью-ботов мессенджеров.

Команда и процессы

  • Проводил технические интервью при найме.
  • Периодически брал на себя часть задач руководителя: планирование спринтов, релизы, ведение проектов.

Стек: Python, FastAPI, Flask, Django, SQLAlchemy, Temporal, Keycloak, PostgreSQL, Redis, Kafka, S3, Kubernetes (EKS), GitLab CI, Vault, OpenTelemetry, Sentry, Prometheus, Grafana

EPAM Systems · январь 2021 — июнь 2022 (1 год 6 мес.)

Senior software engineer · Санкт-Петербург

  • Разработал и запустил с нуля портал поиска и метаданных для заказчика: REST API на Django и FastAPI, поиск на Elasticsearch.
  • Сделал микросервисы на AWS (ECS, Lambda, SQS, S3) и ETL-пайплайны на AWS Glue и PySpark.
  • Вёл backend-часть всех фич проекта.
  • Внедрил в команде юнит-тесты и проверку стиля кода (pytest, flake8), ускорил сборку и деплой. Инфраструктура — на Terraform.
  • Занимался менторингом и обучением стажёров и junior-разработчиков.

Стек: Python, Django, FastAPI, SQLAlchemy, PySpark, PostgreSQL, Elasticsearch, AWS (ECS, Lambda, SQS, S3, Glue, Athena), Terraform

JetBrains · июнь 2019 — декабрь 2020 (1 год 7 мес.)

Backend-разработчик · Санкт-Петербург

  • Поддерживал backend jetbrains.com и сателлитных сайтов на Django и Jinja: рефакторинг, юнит-тесты.
  • Перевёл обработку отправки форм на асинхронный пайплайн в AWS (SQS, S3, Lambda) на Kotlin.
  • Отвечал за инфраструктуру и CI/CD: Terraform, TeamCity.
  • Проводил нагрузочное тестирование backend сайта в Apache JMeter.
  • Переработал интеграции с Zendesk и Marketo, помогал с интеграцией Crowdin: слияние файлов, выгрузка и загрузка переводов.

Стек: Python, Django, Jinja, Kotlin, JavaScript, AWS, Terraform, TeamCity

RAWG.io · август 2018 — май 2019 (10 мес.)

Backend-разработчик · удалённо · сервис рекомендаций видеоигр, «IMDb для игр»

  • Backend пользовательского контента и рекомендательной системы на user-based коллаборативной фильтрации: Django, PostgreSQL, Redis.
  • Поиск и фильтры на Elasticsearch и полнотекстовом поиске PostgreSQL, топ-100 в реальном времени.

Стек: Python, DRF, PostgreSQL, Celery, Elasticsearch, RabbitMQ, Docker

GOST-group · июнь 2016 — август 2018 (2 года 3 мес.)

Python-разработчик · Москва

  • Разрабатывал веб-приложения на Django и Tornado: формы и аналитика данных, админка для обработки геоданных.
  • Написал сервис на Go для разбора бинарных данных с реальных объектов.

Стек: Python, Django, Tornado, Go, PostgreSQL, Redis, Celery

Навыки

Языки
Python, SQL; немного Go и Kotlin
Backend
FastAPI, Django / DRF, Flask, SQLAlchemy + Alembic, pydantic, Celery, Temporal
Платежи
интернет-эквайринг, СБП, 3DS, двухстадийные платежи, возвраты и рекуррентные платежи, BNPL, вебхуки с проверкой подписи, сверка статусов транзакций, идемпотентность
Данные
PostgreSQL, Redis, Kafka, Elasticsearch, S3
Авторизация
Keycloak, OIDC, JWT, OTP
Инфраструктура
Kubernetes, Docker, GitLab CI, Terraform, Vault, AWS
Observability
OpenTelemetry, Sentry, Prometheus, Grafana
Тестирование
pytest, Schemathesis, SonarQube
AI-разработка
Claude Code, MCP, субагенты, opencode, локальные модели (Ollama)

Образование

Академия социального управления, Москва, 2006 — 2011
Государственное и муниципальное управление

Языки

Русский — родной
Английский — B2