Обязанности:
Мы делаем систему сессионного антифрода. Она собирает отпечаток устройства и поведение пользователя в интернет-банке, распознаёт ботов и мошенников и решает, пропустить операцию или остановить. Чем предстоит заниматься: Собирать наборы для обучения из истории событий в Iceberg: срез за период, метки из подтверждённых решений аналитиков, состав набора записан, чтобы его можно было собрать заново. Вести учёт версий моделей: какая версия на каких признаках обучена, с какими метриками, в каком статусе (тест, канарейка, прод, отозвана). На старте это таблица и регламент, не отдельная платформа. Сделать подготовку данных для модели на пути события: по описанию модели (список полей и правила преобразования) собрать нужные поля из события, кешей и графа и привести их к одному виду, тому же, что при обучении. Сам вызов модели и её обслуживание делает Java-команда, ваша часть данные и их скорость: на сборку и преобразование не больше 50 мс. Настроить проверку новой версии модели на данных: отложенный по времени срез, сравнение с текущей версией на одних и тех же событиях, прогон по истории. Поставить мониторинг в Prometheus и Grafana: отставание конвейеров, сверки источников, дрейф входных данных и скоров, задержка и доля таймаутов, качество по подтверждённым решениям; оповещения. Проектировать таблицы ClickHouse под нагрузку: ключи сортировки, партиции, сроки хранения, материализованные представления. Вести стенды данных: Docker, S3-хранилище, Kafka, ClickHouse, PostgreSQL; сборка и деплой в Jenkins; метрики в Grafana. Документировать схемы и регламенты так, чтобы ими пользовалась команда и заказчик. Что ждём от кандидата: Уверенный Python и стек обработки данных: pandas, PyArrow, Parquet, тесты на pytest. ClickHouse в бою: настройка, схемы таблиц и ключи сортировки, поведение под нагрузкой и при слияниях, SQL-аналитика, умение объяснить план запроса. Kafka: топики, партиции, группы потребителей, повторы и дубли, Avro и реестр схем. Умение прочитать Java-код продюсера и потребителя и договориться с Java-командой о контракте. S3-совместимые хранилища (MinIO, Ceph) и Parquet поверх них. Linux-консоль, Git, Docker: сами поднимаете стенд из нескольких сервисов и разбираете инцидент по логам. Prometheus и Grafana: метрики сервисов и конвейеров, дашборды, оповещения. Понимание экосистемы Java. Jupyter как рабочий инструмент. Будет плюсом (по убыванию важности): Iceberg, Delta или Hudi в проде; Kafka Connect и строгие Avro-схемы. Хеширование и маскирование персональных данных: банк спросит об этом первым. Airflow или другой оркестратор конвейеров. PostgreSQL, в том числе pgvector. Антифрод или скоринг: разметка, холдаут по времени, утечки признаков. MLflow или другой реестр моделей: пригодится позже, на старте не нужен. Чего не ждём:Не нужно быть исследователем в ML: модели выбирает и обучает аналитик данных. Ваша задача сделать так, чтобы любую модель можно было подключить, проверить и отозвать. Не нужен Kubernetes: поставка идёт в контур заказчика, часто без него. Условия: Официальное трудоустройство по ТК РФ; Стабильная заработная плата; График работы 5/2, 40-часовая рабочая неделя; ДМС после прохождения испытательного срока; Онлайн-платформа по обучению от материнской компании; Полная занятость; Удаленная работа.Похожие вакансии
Инженер-тестировщик (сессионный антифрод)
До 190 000 руб.
Москва. Станции метро: Проспект Вернадского
Фаззи Лоджик Лабс
От 280 000 до 420 000 руб.
Москва. Станции метро: Проспект Вернадского
Сбербанк России, ПАО