Hands-on Tech Lead · Retail Tech · B2B SaaS

МихаилВоронцов

Строю системы, которые можно понять, измерить и развивать — от первого архитектурного решения до продакшена.

2026МД Аудит OSAВедущий разработчик13 лет одним трейсом · проведите по шкале
13
лет в разработке
9+
лет в Retail Tech
1000+
магазинов в продакшене
1000+
RPS на пике
~8
сервисов в платформе
~6
человек в команде

Как я смотрю на систему

Аналитический запрос как трейс

15–20 ситоговое время ответа

postgres: Анализ узких мест и оптимизация SQL-запросов.

Иллюстрация на условных данных, ускорена в 4 раза: распределение времени по шагам и названия сервисов вымышлены. Реальны только итоговые значения для аналитических сценариев: 15–20 с до оптимизации и 2–3 с после.

А это уже не иллюстрация

Настоящий трейс этой страницы

Замеры появятся после загрузки страницы в браузере.

Эти данные считает ваш браузер. На сервер они не отправляются.

Кейсы

Что изменилось в цифрах

2–3 с

вместо 15–20 с в аналитических сценариях

01 Ускорение аналитических сценариев

Проблема
Ресурсоёмкие аналитические сценарии выполнялись 15–20 секунд.
Решение
Нашёл узкие места профилированием, оптимизировал SQL-запросы, добавил индексы и кеширование в Redis.
Результат
Время ответа сократилось до 2–3 секунд.

~8

сервисов в одном сквозном трейсе, пик 1000+ RPS

02 Сквозная трассировка с нуля

Проблема
В микросервисной платформе нужно было видеть путь запроса через все сервисы.
Решение
Спроектировал и внедрил распределённую трассировку на OpenTelemetry с экспортом в Jaeger.
Результат
Команда быстрее находит узкие места и причины задержек.

1000+

магазинов с приложением

03 Работа без стабильной связи

Проблема
Сотрудники магазинов работают с приложением там, где интернет нестабилен.
Решение
Реализовал офлайн-режим на React Native, очереди запросов и фоновую синхронизацию.
Результат
Приложением пользуются в 1000+ магазинах, включая точки с плохим покрытием.

Также

  • Провёл техническую миграцию продукта с grosa.ai на MD Audit OSA.
  • Реорганизовал взаимодействие микросервисов и снизил их связанность.
  • Внедрил Sentry для веба, API и мобильного приложения.
  • Спроектировал в Figma и выпустил новые версии портала и приложения.

Как я принимаю решения

У каждого решения есть цена

Снижение связанности сервисов

Задача
Сервисы были тесно связаны: изменения и сбои в одном затрагивали соседние.
Варианты
Оставить синхронные вызовы; объединить часть сервисов; перевести взаимодействие на очереди.
Выбор
Перевёл на RabbitMQ взаимодействие там, где не нужен немедленный ответ.
Цена
Отложенная согласованность данных и более сложная отладка, поэтому важны идемпотентность и трассировка.

Стандарт для трассировки

Задача
Нужно было видеть полный путь запроса через сервисы и быстро находить причины задержек.
Варианты
Только логи и метрики; SDK конкретной системы трассировки; OpenTelemetry.
Выбор
OpenTelemetry с экспортом в Jaeger: код не привязан к конкретной системе хранения трейсов.
Цена
Инструментирование всех сервисов и дополнительная нагрузка на инфраструктуру из-за объёма трейсов.

Работа приложения без связи

Задача
Сотрудники работают в магазинах с нестабильным интернетом и не должны терять выполненные задачи.
Варианты
Только онлайн с повторами запросов; очередь отложенных запросов; полная копия данных на устройстве.
Выбор
Офлайн-режим с очередью отложенных запросов и фоновой синхронизацией.
Цена
Сложнее сценарии повторной отправки и тестирование: нужно отдельно проверять потерю и возврат связи.

Полный цикл

От домена до релиза в сторах

Могу создать систему с нуля и отвечать за неё на всех этапах. Часть работы беру на себя, а там, где есть профильные специалисты, понимаю их задачи и говорю с ними на одном языке.

  1. Архитектура

    Проектирую архитектуру и доменную модель, декомпозирую систему на сервисы, описываю контракты API.

    DDD · Hexagonal · микросервисы · OpenAPI · Pact

  2. Дизайн

    Проектирую пользовательские сценарии и интерфейсы, готовлю макеты и прототипы.

    Figma · Pixso

  3. Инфраструктура

    Регистрирую и делегирую домены, управляю DNS, разворачиваю и настраиваю серверы, внутренние сервисы и контейнеры.

    DNS · Linux · Bash · Nginx · Docker · Docker Compose · Kubernetes

  4. Backend

    Разрабатываю API и микросервисы, асинхронное взаимодействие и слой работы с данными.

    PHP · Symfony · Yii2 · NestJS · PostgreSQL · RabbitMQ · Redis

  5. Frontend и Mobile

    Разрабатываю веб-приложения и кроссплатформенные мобильные приложения, включая офлайн-режим.

    React · Angular · TypeScript · React Native · Flutter · Dart

  6. CI/CD и релизы

    Настраиваю конвейеры сборки и доставки, управляю выпусками в магазинах приложений.

    GitLab CI · TeamCity · Fastlane · App Store · Google Play · RuStore · AppGallery

  7. Наблюдаемость и аналитика

    Настраиваю трассировку, мониторинг и алертинг, собираю и анализирую технические и продуктовые метрики.

    OpenTelemetry · Jaeger · Sentry · ELK · Grafana

  8. Оптимизация

    Нахожу узкие места по данным профилирования, оптимизирую запросы, кеширование и взаимодействие сервисов.

    SQL · индексы · Redis · xDebug

  9. ИИ-инструменты

    Применяю в разработке и анализе там, где они дают ощутимую пользу. Результат проверяю и отвечаю за него сам.

    ИИ-ассистенты для кода и анализа

С нуля и целиком

  • Интернет-магазин donbambino.ruС нуля: архитектура и доменная модель, каталог, онлайн-оплата, интеграция с 1С, админ-панель.
  • Приложение MD Audit OSAОт макетов в Figma до публикации в четырёх магазинах приложений; используется в 1000+ магазинах.
  • Система бронирования ТОМФронтенд в одиночку: от эскизов и макетов до продакшена, с обновлением в реальном времени.

Опыт

Пять компаний, один почерк

2025–сейчасМД Аудит OSAВедущий разработчик

Ноябрь 2025 — настоящее время

B2B SaaS на базе ИИ для управления доступностью товаров на полке. Клиенты — крупные продуктовые сети.

Архитектура и лидерство

  • Главный технический ответственный по веб-продукту в команде около 6 человек: архитектурные решения, систематическое код-ревью, планирование техдолга и roadmap.
  • Провёл аудит и рефакторинг микросервисной архитектуры, около 8 сервисов: снизил связанность, структурировал кодовую базу по принципам DDD.
  • Провёл техническую миграцию продукта с grosa.ai на MD Audit OSA без остановки сервиса: смена бренда и архитектурные улучшения.
  • Внедрил Sentry для веба, API и мобильного приложения: ошибки, производительность, алертинг; снизил crash rate после рефакторинга.

Backend и производительность

  • Развивал REST API, который одновременно обслуживает B2B-портал, админ-панель и мобильное приложение.
  • Создавал и рефакторил микросервисы на PHP: данные продаж, задачи для персонала, синхронизация данных.
  • Настроил асинхронное взаимодействие сервисов через RabbitMQ и кеширование горячих данных в Redis.
  • Сократил время ответа ресурсоёмких аналитических сценариев с 15–20 с до 2–3 с: профилирование SQL-запросов, индексы, кеширование на уровне приложения.

Frontend

  • Разрабатывал B2B-сайт и клиентский портал с аналитикой: доступность товара, аномалии, прогнозы продаж, дисциплина сотрудников.
  • Переработал дизайн портала в Figma, предложил UX-улучшения и выпустил новую версию.
  • Развивал админ-панель: клиенты, магазины, товарный каталог, правила приоритизации задач.

Мобильное приложение

  • Разрабатывал приложение на React Native для сотрудников магазинов: офлайн-режим, фоновая синхронизация, push-уведомления; им пользуются в 1000+ магазинах.
  • Спроектировал в Figma и выпустил редизайн: переработал сценарий и сократил число шагов при выполнении задач; получил положительные отзывы пользователей.
  • Настроил единый пайплайн публикации через Fastlane в App Store, Google Play, RuStore и Huawei AppGallery.

PHP, Symfony, Yii, NestJS, PostgreSQL, RabbitMQ, Redis, React, Angular, TypeScript, React Native, Flutter, Dart, Fastlane, Docker, Kubernetes, GitLab CI, TeamCity, ELK, Zipkin, Jaeger, Grafana, Sentry, Figma, Pixso

2022–2025Softline, проект grosa.aiFull-Stack Developer

Август 2022 — Октябрь 2025

Продолжение развития платформы OSA: ИИ-управление полкой для ритейла.

Архитектура и наблюдаемость

  • Отвечал за архитектуру веб-части продукта: админ-панель, B2B-сайт и личный кабинет, мобильное приложение.
  • Спроектировал и внедрил с нуля сквозную трассировку на OpenTelemetry с экспортом в Jaeger для платформы с пиком свыше 1000 RPS.
  • Анализировал логи и трейсы: медленные запросы, деградирующие сервисы, аномалии в межсервисном взаимодействии.

Веб-часть

  • Разрабатывал админ-панель для ритейл-клиентов, бэкенд и фронтенд: магазины, товарный каталог, задачи, настройки доступа, учётные записи.
  • Разрабатывал новые разделы B2B-кабинета: расширенная аналитика, настройки клиентских параметров.
  • Участвовал в разработке корпоративного сайта grosa.ai.

Мобильное приложение

  • Развивал приложение на React Native для сотрудников магазинов: новые функции, исправление ошибок, рефакторинг.
  • Обновлял API и реализовал офлайн-синхронизацию: очереди отложенных запросов при плохом интернете в магазинах.
  • Настраивал push-уведомления о новых задачах.

PHP, Symfony, Yii, PostgreSQL, RabbitMQ, Pact, React, Angular, TypeScript, React Native, Flutter, OpenTelemetry, Jaeger, Zipkin, ELK, Grafana, GitLab, TeamCity, Figma

2017–2022OSA Hybrid PlatformFull-Stack Developer, руководитель фронтенд-команды одного из подразделений

Апрель 2017 — Май 2022

B2B-платформа управления доступностью товаров на полке для ритейла. Пять лет в ядре продукта, который вырос до 1000+ точек продаж.

Команда

  • Руководил 2–3 фронтенд-разработчиками: распределение задач, код-ревью, онбординг, выстраивание процессов.
  • Устанавливал стандарты кода и архитектурные практики для фронтенд-части продукта.

B2B-кабинет и мониторинг

  • Разрабатывал фронтенд и бэкенд личного кабинета: задачи для персонала магазинов, сводные отчёты по доступности товаров, мониторинг полки.
  • Создавал компоненты визуализации для аналитических отчётов ритейлеров: таблицы, графики, фильтры.

CRM-система

  • Разрабатывал и поддерживал внутреннюю CRM, фронтенд и бэкенд: клиенты, история взаимодействий, воронка сделок.

Корпоративные сайты

  • Разработал фронтенд osahp.com, витрины продукта для B2B-аудитории: адаптивная вёрстка, анимации, оптимизация производительности.
  • Участвовал в разработке фронтенда aiaecosystem.com, портала экосистемы платформы.

PHP, Angular, React, TypeScript, JavaScript, HTML5, CSS3, PostgreSQL, Docker, Git

2016–2017TravelataFrontend Developer

Апрель 2016 — Март 2017

Онлайн-сервис по продаже туристических пакетов.

Сайт travelata.ru

  • Дорабатывал клиентский интерфейс на Backbone.js: UX поиска и выдачи туров, фильтры, страницы предложений.
  • Реализовал календарь низких цен: интерактивный виджет для выбора даты с минимальной стоимостью тура.

ТОМ — Туристический Операторский Модуль

  • Разработал фронтенд внутренней системы управления бронями самостоятельно и с нуля, от эскизов и макетов до продакшена.
  • Построил приложение на Angular как систему реального времени: новые заказы и смены статусов сразу видны всем операторам через Socket.io.
  • Сделал экран с метриками смены, многокритериальные фильтры и массовые операции с заказами.

JavaScript, Backbone.js, Angular, Socket.io, HTML5, CSS3

2013–2016Разлёт.РуWeb Developer, frontend и backend

Май 2013 — Март 2016

Онлайн-бронирование авиабилетов.

Сайт razlet.ru

  • Поддерживал и развивал сайт: интерфейс, формы бронирования, функции личного кабинета клиента.

CRM для call-центра, бухгалтерии и отдела продаж

  • Оперативные показатели для сотрудников: брони за смену, статусы платежей, очередь необработанных заказов.
  • Управление заказами: таблица с фильтрами по датам, статусам оплаты, пассажирам и маршрутам.
  • Карточка клиента и пассажира: история покупок, контакты, привязанные документы, программы часто летающих пассажиров.
  • Форма быстрого бронирования и оформления билета: сократила время обработки заявки операторами.
  • Виджет взаиморасчётов: дебиторская и кредиторская задолженность субагентов и корпоративных клиентов.
  • Массовые операции: подтверждение и отмена билетов для группы заказов.
  • Статусы броней в реальном времени: новый заказ виден без перезагрузки страницы.

HTML, CSS, Angular, WebSockets, Socket.io

Интернет-магазин donbambino.ru (ныне alfavit24.ru)

  • Разработал магазин детской одежды с нуля: архитектура и доменная модель.
  • Каталог с фильтрами по категориям, возрасту, размеру и сезону; корзина, оформление заказа и онлайн-оплата.
  • Админ-панель: товары, скидки, синхронизация, заказы, учётные записи.
  • Интеграция с 1С, уведомления о заказах по SMTP.
  • Адаптивная вёрстка и оптимизация скорости загрузки страниц.

PHP, Laravel, MySQL, JavaScript, jQuery, Angular, HTML, CSS

Свой проект · в разработке

Field Checklists

Система офлайн-чеклистов для сотрудников на выезде. Веду её целиком, от домена до релиза, и применяю здесь NestJS, Flutter и Kubernetes. Код новый и не связан с проектами работодателей.

NestJS · PHP · Symfony · PostgreSQL · RabbitMQ · Flutter · Dart · Drift · Docker · Kubernetes · OpenTelemetry · Jaeger

Навыки

Стек без шкал и процентов

Основной стек

  • PHP
  • Symfony
  • Yii2
  • Doctrine
  • React
  • Redux
  • REST
  • OAuth2
  • OpenAPI
  • Docker
  • WebSockets

Архитектура и данные

  • Микросервисы
  • RabbitMQ
  • Redis
  • PostgreSQL
  • DDD
  • Hexagonal
  • Pact

Наблюдаемость и поставка

  • OpenTelemetry
  • Jaeger
  • Zipkin
  • Sentry
  • ELK
  • Grafana
  • GitLab CI
  • TeamCity
  • Nginx
  • Linux

Также работал с

  • TypeScript
  • Angular
  • RxJS
  • React Native
  • Flutter
  • Dart
  • NestJS
  • Laravel
  • Kubernetes
  • Fastlane
  • Figma

Контакты

Обсудить задачу

Контакты закрыты

Телефон, почта и PDF-резюме открываются по личной ссылке.

Ссылка указана в резюме.