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: слияние файлов, выгрузка и загрузка переводов.
- Занимался SEO-улучшениями сайтов.
Стек: 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