Scala-разработчик в Товары
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
Ищем middle+/senior Scala-разработчика, который будет заниматься сервисами обработки данных о товарах и услугах для пользователей 2ГИС.
Команда Товаров собирает и обрабатывает информацию о товарах из прайс-листов от десятков тысяч компаний, из тематических агрегаторов, от компаний в личном кабинете 2ГИС, с сайтов компаний (парсим их в автоматическом режиме) и других источников. После обработки информация о товарах поступает в сервисы, которые раздают её конечным пользователям.
Что делает Scala-команда
Scala-команда отвечает за нормализацию, дедупликацию, классификацию данных о товарах, обогащение служебными данными, а также построение всех необходимых производных сущностей для потребителей.
- Система потоковая, масштабируемая и обеспечивает eventual consistency всех данных с гарантиями обработки данных at least once. Тут у нас десятки потоков данных, от сотен до десятков тысяч сообщений в секунду, и в них ~100M объектов.
- Часть задач нам помогают решить ребята из команды data science. Эти решения на другом стеке мы оборачиваем в устойчивые, масштабируемые и поддерживаемые бэкенды с RPC-интерфейсом и интегрируем их в основной pipeline обработки данных.
Также на scala мы строим подсистему извлечения товаров с сайтов компаний. В нашем распоряжении более 1M доменов, и для них нужно запускать сбор данных по расписанию, следить за актуализацией данных для парсинга, предоставлять данные для модерации сайтов и товаров.
Технологии
- Мы используем typelevel стэк: cats, cats-effect, fs2, doobie, http4s.
- Храним данные в PostgreSQL, Elasticsearch и RocksDB.
- Сервисы связываем через Kafka и RabbitMQ.
- Для мониторинга и алертов используем ELK, Grafana и Prometheus.
- Деплоим в Kubernetes через Gitlab.
Какие задачи предстоит решать
Совершенствовать систему сбора и доставки информации о товарах до конечных платформ-потребителей:
- обеспечивать стабильность эксплуатации системы, учитывая, что объёмы обновляемых товаров постоянно растут;
- увеличивать скорость доставки информации до конечных потребителей;
- реализовывать сценарии, позволяющие пользователям бронировать/заказывать товары через 2ГИС;
- поддерживать пользовательский контент (например, загрузка фото меню);
- анализировать и обогащать товары дополнительной информацией, полезной для пользователя;
- совершенствовать поиск по товарам.
С точки зрения парсинга сайтов организаций
- извлекать максимально качественную и полную информацию с сотен тысяч доменов, тысячи товаров с каждого (с категориями, названиями, ценами, фото и описаниями);
- обеспечивать стабильность и масштабируемость системы в соответствии с ростом потребностей.
Что ждём от кандидата
- Желание писать в функциональном стиле.
- Опыт разработки высоконагруженных бэкендов от 3 лет.
- Опыт работы с SQL и/или NoSQL базами данных.
Преимуществом будет опыт эксплуатации JVM-приложений, разработки на Scala, дизайна высоконагруженных бэкендов и стриминговых систем обработки данных, а также опыт работы с Kafka — мы используем её очень активно.
Что предложим
- Само собой, полностью белая зарплата, размер которой обсудим на собеседовании. Есть ДМС и другие IT-плюшки.
- Работать можно и удалённо, и в офисе — как удобно. В Новосибирске у нас два больших офиса: одиннадцать этажей в Сан-Сити и два этажа в Технопарке. В Питере есть центр разработки на Литейной.
- Строгого графика нет. Кто-то начинает работу в 9 утра, кто-то в 11, а кто-то — когда удобно ему и команде. Главное — выполнять задачи в срок и быть на связи с коллегами.