
Старший разработчик Java, Гео спайдер
в Ozon
от 475 000 ₽/мес до налогов, совокупно

Технологии/инструменты
Привет! Это команда специализированных индексов поиска.
Миллионы пользователей каждый день ищут товары на Ozon. Чтобы предложить релевантные товары, поиску нужно учитывать не только текст запроса, но и сотни факторов: доступность товара в регионе, сроки доставки, итоговую цену со скидками. За эти факторы отвечают специализированные индексы — отдельные высокопроизводительные структуры данных, которые в реальном времени обогащают поисковую выдачу точной информацией о каждом товаре.
Мы строим распределённую систему специализированных индексов, которая собирается и обновляется через потоковую обработку на Apache Flink и выдаёт ответы за миллисекунды под нагрузкой в десятки тысяч запросов в секунду.
Основные задачи команды
- Разрабатываем и поддерживаем индекс доступности — фильтруем товары, которые недоступны для доставки в регион пользователя с учётом всей логистической цепочки.
- Разрабатываем и поддерживаем индекс сроков доставки — показываем только те товары, которые укладываются в заданный пользователем временной промежуток.
- Проектируем индекс цен — точное определение цены товара в поиске с учётом логистики, региональных коэффициентов и пользовательских скидок.
- Строим надёжные пайплайны потоковой обработки данных на Flink для постоянной синхронизации индексов с мастер-данными.
- Оптимизируем время построения и обновления индексов, чтобы изменения в логистике или ценах доходили до поиска за минуты, а не часы.
- Интегрируемся с командами ранжирования, чтобы специализированные индексы эффективно использовались в формулах поиска.
- Проектируем архитектуру хранения: балансируем между полнотой данных, скоростью записи и чтения, потреблением памяти.
Вы будете
- Проектировать и разрабатывать новые специализированные индексы (в том числе индекс цен) — от исследования требований до продакшена.
- Писать высоконагруженный код на Java, работающий под нагрузкой тысяч RPS с жёсткими SLA по latency.
- Работать с Apache Flink — строить потоковые пайплайны для сбора, агрегации и доставки данных в индекс.
- Оптимизировать структуры данных и форматы хранения для быстрого поиска и фильтрации (битовые карты, compressed sorted sets, вещественные числа с заданной точностью).
- Участвовать в интеграции индексов в поисковый движок.
- Проектировать A/B-эксперименты и следить за метриками качества поиска при изменениях в индексах.
Нам важно
- Хорошее знание Java и опыт разработки от 5 лет.
- Понимание классических алгоритмов и структур данных (особенно работающих с множествами, диапазонами, эффективной сериализацией).
- Опыт разработки многопоточных приложений и работы с распределёнными системами.
- Опыт использования реляционных СУБД и/или NoSQL-хранилищ (Cassandra, ScyllaDB, Redis).
- Умение тестировать собственный код и работать с чужой кодовой базой.
- Ответственность и аккуратность, готовность доводить задачи до конца.
- Умение работать в команде и договариваться с продуктовыми и DS-командами.
Будет плюсом:
- Опыт работы с Apache Flink (или другими стриминговыми движками: Kafka Streams, Spark Streaming).
- Опыт разработки специализированных поисковых индексов или работы с Lucene / Elasticsearch / OpenSearch.
- Опыт алгоритмической разработки: сжатие данных, BitSet / RoaringBitmap, range-индексы, работа с floating-point в условиях компромисса скорости и точности.
- Опыт с протоколами gRPC, Avro / Protobuf.
- Образование, связанное с математикой или Computer Science.
- Понимание Data Science и/или ML Engineering (как модели ранжирования потребляют факторы из индексов).
- Опыт работы с логистическими или ценообразовательными системами.

О компании Ozon
Ozon — одна из крупнейших российских e-commerce компаний. Ежедневно обрабатываются несколько миллионов заказов, которые доставляются в 6500 населённых пунктов по всей России.