Claude/PHP developer (Symfony, e-commerce)

MONETNIK.ru

Claude/PHP developer (Symfony, e-commerce)

Описание вакансии

На полностью удалённую постоянную работу ищем опытного PHP-разработчика.

Задача: развитие сервиса публикации коллекционных лотов в Ozon, Wildberries, Яндекс Маркет и Монетник. Код пишет Claude, а вы решаете, каким ему быть.

В двух словах

Проект забирает коллекционные лоты (монеты, банкноты, значки) из источников и публикует их на Ozon, Wildberries, Яндекс Маркете и Монетнике. Один лот становится карточками на нескольких площадках сразу, и все они должны жить синхронно. Лот продали в источнике — остаток везде уходит в ноль. Лот подешевел — меняется цена. Пришёл заказ — его нужно собрать, отгрузить и провести по деньгам.

Ошибка здесь стоит дорого и видна не сразу. Площадка может ответить «импорт прошёл успешно» и отклонить карточку в личном кабинете. За запрещённый товар магазин получает штраф или блокировку, поэтому есть стоп-лист который работает по принципу fail-closed: всё, что система не может распознать, не публикуется.

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

Главное условие: код пишется только через Claude

Весь код проекта пишет Claude Code, агент Anthropic. Ручного кода в IDE нет, и это осознанное решение, а не эксперимент.

Что это значит на практике:

  • Вы ставите задачу, проектируете решение и проверяете результат. Агент пишет код, тесты, миграции и документацию. Вы читаете дифф, находите, где агент ошибся, и не пропускаете ошибку дальше.
  • Стандарт команды — это файлы правил в репозитории (CLAUDE.md). Если агент повторяет одну и ту же ошибку, правим правило, а не только код. Каждое правило записано с датой и причиной.
  • Без зелёного гейта коммита нет. Перед каждым коммитом проходят PHPStan, PHP_CodeSniffer и PHPUnit. Перед релизом крупной фичи по диффу ветки проходит отдельный агент-ревьюер, и его замечания закрываются до сквоша.
  • Писать код руками вы не будете. Если это для вас главное удовольствие в профессии, эта вакансия вам, скорее всего, не подойдёт. А если интереснее проектировать, ревьюить и сразу выпускать результат, она как раз для вас.

Опыт работы с Claude Code или другим агентом на реальном проекте — большой плюс. Готовность работать только так — обязательное условие.

Объём данных: сейчас

Лотов в базе~38 000, опубликованных карточек~35 500

Фото~139 000 файлов, 32 ГБ

Ограничения внешних систем здесь важнее железа. API источника отдаёт список лотов целиком, без пагинации, а детали лота — по одному запросу в секунду. Поэтому полная синхронизация деталей 20 000 лотов идёт около 5,5 часа и почти не укладывается в собственный период. Задачи такого рода решаются расписанием, лимитерами и идемпотентностью, а не покупкой сервера помощнее.

Объём данных: куда растём

  • Лоты: прирост ускоряется. В августе добавилось 7 800 лотов, в сентябре 11 900, в октябре 17 200.
  • Фото: от 300 тысяч до 1 миллиона. Сейчас их 139 тысяч, и каждый месяц прибавляется 55–65 тысяч. В темпе октября 300 тысяч будет через три месяца, миллион — примерно через год. Под фото на сервере 200 ГБ, а миллион кадров займёт около 230 ГБ, поэтому на очереди отдельный поддомен. Платные ИИ-шлюзы на таком объёме невыгодны на два порядка, поэтому кадры уже обрабатывает наш собственный ML-сервис.
  • Площадки: Ozon, Wildberries, Яндекс Маркет, Монетник. У каждой свой API и свои правила карточки. У одной из площадок нет ни списка товаров, ни пакетных методов, поэтому идемпотентность и восстановление после потерянного ответа целиком на нашей стороне.

Стек

Бэкенд

  • PHP 8.5: асимметричная видимость private(set), array_find / array_any, final readonly сервисы, типизированные константы.
  • Symfony 8.0: Messenger, Scheduler, RateLimiter, Lock, Security, HttpClient, ObjectMapper, Serializer, Validator.
  • Doctrine ORM 3.6 и Migrations, все запросы строятся через QueryBuilder.
  • PostgreSQL 18: ltree для дерева категорий, jsonb для payload карточек, журнал изменений на триггерах.
  • RabbitMQ 4 (очередь на каждый обработчик) и Redis 8.
  • OpenAPI-контракт выгружается из кода (NelmioApiDoc), фронтенд генерирует по нему клиент. Два API: админка и кабинет продавца.
  • dompdf (лист подбора), poppler (PDF-этикетки Ozon превращаются в картинку для телефона).

Фронтенд (отдельный репозиторий):
Vue 3, Quasar 2, TypeScript, Vite, pnpm, клиент генерирует orval, моки — MSW, графики — echarts. Две SPA: админка и кабинет продавца.

Вокруг

  • image-processor: свой ML-сервис на FastAPI и onnxruntime, server side ИИ модель обработки фото.
  • ИИ-шлюзы: DIT.ai, OpenAI, Gemini — разбор названий и обработка кадра.
  • Внешние API: API площадок (Ozon Seller API и другие).
  • Инфраструктура: Docker Compose для dev и prod, Caddy со строгим CSP, GitLab CI (сборка и деплой), рецепты just.

Качество

  • PHPStan, PHP_CodeSniffer, PHP CS Fixer.
  • PHPUnit: наборы Unit и Integration, интеграционные тесты идут на настоящем PostgreSQL.
  • Тестов больше, чем кода: ~61 тыс. строк в src/ и ~67 тыс. в tests/.

Что уже ждёт в бэклоге

  • Публикация товаров в новые площадки: Wildberries, Yandex Market, Monetnik.ru. У каждой площадки свои карточки, фото и остатки.
  • Хранилище для миллионов фото: отдельный static-поддомен.
  • Импорт заказов realFBS через СДЭК: отгрузка, этикетка, акт, ПВЗ.
  • Модерация карточек Ozon после импорта и ежедневная сверка «наши строки ↔ товары Ozon».
  • Финансы: начисления, прибыль заказа, отчёты.
  • ИИ-разбор лота одним вызовом: название, модель, описание.
  • Перевод оставшегося кода на новую раскладку слоёв.

Кого ищем

Обязательно

  • Уверенно знаете PHP 8 и Symfony, работали с Doctrine. Можете прочитать дифф агента и аргументированно его отклонить.
  • Знаете PostgreSQL: индексы, планы запросов, jsonb, транзакции.
  • Понимаете очереди: идемпотентность, повторы, порядок сообщений, память долгоживущих воркеров.
  • Готовы работать через Claude Code.
  • Точно пишете по-русски: правила, документация и коммиты на русском.

Будет плюсом

  • Работали с API маркетплейсов (Ozon, Wildberries, Яндекс Маркет), FBS / realFBS.
  • Работали с Claude Code или другим агентом на живом проекте.
  • Знаете Docker, GitLab CI, Caddy или nginx.
  • Писали на Vue 3 / TypeScript, чтобы читать фронтенд.

Чего не будет

  • Десятилетнего легаси. Проекту полгода, PHP 8.5 и Symfony 8 с первого дня.
  • Митингов ради митингов: решения и их причины записаны в репозитории.

Преимущества работы у нас:

  • Удалённая работа (при желании с вашей стороны возможна работа в офисе г. Москва, м. Дмитровская);
  • Есть отлаженный gitflow с CI и автотестами;
  • Можно начать с еженедельной оплаты;
  • Свободный график работы, но не менее 40ч в неделю;
  • Бизнес постоянно развивается: ассортимент, новые товарные категории и новые каналы продаж регулярно добавляются;
  • Стабильный рост: и в пандемию и в последние годы мы выросли по прибыли, платим вовремя все зарплаты, премии, вкладываемся в обучение и развитие команды;
  • Оплата необходимых онлайн-сервисов для работы;
  • Корпоративные подарки от компании на годовщину работы.

Навыки
  • Git
  • Symfony
  • PHP
  • Docker
  • Redis
  • Elasticsearch
  • CI
  • GitLab CI
  • SQL
  • Backend
  • Composer
  • RabbitMQ
  • PostgreSQL
  • React
  • REST API
Посмотреть контакты работодателя

Похожие вакансии

Всё для крохи
  • Москва

  • до 300000 RUR

Рекомендуем
АКС КЭПИТАЛ
  • Москва

  • до 300000 RUR

Рекомендуем
ЭКОС
  • Москва

  • до 300000 RUR

Рекомендуем

Программист 1С

Зим (ИП Хорикова Ксения Александровна)

  • Москва

  • до 300000 RUR

ЕАЕ-Консалт

Программист 1С

ЕАЕ-Консалт

  • Москва

  • до 300000 RUR

Ментор - разработчик 1С

Галактионов Тихон Витальевич

  • Москва

  • до 300000 RUR

Управляющая Компания Колизеум
  • Москва

  • до 300000 RUR

Детский мир
  • Москва

  • до 300000 RUR

Centaursoftware
  • Московский (Москва)

  • до 300000 RUR

AS&co marketing agency group
  • Москва

  • до 250000 RUR

Менеджер по развитию продаж / Sales Development Manager

Горбунов Алексей Евгеньевич

  • Москва

  • до 300000 RUR

Губкин Консалтинг

Фулстек-разработчик

Губкин Консалтинг

  • Москва

  • до 300000 RUR

Хотите оставить вакансию?

Заполните форму и найдите сотрудника всего за несколько минут.
Оставить вакансию