jaxel

Инженер по разработке краулер-движка (Node.js/TypeScript)

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

jaxel · На сервисе с: 27.08.26 10:28

Зарплата не указанаГрузияТбилисиУдалёнка
Мы ищем сильного инженера, который поможет нам построить и поддерживать масштабируемый движок для сбора данных — надёжный, предсказуемый и устойчивый к защитным механизмам сайтов. Это не про разовые скрипты: речь о промышленной системе, которая должна работать стабильно месяцами и годами, а при изменениях на целевых порталах — быстро и прозрачно восстанавливаться.

Вам предстоит не только разрабатывать ядро и модули краулера, но и переносить существующие реализации с JVM, внедрять слой на базе ИИ для извлечения данных, а также обеспечивать качество данных и прозрачность работы системы. Ключевая особенность роли — значительная доля рутинного, но критически важного сопровождения: вы будете регулярно чинить сломавшиеся селекторы, разбираться в изменившихся потоках навигации и фиксировать нюансы работы отдельных порталов.

Что нужно делать:

  • Разработать ядро краулер-движка на Node.js/TypeScript. Реализовать оркестрацию запусков, загрузку модулей, логику повторных попыток и задержек (retries и backoff), контроль параллелизма и частоты запросов, обработку ошибок, работу с артефактами запусков и логированием.
  • Создать набор подключаемых модулей (управление браузером, маршрутизация для обхода антибот-защиты, извлечение данных, пагинация, вывод результатов) и спроектировать декларативный формат описания источников — схему конфигурации и контракт выходной схемы, отделённые от параметров времени выполнения.
  • Использовать проверенные готовые решения для типовых слоёв (автоматизация браузера, цикл обхода, механизмы скрытности), чтобы сосредоточить внутренние усилия на том, что действительно специфично для наших данных.
  • Выстроить рабочий процесс для разработчиков: добавление источника, локальное тестирование, регистрация, планирование, мониторинг выполнения.
  • Перенести поведение существующих краулеров с JVM без потери покрытия и точности на уровне полей, включая неописанные «костыли» и особенности отдельных порталов.
  • Валидировать каждую миграцию по эталонному выводу, приоритизируя источники по частоте поломок, а не по алфавиту. Документировать особенности каждого портала в процессе переноса.
  • Поддерживать работу действующих краулеров в ходе миграции: классифицировать и устранять сбои, чинить сломанные селекторы, адаптироваться к изменениям навигации, перемещённым порталам и новой логике пагинации. Участвовать в дежурствах по источникам, за которые вы отвечаете.
  • Корректно различать типы сбоев: временные ошибки, изменения DOM, новая антибот-защита, стены авторизации, полное исчезновение портала — и вовремя эскалировать проблемы, которые нельзя решить инженерными методами.
  • Работать с антибот-защитой в рамках закона и правил сервисов: проводить реверс-инжиниринг порталов через анализ сетевого трафика и недокументированных JSON-эндпоинтов, подбирать подходящий инструмент под каждый источник (обычный HTTP, headless-браузер, управляемый stealth-браузер, стратегия прокси, сервис CAPTCHA).
  • Построить ИИ-слой для извлечения данных: реализовать извлечение на базе LLM с приоритетом схемы, с детерминированным фоллбэком на селекторы и циклом самовосстановления (обнаружение, диагностика, исправление, проверка) в жёстких рамках по количеству итераций и бюджету затрат, с контролем через верификацию схемы и сравнение с последним эталонным выводом.
  • Регистрировать источники в платформе планирования и мониторинга, участвовать в нормализации данных перед записью в хранилище (сопоставление имён, дедупликация, идемпотентная запись, восстановление частичных запусков), расширять бэкенд-сервисы на Node.js и внутренний UI для отображения статуса краулеров

Требования к кандидату:

  • От 3 лет опыта в коммерческой разработке ПО.
  • Не менее 1,5 лет разработки и поддержки краулеров/скраперов в продакшене на Node.js — это жёсткое требование: нужны примеры реально запущенных, расписанных по расписанию и поддерживаемых краулеров для сайтов, которые вы не контролируете.
  • Опыт длительной поддержки краулеров в продакшене (не разовые скрипты и не проекты для одного сайта).
  • Уверенное владение Node.js и TypeScript: асинхронные паттерны, контроль параллелизма и частоты запросов, обработка ошибок, повторные попытки и задержки.
  • Практический опыт работы с Playwright и/или Puppeteer в продакшене: понимание компромиссов между headless и headful, работа с контекстами браузера, состоянием хранения, перехватом сетевого трафика.
  • Знание инструментов для краулинга и парсинга в экосистеме Node (Crawlee, Cheerio или аналоги), а также умение выполнять низкоуровневый HTTP-скрапинг, когда браузер не нужен.
  • Опыт работы с бэкенд-сервисами на Node и REST API, знание SQL-баз данных (PostgreSQL или аналог).
  • Умение писать переиспользуемый код в стиле библиотеки: чёткие границы модулей, паттерны плагинов/стратегий, типизированные интерфейсы, версионированная конфигурация. Важно уметь показать пример, где несколько разовых решений были обобщены в единый движок.
  • Практический опыт борьбы с антибот-системами: Cloudflare Bot Management, Imperva, reCAPTCHA v2/v3, Turnstile, лимитирование частоты запросов; понимание браузерного и TLS-фингерпринтинга, стратегий использования прокси, сохранения сессий, платформ управляемых stealth-браузеров. Умение вовремя понять, что решение с CAPTCHA не поможет, потому что проблема в другом.
  • Практическое применение LLM для извлечения данных: структурированный вывод на основе схемы, проектирование промптов, валидация результатов, учёт стоимости токенов, понимание, когда LLM лучше селекторов, а когда — нет, и как защититься от «уверенных, но неверных» ответов.
  • Инженерия качества данных: валидация схемы, тестирование по эталонам/снимкам и сравнение данных с предыдущими запусками, нормализация, нечёткое сопоставление имён, дедупликация, идемпотентная запись.
  • Владение Git, навыки проведения код-ревью, понимание важности покрытия тестами, опыт работы с CI/CD, Docker, деплоем в облаке (предпочтительно AWS). Способность читать код на JVM для точного переноса логики.
  • Рабочий уровень английского языка для ежедневной технической коммуникации с командой заказчика.

Будет плюсом:

  • Опыт миграции скрапинг-системы с одного языка/рантайма на другой без простоя.
  • Опыт настройки краулеров на основе конфигурации или декларативного подхода, где источники — это данные, а не код.
  • Знакомство с фреймворками для агентов или агентскими рабочими процессами (вызов инструментов, многошаговые циклы, участие человека в цикле) — LangGraph, Claude Agent SDK или аналоги; агентская автоматизация браузера (Browser Use, Stagehand); MCP-серверы.
  • Знание управляемых платформ для скрапинга/извлечения данных (Firecrawl, Kadoa, ScrapeGraphAI, Apify) и коммерческих поставщиков данных как альтернативы скрапингу.
  • Опыт извлечения данных из PDF и документов (OCR, извлечение таблиц, структурированный парсинг); опыт скрапинга порталов государственных органов США или публичных реестров.
  • Понимание юридических аспектов скрапинга и границ правил использования сервисов: robots.txt, лимитирование частоты запросов, стены аутентификации, условия распространения данных.
  • Опыт фронтенд-разработки (React) для внутреннего UI операций — приветствуется, но не является заменой требований к краулеру.

Похожие вакансии Node.js

Соц.сети
O

AI-native Full Stack Engineer

orangesoftНа сервисе с: 24.09.26 17:35
Зарплата не указанаВесь мирУдалёнка

We’re hiring an AI-native Full Stack Engineer with strong experience in React Native and Node.js to help improve and ship our live mobile product.

You’ll work with React Native, Expo, TypeScript, NestJS, AI coach features, subscriptions, RevenueCat, webhooks.

We’re looking for someone with 3+ years of production TypeScript experience, experience shipping apps to both the App Store and Google Play, and a proven track record of improving existing production products.

Daily use of AI coding tools such as Claude Code, Codex, or Cursor is expected.

#Fullstack #TechJobs #MobileDevelopment #WebDevelopment #hiring

Соц.сети
H

Fullstack Developer (Node.js / NestJS / React)

hiplabsНа сервисе с: 24.09.26 16:17
200k–250k ₽Не указана странаЛокация не указанаУдалёнка

#вакансия #Nodejs #Nestjs #React #Fullstack #remote
Вакансия: Fullstack Developer (Node.js / NestJS / React) — 70% Backend / 30% Frontend
Компания: Hiplabs (аккредитованная IT-компания)
Вилка: от 200 000 до 250 000 руб. на руки
Формат: Удаленка (#fulltime)
Опыт: от 3 лет коммерческой разработки
Контакты: ••••••••
Ищем Fullstack-разработчика с сильным бэкенд-фокусом. Вам предстоит развивать архитектуру и логику FoodTech-сервиса.

🎯 Пропорция задач: Около 70% — это Backend (сложная бизнес-логика, базы данных, инфраструктура). Остальные 30% (или меньше) — поддержка фронтенд-приложений на React (админки, ЛКМ, front/SSR).
🛠 Стек проекта:
Backend: Node.js, NestJS, TypeScript, REST API, GraphQL, Prisma, TypeORM.
Frontend: React.js, TypeScript.
Data & Infrastructure: PostgreSQL, Redis, S3 (Minio/Selectel), Docker, Docker Swarm, Traefik, Nginx, Grafana, Loki.
💻 Чем предстоит заниматься:
• Разрабатывать модули ядра, микросервисы и интеграции с внешними системами.
• Проектировать реляционные модели данных в PostgreSQL и оптимизировать запросы.
• Разбираться в существующей архитектуре большого проекта и проводить рефакторинг.
• Самостоятельно декомпозировать задачи и доводить их до продакшена.
• Периодически дорабатывать интерфейсы административных панелей и личных кабинетов на React.
🛑 Что мы ждем от кандидата:
• Коммерческий опыт в разработке на Node.js и NestJS — от 3 лет.
• Уверенный TypeScript и понимание асинхронного программирования в Node.js.
• Отличное знание SQL и PostgreSQL.
• Умение самостоятельно разбираться в чужом коде без детальной документации.
• Базовый опыт работы с React.js и готовность переключаться на UI-задачи.
⭐️ Будет плюсом: опыт в foodtech, delivery, retail или логистике; опыт работы с геозонами, маршрутизацией, сменами/расписаниями или интеграцией с iiko.
🎁 Что мы предлагаем:
Никакой работы «в стол» — делаем продукты, которыми люди реально пользуются.
Минимум бюрократии — быстро принимаем решения и открыты к новым технологиям.
Развитие — компенсируем профильное обучение и курсы.
Рост дохода — регулярно пересматриваем зарплату при расширении зоны ответственности.
• Сильная команда для прокачки скиллов.
💬 Откликнуться: Пишите в Telegram ••••••••. Пожалуйста, укажите в сообщении ваш опыт работы с NestJS и уровень владения React.

Соц.сети
V

Senior Payment Engineer (Go/Node.js)

vamiНа сервисе с: 24.09.26 16:40
Зарплата не указанаНе указана странаЛокация не указанаУдалёнка

SENIOR PAYMENT ENGINEER (GO/Node.js)

🏢 Компания: VAMI
🌍 Формат: Удалёнка, глобально (пересечение с рабочими часами Кипра)
🕒 Занятость: full-time

О компании:

VAMI строит AI-native commerce-платформу для DTC-бизнесов с подписочной моделью. Проект финансируют фаундеры, которые создали портфель e‐commerce компаний с годовой выручкой $100M+. Небольшая инженерная команда и возможность напрямую влиять на архитектуру продукта.

Задачи:

• Разработка платёжной инфраструктуры: оркестрация и маршрутизация между провайдерами и MID.
• Реализация карточного vault, токенизации и безопасной работы с картами.
• Настройка рекуррентных списаний, ребиллинга, ретраев и защиты от двойных списаний.
• Подключение эквайеров/PSP и доведение решений до продакшена.

Требования:

• 5+ лет коммерческой backend-разработки, сильный опыт на Go или Node.js/TypeScript.
• Практический опыт payment orchestration и карточной токенизации.
• Понимание PCI DSS и безопасной работы с карточными данными.
• Опыт работы с несколькими PSP/эквайерами, recurring payments, обработки отказов и идемпотентности.
• Опыт в стартапах и самостоятельное ведение задач от решения до запуска.
• Ежедневное использование coding agents (Claude Code, Codex или аналогичные).
• Очень продвинутый английский для общения с международной командой и фаундерами.

Будет плюсом:

• Network tokens, account updater.
• Опыт с high-risk/continuity платежами и оплатой физических товаров.

Стек:

Go, Node.js, TypeScript, payment orchestration, PCI DSS, PSP/эквайеры, recurring payments, Claude Code, Codex

Условия:

• Полностью удалённая работа.
• Full-time, без параллельных проектов (B2B).
• Пересечение с рабочими часами Кипра.
• Небольшая команда, прямое взаимодействие с CTO и влияние на архитектуру.

📩 Отклик:
••••••••

HireSeeker собирает вакансии со всех площадок и присылает только релевантные. Бесплатно.