ВЕЖА·Вакансии На главную

Вакансии

Мы строим систему раннего предупреждения и ищем двух инженеров уровня senior. Ниже — что предстоит делать и чего мы ждём.

01Формат работы

  • Формат: удалённо в часовых поясах Москва ±3 часа — либо офис в Москве, если так удобнее.
  • Занятость: полная; рассмотрим частичную для сильного кандидата на старте.
  • Вилка: обсуждается индивидуально по итогам технического разговора.
  • Процесс: письмо → разговор о задачах (60 минут) → техническое обсуждение вашего опыта и наших задач (90 минут) → оффер. Тестовых заданий «в стол» не даём.

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

02Senior Data / Backend Engineer

Вы отвечаете за контуры сбора и хранения: всё, что происходит между открытым источником и готовой к анализу записью.

Задачи

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

Ожидаем

  • 5+ лет коммерческой разработки на Python или Go, из них не менее двух — на конвейерах данных;
  • боевой опыт с очередями (Kafka, NATS или аналоги) и оркестрацией задач (Temporal, Airflow);
  • уверенное владение PostgreSQL и понимание, когда нужна колоночная база (ClickHouse) или поисковый индекс (OpenSearch, Elasticsearch);
  • опыт промышленного парсинга: устойчивость к изменениям разметки, работа с прокси, честное отношение к robots.txt и условиям источников;
  • Docker, CI, умение довести свой сервис до продакшена и потом его чинить.

Будет плюсом

  • работа с графовыми базами (Neo4j, Apache AGE);
  • опыт высоконагруженных потоковых систем;
  • понимание правовой стороны сбора открытых данных.

03Senior ML / NLP Engineer

Вы отвечаете за контур осмысления: превращаете поток текстов на разных языках в связную картину событий, сущностей и сюжетов.

Задачи

  • извлечение сущностей из русскоязычных текстов: компании, персоны, географии, суда, активы — с учётом склонений, сокращений и разнобоя в написании;
  • связывание сущностей с государственными реестрами: разрешение омонимии, сопоставление по ИНН и ОГРН;
  • кластеризация сообщений в сюжеты и отслеживание того, как сюжет развивается во времени;
  • модели значимости и риска: отделить событие, которое реально касается клиента, от информационного шума;
  • детекция аномалий — всплеск упоминаний там, где обычно тихо;
  • вывод моделей в продакшен: инференс в реальном времени, контроль качества, переобучение на обратной связи аналитиков.

Ожидаем

  • 5+ лет в ML, из них не менее трёх — в NLP на продакшене, а не в ноутбуках;
  • предметный опыт с русским языком: NER, нормализация, кластеризация — знаете, почему англоязычные пайплайны на нём ломаются;
  • уверенная работа с трансформерами и эмбеддингами, понимание компромисса между качеством и стоимостью инференса;
  • опыт entity resolution или матчинга записей;
  • Python, PyTorch, умение оптимизировать инференс (ONNX, квантизация, батчинг).

Будет плюсом

  • опыт в медиа-аналитике, антифроде, комплаенсе или расследованиях;
  • работа с векторными хранилищами и семантическим поиском;
  • казахский, узбекский или другие языки региона.

04Как откликнуться

Напишите на hello@vezhalab.ru и укажите в теме письма название позиции. Перед откликом имеет смысл посмотреть схему комплекса — там видно, из чего состоит система и где в ней ваша часть.

Что стоит приложить:

  • резюме или ссылку на профиль — в любом виде, оформление роли не играет;
  • два-три примера задач, которые вы решали, с описанием: что было сложного и какое решение выбрали;
  • ссылки на код, если есть возможность их показать.

Мы отвечаем на каждое письмо, в том числе отказом с объяснением причины. Обработка ваших данных описана в политике конфиденциальности: отклики храним не дольше года, если вы не попросите удалить их раньше.