Коммерческая разработка · 15 лет · Минск

Разрабатываю магазины, CRM и автоматизацию бизнес-процессов

Отдельное направление - внедрение нейросетей в работающие системы: генерация контента, обработка данных, снятие рутины с сотрудников. Не вызов чужого API, а управляемый результат, который можно проверить и повторить.

Один исполнитель на весь цикл: разбор задачи, архитектура, код, запуск и поддержка. Без агентских наценок и посредников между вами и разработчиком.

интернет-магазины каталоги CRM личные кабинеты интеграции автоматизация нейросети поддержка и развитие
Дмитрий Арбузов, разработчик бизнес-систем и интернет-магазинов
15 летв разработке
8 летодна система в постоянной работе
37 решенийсделано для магазинов как продукт
200 000+позиций в каталогах, с которыми работал
Как я работаю

Четыре вещи, которые обговариваю до начала работ.

Это не обещания, а то, как устроен процесс.

Цена известна до начала

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

Видно, за что заплачено

Задачи и часы веду в трекере: в любой момент видно, что сделано, что в работе и сколько времени на что ушло. В конце месяца отчёт и закрывающие документы. Своего трекера нет - подключу к своему.

Проект остаётся вашим

Код, история изменений и документация остаются у вас. Передать проект другому разработчику можно в любой момент, я пишу с таким расчётом. Привязок к себе не делаю.

Рассчитано на долгую дистанцию

Длинные проекты для меня обычный режим: пять лет в одной компании, семь в следующей, одна система в работе восемь лет. Договор, оплата от юрлица, задачи и переписка в трекере, а не в личных сообщениях.

Опыт в проектах

Над какими системами работал.

Здесь не отдельные правки, а работа над решением целиком: от структуры до эксплуатации.

8 лет в работе
Корпоративная система полного цикла для международной компании

Внутренняя платформа, на которой держался весь бизнес: закупка и поставки из Китая, приёмка и распаковка на складах, учёт движения товара, продажи и воронка, счета и платежи, документы, отчётность для руководства. Около сотни сервисов, десятки сотрудников в системе каждый день.

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

Laravel · MySQL · Elasticsearch · интеграции · модульный монолит
5 лет в продукте
Продуктовая линейка решений для электронной коммерции

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

Отличие от заказной работы в том, что решение ставится на незнакомый магазин, рядом с чужим кодом, и настраивается владельцем без программиста. Это учит писать так, чтобы потом не ломалось от обновлений.

продуктовая разработка · обратная совместимость · поддержка клиентов
200 000 товаров
Описания для всего каталога без копирайтеров

В каталоге двести тысяч товаров, описать их руками невозможно. Если просто отдать задачу нейросети, тексты выходят похожими друг на друга: покупатель открывает две карточки подряд и видит одно и то же.

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

нейросети · управление качеством · фоновая обработка · тесты
с нуля до прода
Интернет-магазин вместо устаревшей платформы

Магазин жил на OpenCart, который перестал выдерживать требования. Собрал новую платформу целиком: React с серверным рендерингом на витрине, Laravel как бэкенд и админка, перенос всего каталога с опциями и изображениями.

Дальше вёл его в эксплуатации: отклик сервера доведён до 96 мс, снята блокирующая загрузка на двух тысячах страниц каталога, разобран инцидент с потерей страниц из поискового индекса.

было 782 мс
стало 96 мс
время ответа сервера на странице каталога
React SSR · Laravel · миграция данных · производительность
Нейросети и автоматизация

Снимаю с сотрудников работу, которую они делают руками.

Подключить нейросеть к сайту сегодня умеет почти любой разработчик. Сложность в другом: на одних и тех же данных она отвечает по-разному, счёт за неё растёт незаметно, а проверить тысячу результатов глазами невозможно. Я занимаюсь именно этой частью.

Сейчас: менеджер день разносит 300 позиций из письма поставщика по полям в системе.
Будет: письмо и вложение разбираются сами, менеджер открывает готовый черновик загрузки и проверяет спорные строки.
Сейчас: в каталоге двести тысяч товаров и почти нигде нет описаний. Копирайтер столько не напишет.
Будет: тексты появляются сами и не повторяются в соседних карточках. Перед запуском видно, сколько товаров получат нормальное описание.
Сейчас: обращения приходят в свободной форме, кто-то их читает и вручную раскидывает по ответственным.
Будет: обращение само определяется по теме, попадает нужному сотруднику, и к нему уже готов черновик ответа.
Сейчас: накладные и счета приходят сканами, цифры из них перебивают в таблицу.
Будет: данные со сканов попадают в систему строками, человек только подтверждает.
Как это работает на примере описаний товаров

Прямая генерация даёт тексты, которые похожи друг на друга: открыв две карточки подряд, покупатель видит одно и то же. Поэтому описание собирается как конструктор.

1
Берутся данные товара марка, модель, размер, сезон, всё, что уже есть в каталоге
2
Подбираются заготовки для каждой части текста есть десятки вариантов, а не один шаблон
3
Отсекаются повторы часто использованный вариант отходит на второй план, тексты не повторяются
4
Проверка до запуска видно, сколько товаров получат хороший текст, а где данных не хватает

Настройки качества выведены в админку, чтобы менять их без разработчика. Генерация идёт в фоне по всем сайтам сети, результат можно пересобрать в любой момент.

Проекты

Работающие системы, которые можно открыть.

Playground Equipment
магазин оборудования для детских площадок, собран с нуля вместо устаревшего OpenCart

React с серверным рендерингом на фронте, Laravel как бэкенд и админка. Каталог с конфигурируемыми опциями и калькуляторами, перенос всех товаров со старой платформы, техническое SEO и производительность. Отклик сервера доведён до 96 мс, блокирующая отрисовку загрузка снята со всего каталога.

Открыть сайт
Сеть магазинов автозапчастей
одна админка и десяток сайтов на своих доменах, каталог на 200 000 позиций

Текущий проект. Подбор по автомобилю, цены и остатки приходят прайсами от поставщиков и раскладываются по складам автоматически. Заказы, аналитика по среднему чеку, генератор описаний товаров на языковой модели. Внутри живой legacy-слой, который переношу по частям, не останавливая продажи.

проект под NDA, ссылку показываю по запросу
AAA State of Play
магазин на Magento 2, который вырос в 24 собственных модуля

Вёл проект целиком. Кастомный чекаут, калькуляторы, своя логика категорий и опций, поиск на Elasticsearch, выгрузка в учётную систему заказчика, передача заявок во внутреннюю CRM. Плюс поддержка под нагрузкой и защита от атак.

Открыть сайт
Готовые решения для магазинов

Что уже делал готовым решением, а не с нуля.

Пять лет я делал решения, которые покупали владельцы магазинов и ставили себе сами. Такое решение попадает на незнакомый магазин и настраивается без программиста, поэтому приходится продумывать и редкие случаи. Если ваша задача попадает в один из этих блоков, я её уже решал.

Продажи другим компаниям

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

Чтобы покупали повторно

Баллы за покупки, личный счёт покупателя, подарочные сертификаты, приглашение друга за вознаграждение, подписка с регулярной оплатой, повтор прошлого заказа одной кнопкой.

Письма и возврат покупателя

Письма, которые уходят сами: покупатель положил товар в корзину и ушёл, посмотрел и не купил, купил и пора напомнить о себе. Шаблоны, очередь отправки, деление покупателей на группы по их поведению.

Заявки и возврат товара

Обращения покупателей внутри магазина: распределение по отделам, готовые ответы, возврат товара от заявки до решения. Вопросы о товаре на его странице и отзывы с оценками по отдельным свойствам.

Каталог и витрина

Бренды отдельным разделом, блоки "с этим товаром покупают" по вашим правилам, метки вроде новинки и распродажи, свои надписи о наличии, подарок к заказу, продажа файлов и билетов.

Оформление заказа и контроль

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

Услуги

С чем ко мне обращаются.

Проектирование системы

Схема базы данных, роли, модули и план разработки по этапам. Понятная стоимость до начала работ и система, которую можно развивать, а не переписывать.

CRM под ваш процесс

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

Доработка существующей системы

Убрать из процесса то, что сейчас делается руками: отчёт вместо сводки в таблице, расчёт вместо калькулятора в блокноте, автоматическое письмо вместо напоминания.

Загрузка и обмен данными

Прайсы поставщиков, выгрузки из учётных систем, обмен с внешними сервисами по API. Данные обновляются сами, по расписанию.

Ускорение и техническое SEO

Разбор, почему сайт медленный, и работа по результату: кэширование, изображения, блокирующие ресурсы, индексация и дубли. С замерами до и после.

Наследство прошлого подрядчика

Разбор чужого кода, оценка состояния и рисков, поэтапное приведение в порядок без остановки работы бизнеса.

Как я работаю

Сначала разобраться, потом писать код.

Почти все проекты, на которых я работал, были долгоживущими: один из них я сопровождал восемь лет и провёл через две смены архитектуры. Такой опыт учит простой вещи: решение, принятое на старте, определяет стоимость всех следующих изменений.

Поэтому я начинаю с предметной области, а не с кода: кто работает в системе, что делает каждый, где данные расходятся с реальностью. Дальше согласовываю этапы и критерии готовности, чтобы вы видели результат по частям, а не одним куском в конце.

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

Архитектура CRM и бизнес-систем E-commerce Magento 2 и свои платформы Интеграции API, очереди, синхронизация Производительность кэш, запросы, фронт Качество тесты, код-ревью, CI/CD
Стек

Чем это сделано.

Бэкенд
Laravel PHP Magento 2 REST API очереди и задачи по расписанию MySQL Redis Elasticsearch
Фронтенд
React серверный рендеринг Vue.js админки и кабинеты сложные формы и таблицы Laravel Nova
Инфраструктура
Docker Nginx GitLab CI Linux бэкапы и мониторинг PHPUnit
CRM и продажи
  • лиды, квоты, заказы, счета, платежи
  • роли, права доступа, журнал изменений
  • личные кабинеты и внутренние порталы
  • отчёты, выгрузки, автоматизация
Каталог и склад
  • каталоги на сотни тысяч позиций
  • прайсы поставщиков и сопоставление товаров
  • остатки по складам, наценки, резервы
  • логистика: поставки, отгрузки, документы
Интеграции
  • обмен заказами, ценами и остатками
  • платёжные и почтовые сервисы
  • CRM, учётные системы, мессенджеры
  • обработка сбоев и журнал обмена
Опыт

От промышленной электроники к бизнес-системам.

Начинал инженером-электроником на промышленном оборудовании. В разработке это неожиданно помогает: в проектах для производства и B2B не приходится объяснять предметную область с нуля, а привычка искать причину, а не симптом, осталась с тех времён.

Как это будет по шагам
  1. Напишите, что нужно. Достаточно пары строк по задаче и срокам, шаблон вопросов ниже.
  2. Созвон или переписка. Задаю вопросы по процессу, вы решаете, подходим ли друг другу.
  3. Разбор проекта, два-три дня. Отдаю картину: что переиспользуется, что переписывать, где риски, сколько стоит первый этап.
  4. Договор и этапы. Фиксируем объём, сроки и критерии готовности первого этапа.
  5. Работа итерациями. Оценка, согласование, результат, отчёт. Первый работающий результат раньше, чем готово всё целиком.
Контакты

Обсудим задачу коротко и по делу.

Напишите, какой результат нужен, к какому сроку и что уже есть: репозиторий, сервер, доступы. В ответ пришлю план действий и оценку по этапам.

Почта

Для обсуждения деталей и обмена файлами.

✉️ arbuzovdev@gmail.com
Письмо откроется с готовым шаблоном вопросов.
Формат и оплата

Почасово по 2000 ₽/час или фиксированной суммой по этапам, в зависимости от задачи.

По договору, оплата от юрлица. Акт, счёт и отчёт по часам за месяц. Начать можно с разбора проекта: это самый маленький и понятный шаг.
Где я

Минск, удалённая работа. На связи в рабочее время по Москве и Минску.

Созвоны в любой будний день до 18:00.
Мини-бриф для первого сообщения

Чем точнее вводные, тем точнее оценка. Достаточно пары строк по каждому пункту.

Проект:
Цель, ожидаемый результат:
Сроки:
Что уже есть (репозиторий, сервер, доступы):
Критичные проблемы:
Ограничения (стек, бюджет, согласования):