Вадим Топольский
PHP Backend Engineer · платежи, биллинг, B2B API
Пермь, Россия · удалённо
О себе
PHP-бэкендер, 9 лет в коммерческой разработке. Специализация: интеграции платёжных систем, биллинг, подписки, дистрибуция цифрового контента.
Много работал с легаси-кодом: поддерживал старый код, переводил на новые версии PHP и переписывал с Java, Ruby и Rust на PHP. Есть опыт работы в одиночку (выпуск продукта с первой строки кода до первого принятого платежа) и в команде. Пишу тесты, строю мониторинг вокруг продукта, собрал CI для 10+ репозиториев.
Навыки
- PHP
- Yii2
- MySQL
- SQL
- REST API
- Stripe
- Braintree
- PayPal
- App Store / Google Play
- Docker
- Git
- Linux
- GitHub Actions
- Codeception
- PHPStan
- Research
Опыт работы
Muse Group
09.2021 — н.в.Какие задачи решал
Пять лет в Muse Group я почти всё время занимался деньгами.
Первые два года работал на монетизации Ultimate Guitar. Делал подписки в вебе (Braintree, PayPal, Stripe) и в приложениях (App Store, Google Play): триалы, паузы, отмены, повторные списания, смену карты, Apple Pay и Google Pay. Ещё были промокоды, подарочные купоны, локальные цены по странам и серверные события подписок для аналитики.
С 2022 года строил Muse Billing. Это система, куда стекаются все платежи, возвраты, диспуты и выплаты по продуктам компании. У каждого продукта своя картина выручки, а финансам нужна одна и честная, прямо от провайдеров. Её даёт Muse Billing. Туда же я интегрировал рекламную выручку с 12 площадок.
Параллельные проекты:
- биллинг для MuseHub: платежи и выплаты мерчантам на Stripe;
- сервис конвертации файлов Finale в MuseScore;
- новый checkout Sheet Music Plus: перенёс логику с Ruby и Rust на PHP (корзина, налоги, доставка, склад, возвраты).
Последний год делал HL Connect. Это B2B API, через который музыкальные магазины продают цифровые ноты Hal Leonard. Я реализовал API, разделил окружения на sandbox и live, сделал админку и SDK. Заменил старую Java-систему с XML API своей логикой на PHP. Интегрировал систему с AS/400 и Perfion.
За что отвечал
- Muse Billing: за систему целиком, от схемы БД до того, сходятся ли цифры у финансов. Проектировал и писал один, команда подключилась позже.
- HL Connect: за всё. Архитектура, код, прод, ежедневный мониторинг, подключение партнёров и их поддержка на английском.
- Партнёры: около 15 ритейлеров и дилеров из США, Европы и Азии. Сам проводил презентации, выдавал доступы, отвечал на вопросы по API, каталогу и биллингу.
- Качество: интеграционные тесты, покрытие и PHPStan в CI в 10+ репозиториях.
- Команда: около 7 технических собеседований, адаптация новичков, 107 ревью чужих PR, дежурства по бэкенду.
Каких результатов достиг
Muse Billing
- Подключил 8 продуктов и бизнесов: Ultimate Guitar, MuseScore, MuseHub, Sheet Music Direct и другие.
- Пять провайдеров работают через общие интерфейсы. Выплаты провайдеров и рекламная выручка лежат в одном месте, финансовый отчёт строится оттуда.
- Биллинг для MuseHub прошёл путь от нуля до демо за 2 месяца.
- Stripe Payment Intents с 3DS и сохранёнными картами сделал за 4 дня.
Ultimate Guitar
- Реализовал мультиподписочную логику.
- Реализовал продажу поштучных цифровых товаров.
- Перестроил таблицу на ~1 млн строк и вынес тяжёлые кроны на реплику. Время ответа API вернулось в норму.
Sheet Music Plus
- Новую корзину сделал за 6 недель, весь checkout занял ~8 месяцев.
HL Connect
- Платформа сделана за 11 месяцев в одиночку. В ней sandbox и live, API, админка и SDK на PHP, JavaScript и Python.
- Убрал зависимость от старого Java XML API.
- Интегрировал продукт с AS/400.
- Подключил 15 партнёров и запустил приём стороннего каталога.
SPIX
01.2026 — н.в.Платформа для изучения английского языка в игровой форме. Первую версию написал вручную на Yii2 + Vite. С распространением ИИ в рамках эксперимента переписал всё на Go + Vite. Переписанный проект запущен, все изменения вносит только ИИ, вручную ничего не меняется.
В GitHub Actions настроен прогон тестов на каждый PR, а мерж в master автоматически запускает деплой.
Xsolla
09.2017 — 09.2021- Проектировал и разрабатывал модули биллинговой системы.
- Делал REST API для интеграции с платформами игровых издателей.
- Интегрировал платёжные системы и эквайринг (карточные платежи).
В роли командного архитектора:
- вёл технический бэклог;
- определял и обновлял нефункциональные требования;
- описывал SLA продукта (SLI, SLO) и сценарии нагрузочного тестирования;
- описывал архитектуру продукта и её развитие;
- собирал технические требования к новому функционалу;
- проводил аудит и внедрение новых технологий.
Образование
Языки
Английский — B2 (Upper-Intermediate)