Контекст
Разрабатывал конфигурируемую игровую платформу, которую можно было использовать под несколькими брендами. Название компании закрыто NDA. В роли руководителя fullstack-команды совмещал управление разработкой, архитектуру и работу с кодом.
Задача: масштабировать общий продукт
Единая платформа должна была учитывать различия между брендами: оформление, доступные функции и конфигурацию. При этом требовалось изолировать данные клиентов, поддерживать операции в реальном времени и сохранять сопровождаемость общей кодовой базы.
Личный вклад и руководство
Руководил frontend- и backend-разработчиками, формировал и уточнял задачи, согласовывал архитектуру с бизнесом и партнёрами. Отвечал за найм, распределение работы, документацию, проверку кода и выпуск изменений.
Параллельно разрабатывал продукт от интерфейсов до серверной части: проектировал многоклиентскую архитектуру NestJS, схему GraphQL, административные интерфейсы и потоки событий WebSocket/RxJS.
Архитектура и производительность
Разделил серверную логику на модули с внедрением зависимостей и гибкой конфигурацией. Реализовал изоляцию клиентов, темы оформления и управление доступными функциями. Для клиентской части применил Vite, динамические импорты и разбиение кода под конкретного клиента.
За счёт изменений в сборке и разбиении кода размер загружаемой клиентской части сократился на 30%.
Наблюдаемость и командная работа
Настроил Sentry с разделением событий по клиентам и панели Grafana для наблюдения за выполнением SLA. В команде внедрил совместную проверку кода с наставничеством, ретроспективы, ежедневные встречи и метрики разработки.
Что стоит за результатом
Работа над платформой для нескольких брендов связывает архитектуру с продуктовой гибкостью. Мой вклад — общая техническая основа, практическая разработка и организация команды вокруг единого продукта.