High load сервис транзитного трекинга почтовых отправлений.
Интегрируем логистические данные по 20+ странам (США, Китай, РФ, Европа, Азия) через 150+ источников: национальные почтовые сервисы, логистические API, кустарные трекеры.
Проект живой и требует внимания к стабильности. Мы работаем на результат, но необходимо понимать: если сервис сбора данных «падает» ночью или в выходные, это требует вашей оперативной реакции.
Ключевая задача:
Построение отказоустойчивой распределенной системы сбора данных, где каждый источник — это отдельный вызов: reverse engineering API, headless-браузеры, капчи, WAF (Cloudflare, PerimeterX, Akamai), сложная fingerprint-защита.
Мы не просто пишем парсеры. Мы управляем сложной системой, где:
- Node.js — ядро парсинга (Puppeteer / Playwright, адаптеры под прокси, кастомные инстансы браузеров)
- PHP 7.4+ (Symfony/API Platform) — API-слой, веб-интерфейсы, управление задачами
- Golang — микросервисы для ротации прокси, очередей, метрик
- Swift / Kotlin — нативные мобильные клиенты с встроенными механизмами сбора (iOS/Android)
- Grafana + Prometheus / VictoriaMetrics — мониторинг здоровья парсинговых воркеров, latency, error budget
- GitHub Actions — CI/CD, автотесты парсеров, деплой конфигураций
- Linux — самостоятельное администрирование окружения (systemd, Docker, сетевые настройки)
Чем предстоит заниматься :
1. Разработка и поддержка парсеров на Node.js
- Писать и рефакторить парсеры с использованием Puppeteer / Playwright в режимах headless / headful
- Управлять пулом браузерных инстансов (launch args, isolation, resource limits)
- Реализовывать fallback-сценарии: API → браузер → мокапы
2. Reverse engineering и эмуляция пользователя
- Анализировать защищенные сайты: разбирать network-трафик (Chrome DevTools Protocol), восстанавливать алгоритмы формирования запросов
- Эмулировать поведение реального браузера: тайминги, движения мыши, скроллы, события ввода
- Работать с CDP напрямую для тонкой настройки инструментария
3. Fingerprint & Proxy-инфраструктура
- Настраивать кастомные fingerprint-подстановки: WebGL, Canvas, AudioContext, fonts, navigator, WebRTC
- Работать с прокси-агрегаторами (ротация по сессиям, sticky sessions, IPv4/IPv6, residential / datacenter)
- Обрабатывать CAPTCHA (reCAPTCHA v2/v3, hCaptcha) через сервисы распознавания или кастомные решения
4. Мониторинг и надежность
- Разрабатывать Grafana-дашборды под метрики: RPS парсинга, успешность/ошибки по источникам, latency, использование памяти/CPU браузерами
- Настраивать алерты (аварийное падение воркеров, аномальный рост ошибок, отсутствие данных по ключевым трекерам)
- Участвовать в on-call: оперативно чинить падения парсинговой инфраструктуры вне рабочего времени
5. Архитектура и код
- Проектировать модульную систему парсинга с возможностью быстрого добавления новых источников
- Писать код с учетом ООП (инкапсуляция логики парсинга, переиспользуемые адаптеры)
- Участвовать в код-ревью, поддерживать CI/CD (GitHub Actions)
Требования :
- Уверенное владение Puppeteer / Playwright, включая работу с CDPSession, перехват запросов, эмуляцию устройств
- Понимание event loop, управление памятью (heap snapshots, детекция утечек в долгоживущих процессах)
- Опыт написания парсеров, работающих с динамическим контентом (SPA, WebSockets, iframe)
- Знание методов сбора fingerprint: WebGL, Canvas, AudioContext, fonts, WebRTC, navigator properties
- Опыт обхода детекции headless-режимов (пропуск navigator.webdriver, подмена chrome.runtime)
- Понимание устройства прокси-цепочек, авторизации, работа с прокси-сервисами (Bright Data, SOAX, Proxy6 и т.д.)
- Настройка Grafana с нуля: создание дашбордов, настройка алертов, работа с PromQL
- Понимание SLO / SLA применительно к парсингу: что значит "падение сервиса сбора"
Базовые технологии, ООП и архитектура
- Linux (администрирование, network, systemd)
- Git (ветвление, rebase, code review)
- CI/CD: GitHub Actions (сборка, тесты, деплой)
- Понимание SOLID, паттернов проектирования (стратегия, адаптер, фабрика)
- Опыт работы с большими кодовыми базами и legacy-кодом
Будет преимуществом:
- Опыт с PHP 7.4+ (Symfony, Doctrine) — необходимо для доработок API и веб-интерфейсов
- Golang — микросервисы для прокси-менеджмента, очередей (NATS, RabbitMQ)
- Мобильная разработка (Swift / Kotlin) — интеграция встроенных парсеров в нативные приложения
- Работа с нейросетями: OCR (Tesseract, EasyOCR), решения для распознавания капч, классификация изображений
- Опыт работы с большим количеством одновременных браузерных сессий (>100 контекстов)
- Навыки работы с Docker / Docker Compose, оркестрация парсинговых воркеров
Условия: - График гибкий с пересечением по времени для оперативной связи в рабочее время, но с обязательством оперативного реагирования на инциденты в любое время суток (on-call).
-
Формат работы: офис (Воронеж), удаленка, или гибрид — на твой выбор.
-
Оплачиваемый отпуск и больничные.
-
ДМС с расширенным пакетом (стоматология, стационар, скорая помощь).
- Зарплата: фикс, обсуждается по итогам собеседования, зависит от скиллов и готовности к условиям графика).
- Стек и свобода: вы сами выбираете подходы к обходу защиты, инструменты для фингерпринтинга, архитектуру новых парсеров.
- Интересные задачи: не "парсинг по инструкции", а реальный reverse engineering, работа с CDP, WAF, распределенными системами.
-
Компенсация обучения на курсах, конференциях и покупки профессиональной литературы.
-
Современный офис в центре города.
-
Комфортная кухня-лаунж зона: Xbox, настольный футбол, кальян, бесплатные снеки и напитки.
-
Отзывчивый HR, который поможет с любыми вопросами.
Как мы будем взаимодействовать:
- Знакомство с вашим опытом в парсинге и Node.js.
- Обсуждение кейсов: как вы решали проблемы с блокировками, как настраивали мониторинг.
- Возможное небольшое тестовое задание (или код-ревью ваших прошлых наработок) для оценки глубины понимания браузерных технологий.
Откликайтесь, если готовы погружаться в детали работы браузеров и прокси, а также не боитесь ответственности за стабильность сервиса 24/7.