Новая платформа
Спроектировать продуктовую систему, собрать техническую основу и вывести MVP на прод.
Engineering Profile / Версия 1.0
Сама сложность меня не привлекает. Понятную систему проще развивать, сопровождать и передавать другим инженерам.
Владимир Синявский
Engineering Lead и архитектор программных систем
10+ лет инженерной практики.
5+ лет технического лидерства.
FinTech, Travel, EdTech и AI.
В начале карьеры мне казалось, что хорошая разработка – это умение быстро писать качественный код.
Потом продукты выросли. Вместе с ними появились новые команды, интеграции и требования, а каждое следующее изменение стало затрагивать всё больше компонентов.
Архитектура стала для меня ежедневной практикой: способом видеть последствия решений и не платить за каждый новый релиз всё больше.
Сейчас меня больше всего интересуют системы, которые продолжают нормально развиваться спустя годы после запуска.
Где проходят реальные границы домена и почему одни и те же слова значат разное?
Я смотрю на технические ограничения вместе с продуктовыми и организационными.
Модель нужна для решений. Простого описания текущего кода недостаточно.
Ответственность компонентов и команд должна оставаться понятной при росте.
Сначала я разбираюсь с задачей и ограничениями, потом выбираю технологию.
После релиза видно, как решение ведёт себя под нагрузкой, с реальными интеграциями и обратной связью.
Новые факты меняют архитектуру. Это нормальная часть её жизни.
Спроектировать продуктовую систему, собрать техническую основу и вывести MVP на прод.
Развивать работающую систему постепенно, сохраняя бизнес-процессы и совместимость.
Сделать так, чтобы решения не замыкались на одном человеке, а система оставалась понятной команде.
Проверять AI-подходы в реальной работе и оставлять то, что действительно помогает инженерам.
Точки слева направо: Payments, Travel, EdTech / Legacy, AI-native.
Выбранная задача
платёжные жизненные циклы
Связанный кейспоиск / бронь / бронь у поставщика
Связанный кейсобразовательные модели
Связанный кейсНет: задача не была основной для этого домена.
Выбранная задача
банки и платёжные шлюзы
Связанный кейсGDS и внешние поставщики
Связанный кейсlegacy API
Связанный кейспоставщики LLM и внутренние инструменты
Связанный кейсВыбранная задача
колбэки, повторы и сверка
Связанный кейспоиск, бронирование, статусы
Связанный кейсНет: задача не была основной для этого домена.
долгие процессы с AI-агентами
Связанный кейсВыбранная задача
legacy в биллинге
Связанный кейсработающие travel-сервисы
Связанный кейсRails → .NET
Связанный кейсНет: задача не была основной для этого домена.
Выбранная задача
денежные операции
Связанный кейскритичный сценарий бронирования
Связанный кейссверка поведения legacy
Связанный кейсверификация действий AI-агентов
Связанный кейсВыбранная задача
внутренний фреймворк и CI для сервисов
Связанный кейсдоменный язык и продуктовая работа
Связанный кейскоманды и преемственность
Связанный кейсинструкции для AI-агентов в бэкенд-командах
Связанный кейс21 из 24 пересечений подтверждены конкретными проектами. В трёх случаях – нет: эта задача не была основной для домена.
"Эволюция без остановки" встречалась в legacy-биллинге, работающих travel-сервисах и при постепенной замене Rails на .NET.
CASE-001
В CloudPayments я отвечал за направление альтернативных способов оплаты: 10+ сервисов, часть legacy-биллинга и 9 внешних шлюзов. Платформа поддерживала 12 сценариев и около 1.2k rpm, включая СБП, SberPay, TinkoffPay и мексиканский STP/SPEI; я отвечал за архитектуру, вывод на прод, устойчивость, мониторинг и работу с инцидентами.
Бизнес-задача. CloudPayments нужно было развивать альтернативные способы оплаты через банки: от СБП и сервисов российских банков до международных сценариев и мексиканского SPEI.
Контекст и риски. В контуре работали 10+ сервисов, часть legacy-биллинга и 9 внешних шлюзов. Один платёжный цикл связывал денежные операции, асинхронные статусы, колбэки, повторы, идемпотентность и сверку.
Решение. Я спроектировал и реализовал базовый REST API с нуля как modular monolith. Я собрал общие правила платёжного цикла в одном месте, а сервисы сохранили ответственность за свои сценарии и интеграции.
Что изменилось. Базовый MVP вышел на прод за 3.5 месяца. Платформа выросла до 12 сценариев и 9 внешних шлюзов, включая мексиканский STP/SPEI. После роста команды до 10 человек я отвечал за стек, архитектуру, релизы, устойчивость, мониторинг и инциденты.
Инженерная основа. Позже я создал backend framework для общей инфраструктуры сервисов и стандартизировал CI/CD, работу с секретами и архитектурную документацию. Запуск нового сервиса сократился с двух дней до четырёх часов.
9 шлюзов внешние платёжные интеграции
12 сценариев на платформе
CASE-002
В travel-домене внешне простое "найти и забронировать" превращалось в агрегацию нескольких GDS и разные жизненные циклы брони, оплаты и взаиморасчётов.
Контекст. RuTrip держал около 300 rps. В продукте были 40 фильтров, 4 сценария бронирования, 3 способа оплаты и 2 вида взаиморасчётов с GDS.
Что сделал. Работал над агрегацией поиска и бронирования, Customer Journey Map и общим языком с продактом. Архитектуру постепенно переводили на vertical slices.
Результат. Время поисковой выдачи сократилось с 20–30 до 6–8 секунд. Позже в business travel я работал с внешними GDS и критичными корпоративными системами, которыми пользовались 300+ сотрудников.
CASE-003
Нестабильный Rails API платформы с 20 000 активных пользователей нельзя было остановить и переписать целиком.
Контекст. Работающий продукт зависел от нестабильного Ruby on Rails API, а миграцию нужно было провести без остановки клиентских приложений.
Что сделал. Собрал команду из четырёх backend-инженеров. Мы постепенно замещали маршруты через Strangler Fig и параллельно переносили данные.
Результат. Клиентские приложения переходили на новый API бесшовно. Мы выпускали его по частям и уложились в жёсткие сроки, не останавливая продукт.
CASE-004
В инвестиционном EdTech-продукте команда выросла с 5 до 15 человек и разделилась на две.
Контекст. Когда команда выросла, я больше не мог оставаться точкой принятия всех решений: продукт и две кросс-функциональные команды продолжали расти.
Что сделал. Занимался наймом, 1:1, ИПР и делегированием. В команде появились DDD, Event Storming, взаимное ревью, тестирование и DevOps.
Результат. Выросли 3 тимлида, а команды перестали зависеть от одного человека при принятии технических решений и развитии системы.
CASE-005
Сейчас я проверяю в реальной работе инструкции для AI-агентов и процесс разработки с ними. Подход ещё формируется.
Контекст. Нужно было ускорить сложную интеграционную разработку и работу с legacy, оставляя инженерные решения за человеком.
Что сделал. Собрал 20+ инструкций для AI-агентов (agent skills), настроил их версионирование и доставку, подключил к работе бэкенд-команд и обучил коллег.
Результат. В одиночку собрал MVP сложной интеграционной системы за 4 месяца. Другой legacy-проект переписал с PHP на .NET / React за 1 месяц, используя AI-пайплайн.
Открытый проект
OSS-001
Открытый проект, где видны моделирование домена, архитектурные решения и организация кода. Сейчас готов бэкенд Flights M1: модульный монолит с DDD, интеграции с поставщиками авиаконтента, устойчивость, наблюдаемость и отдельный AI-сервис.
Дальше – Hotels, Rail, Trip Planning и ядро AI-сервиса.
Открыть репозиторийХорошая архитектура нужна пятому году жизни продукта сильнее, чем первому релизу.
Самые сложные проблемы часто начинаются с разного понимания предметной области.
Команду и инженерные процессы тоже приходится проектировать.
AI меняет работу сильных инженеров, но ответственность за решения остаётся у человека.
В начале карьеры мне не хватало разборов реальных проектов: что строили, где ошиблись, почему выбрали именно это решение и чем за него заплатили позже.
Теперь я собираю такие истории сам.
Длинные разборы решений, ограничений и цены изменений.
ПрактикаDDD, distributed systems, legacy и инженерная работа с AI.
ИсследованияКак порядок решений влияет на стоимость и устройство системы.
В Telegram – наблюдения из инженерной практики, продолжения статей и эксперименты с AI в работе синьора и техлида.
Буду обновлять эту страницу вместе с проектами и собственным опытом.