Backend Engineer
Основні обов’язки:
Розробка та підтримка скраперів для різних типів джерел (статичний HTML, API, сайти з JS-рендерингом та антибот-захистом). Запис і трансформація зібраних даних у бази компанії з дотриманням наявних ETL-процесів. Побудова рішень, стійких до блокувань, змін розмітки та rate-limit джерел.
Обов’язкові вимоги
Впевнений Python (включно з асинхронним підходом — asyncio). Практичний досвід скрапінгу: requests/httpx, парсинг через BeautifulSoup/lxml/parsel, бажано Scrapy. Розуміння HTTP на глибокому рівні: headers, cookies, sessions, робота з проксі та їх ротацією. Досвід протидії антибот-захисту (fingerprinting, retries, обхід rate-limit). SQL і практичний досвід роботи з реляційними БД — запис даних, батч-вставки, робота з наявними схемами. Розуміння патернів проєктування та вміння застосовувати їх у власному коді (наприклад, Strategy для різних джерел, Factory для парсерів). Git та культура код-рев’ю.
Буде плюсом
curl_cffi — з розумінням, навіщо і коли він використовується (обхід TLS-фінгерпринтингу). httpx — ці дві бібліотеки доповнюють одна одну, тому плюс, якщо кандидат розуміє, коли яку застосувати. Досвід роботи з мережею через Puppeteer/Playwright (не must have, але хороший сигнал). undetected-chromedriver — невеликий, але плюс. Досвід поєднання різних підходів до різних джерел залежно від складності захисту (API-first, HTML-скрапінг, headless-браузер). Docker, черги завдань (Celery/RQ), досвід роботи з проксі-провайдерами.