I AM HIRED

Неделя 310 ₽Месяц 630 ₽3 месяца 1 680 ₽Год 5 680 ₽

Claude/PHP developer (Symfony, e-commerce) — Россия, Москва

Разработчики, Backend, PHP · 03.11.2026

200 000–300 000 ₽

Откликнуться

Локация: Россия, Москва

Формат: Удалённая работа

Занятость: Полная занятость

Грейд: Senior

На полностью удалённую постоянную работу ищем опытного 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 ИИ модель обработки фото.

• ИИ-шлюзы: , 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, . У каждой площадки свои карточки, фото и остатки.

• Хранилище для миллионов фото: отдельный 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ч в неделю;

• Бизнес постоянно развивается: ассортимент, новые товарные категории и новые каналы продаж регулярно добавляются;

• Стабильный рост: и в пандемию и в последние годы мы выросли по прибыли, платим вовремя все зарплаты, премии, вкладываемся в обучение и развитие команды;

• Оплата необходимых онлайн-сервисов для работы;

• Корпоративные подарки от компании на годовщину работы.

Поиск по вакансиям