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

Сегодня 15-07-2026 01:24
14.07.2026, 17:19

Fullstack AI инженер (Python, канонизация и матчинг товаров)

Работодатель: Кадровый центр Сотрудничество

Кадровый центр Сотрудничество

Город: Москва
Занятость: Полная, 5/2
Опыт работы: От 3 до 6 лет

В связи с расширением команды в новый стартап проект ищем Fullstack AI инженера

О проекте

AI-ассистент для умных покупок, который помогает пользователям экономить время и деньги. Ассистент находит и сопоставляет товары из разных онлайн-магазинов и маркетплейсов и формирует оптимальную корзину с учётом множества параметров.

Ищем крепкого backend-инженера с опытом коммерческой разработки на Python, который уверенно владеет Python и PostgreSQL и имеет реальный прод-опыт в парсинге и работес данными.

Роль закрывает четыре направления: парсинг маркетплейсов, канонизация/матчинг товаров, хранилище и его масштабирование, AI/LLM для ассистента. Не требуется быть экспертом сразу во всех —но нужен практический опыт минимум в двух (обязательно включая парсинг или данные) и готовность углубляться в остальные.

Требования:

  • Создание собственных AI-инструментов для разработки (кастомные скиллы/агенты/пайплайны, автоматизация рутины)
  • ВАЖНО! - опыт разработки, связанный с канонизацией / матчингом товаров + парсинг маркетплейсов

Базовый стек:

  • Python 3.12+: asyncio, типизация, управление зависимостями (uv/poetry).
  • async FastAPI в проде: Pydantic v2, dependency injection, middleware; понимание, как не блокироватьevent loop синхронным кодом (asyncio.to_thread).
  • PostgreSQL на хорошем уровне: проектирование схем, транзакции, индексы, JSONB, EXPLAIN ANALYZE,оптимизация запросов.
  • SQLAlchemy 2.0 (async) + Alembic: модели, сессии, миграции.
  • Celery + Redis (или asyncio + APScheduler): очереди, ретраи, идемпотентность.
  • Парсинг/скрапинг (ключевой навык роли): практический опыт с headless-браузерами — Playwright,антидетект-браузерами (Camoufox) и HTTP-клиентами (curl_cffi, httpx). Детали — в §1.
  • Docker + docker-compose, Linux + systemd, CI/CD (GitLab CI / GitHub Actions), аккуратная работа ссекретами.

Задачи:

1. Парсинг маркетплейсов

Реальный прод-опыт парсинга/скрапинга с обходом антибот-защиты — не только API-интеграции.Конкретно ожидаем:

  • Playwright (Python, async_api): управление контекстами/страницами, перехват сети, запуск насервере без дисплея (Xvfb). Понимание, что чистый headless-браузер на защищённых сайтах ловит403/капчу.
  • Антидетект-браузеры Camoufox или аналоги (undetected-chromedriver, patchright, nodriver):понимание, что маскировка нужна на уровне движка, а не JS-инъекцией (stealth-плагины детектятся).
  • Детекция headless-браузера: знает основные сигналы (navigator.webdriver, отсутствиеwindow.chrome, WebGL/canvas fingerprint, CDP-артефакты, поведенческие).
  • HTTP/TLS-уровень: curl_cffi с impersonate, понимание TLS-фингерпринта (JA3/JA4) — почемуrequests/httpx палятся даже с правильными заголовками. httpx, cookie/session-менеджмент.
  • Данные из внутренних JSON-API магазинов (реверс запросов из DevTools) вместо парсинга HTML;поддержка при смене схемы.
  • Сессии и прокси: warm-session (прогрев один раз, переиспользование куки), мобильные/резидентскиепрокси, ротация IP, SOCKS5; понимание бана по репутации IP (а не только по fingerprint) и что паузамион не лечится.
  • Надёжность пайплайна: идемпотентный UPSERT, очередь задач с FOR UPDATE SKIP LOCKED, обработказависших задач (lease/timeout).

Будет плюсом: масштабирование парсинга (пул прокси/модемов с бюджетом запросов, авто-ротация ивосстановление при банах); реверс мобильных/приватных API (подпись запросов, антифрод-заголовки,токены); опыт с коммерческими WAF/антиботами (Cloudflare, Akamai, DataDome, PerimeterX) и решениемкапчи; устойчивая 24/7-эксплуатация парсеров (heartbeat, алерты, самовосстановление).

2. Канонизация и матчинг товаров

Сведение офферов из разных магазинов в единые канонические карточки (entity resolution /дедупликация).

  • Многосигнальный матчинг, а не один порог по одному признаку: нормализация (бренд, весграммы,тип упаковки) + нечёткое сравнение (pg_trgm, FTS tsvector) + текстовые эмбеддинги и векторныйпоиск + штрихкод (GTIN/EAN) как точный сигнал, где он есть.
  • Пороги калибруются по precision/recall, есть заданная метрика качества — не «магическое 0.85».
  • Краевые случаи: разные фасовки/вкусы одного товара — это разные карточки (вес/упаковка — частьключа); ложные слияния; дубликаты; аналоги/замены.
  • Human-in-the-loop: очередь модерации (link/create/reject), накопление размеченных данных.

Будет плюсом: продовый entity resolution на больших каталогах (сотни тысяч–миллионы SKU); гибридныйпоиск (BM25 + векторный) и ре-ранкинг (cross-encoder); подбор/дообучение эмбеддингов под домен ирусский язык (морфология, лемматизация); выстроенный цикл разметки и active learning с метрикамиprecision/recall; LLM-верификатор матчинга со structured output.

3. PostgreSQL и масштабирование данных

  • Индексы: B-tree, GIN (в т.ч. jsonb_path_ops), pg_trgm, FTS; чтение планов запросов.
  • JSONB для гибких атрибутов товара: операторы (->>, @>), GIN-индексация, generated columns для«горячих» полей.
  • История цен как быстрорастущая таблица: эффективные запросы (свежая цена ORDER BY ts DESCLIMIT 1; медиана за 30 дней через percentile_cont).
  • Партиционирование по времени (PARTITION BY RANGE, pg_partman) и понимание разницыпартиционирование шардинг: на рост таблицы правильный порядок — партиции ретенция/агрегация read-реплика и только потом горизонтальный шардинг.

Будет плюсом: Citus (горизонтальный шардинг), read-реплики (потоковая репликация), PgBouncer,нагрузочное тестирование (p50/p95/p99).

4. AI/LLM для ассистента

  • RAG-пайплайны: чанкинг, эмбеддинги, векторный поиск, сборка контекста; понимание, как меритькачество и стоимость.
  • Векторная БД — Qdrant: коллекции, payload-фильтры, пороги, батч-upsert.
  • Интеграция LLM (через OpenRouter — Claude Haiku/Sonnet): structured output / JSON-schema, function-calling, prompt engineering, контроль токенов/стоимости.
  • Диалог/агент: чат-онбординг (извлечение структурированных полей из свободного текста), сценариидействий ассистента; при опыте — LangGraph/LangChain.
  • Observability LLM: Langfuse (или LangSmith/Phoenix) — трейсинг вызовов, стоимость/латентность,evals, LLM-as-judge. Понимание, зачем это нужно поверх обычных метрик.
  • PII / 152-ФЗ: деперсонализация перед внешним LLM, резидентность данных в РФ, почему инструмент спромптами держат self-hosted.

Будет плюсом: self-hosted LLM (vLLM/TGI), STT/TTS для голоса (Whisper/GigaAM, Silero), fine-tuning(LoRA/QLoRA).

Помимо стека

  • Работа в команде: внятная коммуникация, code review, ведение задач; комфортен в маленькойкоманде и self-hosted-окружении.
  • Умеет аргументированно объяснять и защищать свои решения, честно обозначать ограничения;корректирует подход под уточняющими вопрсами.
  • Самостоятельность: владеет задачей от проектирования до эксплуатации, а не ждёт готовыхинструкций.
  • Продуктивно использует ИИ-агентов (Claude Code и т.п.) для рутины, но это не «чистый вайбкод»:понимает, ревьюит и отвечает за сгенерированный код, держит инженерную планку.

Будет плюсом: создание собственных AI-инструментов для разработки (кастомные скиллы/агенты/пайплайны, автоматизация рутины), которые реально ускоряют работу команды — при сохраненииконтроля качества, а не полный вайбкод.

Адрес: Москва, Замоскворецкая линия, метро Белорусская

 

Откликнуться на вакансию

Дата
14.07 15.07
USD
2.864 2.8638
EUR
3.2737 3.2651
RUB
3.7336 3.7282
CNY
4.2219 4.2245
CHF
3.5393 3.5271
GBP
3.8348 3.8314
PLN
7.5715 7.5172
Минск
Ночью: °C
Утром: °C
Днем: °C
Вечером: °C

Сейчас: Скорость ветра: 5-7 м/c Атм. давление: 758 мм.рт.ст Влажность: 90%

Спецпредложения