Deal.by — ведущий маркетплейс Беларуси. У нас предприниматели создают сайты, размещают товары в каталоге Deal.by и получают доступ к миллионной аудитории покупателей.
Наша цель — создавать возможности для развития предпринимательства в Беларуси.
Deal.by является частью семьи маркетплейсов продуктовой ITкомпании Evo.
Про технический департамент в EVO и про стек в проекте Deal.by:Основные языки программирования, которые мы используем это Python 3.8 (сервисы на aiohttp), и JavaScript.
Есть несколько новых продуктов, написанных на Go, Rust, Node.js (JS/TS), Scala, Kotlin. Стандартная база данных для наших проектов — PostgreSQL, также используем MongoDB .
Для поиска используем ElasticSearch. Под решение отдельных задач существуют свои плагины. Работаем с Clickhouse.
SPA приложения строим на ES6+, React. Двигаемся в сторону GraphQL + Apollo и плавно мигрируем на серверный пререндеринг (SSR). Часть проектов написана на TypeScript. Для сборки JS модулей используем webpack, CSS стили — CSS Modules.
Из общих инструментов используем:
Docker, Kubernetes, Istio, Prometheus, Grafana, Gitlab CI, Kibana, Redis, Memcached.
Все что нужно для крупного продакшн проекта: логгинг (kibana),метрики, мониторинг (grafana), очереди задач (celery+RabbitMQ), Kafka.
Свой биллинг, CRM/админка, рекламная сеть, чат, обертки над эластиком, своя реализация GraphQL-сервера на Python.
Основные направления команды:
-
работа с множеством внутренних и внешних интеграций с финансовыми системами
-
интеграция логистов, добавление новых способов доставки
-
улучшение ранжирования в каталоге, повышение конверсий в целом по маркетплейсу
-
интеграции с внешними сервисами, привлечение партнеров, синхронизация товаров
-
проверка гипотез по улучшению пользовательского (покупатели и компании) опыта
-
работа с трафиком (платным и органическим)
Что важно для данной роли:
-
важно понимать принципы работы высоконагруженных web (и не только) сервисов в ситуациях, когда один сервер не способен справиться с нагрузкой.
-
понимать как распределять нагрузку между сервисами, как шарить данные между сервисами. Как эти данные хранить и осуществлять к ним непрерывный доступ.
-
важно иметь опыт работы с реляционными и колоночными базами данных. Уметь оптимизировать запросы к ним. Понимать принципы, как можно шардировать данные между несколькими экземплярами стореджей.
-
для полнотекстового поиска используется ElasticSearch. Для работы необходимо понимать, как работать с полнотекстовыми поисковыми движками.
-
деплой и мониторинг организован на базе Kubernetes, Helm, Prometheus, Grafana. Нужно будет освоиться с этими технологиями для работы над проектом.
- Место проживания: Беларусь
Задачи на ближайшее время:
-
разработка и поддержка экосистемы платежей
-
улучшение ранжирования товаров в каталоге
-
интеграция внутренних сервисов в кабинет продавца и покупателя
-
добавление новых способов доставки
-
улучшение пользовательского опыта в работе с корзиной
-
разработка и поддержка сервиса для сертификации продавцов
-
поддержка сервисов для работы с платным трафиком
-
развитие публичного API для продавцов
-
поддержка API для мобильного приложения продавца и покупателя
-
рефакторинг и поддержка остальных сервисов команды
Чем интересны эти задачи с технической стороны:
-
проектированием сложных систем для взаимодействия с внешними интеграциями и партнерами
-
использованием современных технологий для построения новых сервисов и продуктов
-
разработкой новых сервисов с нуля
-
разработкой кросс-платформенных сервисов и решений
-
работой с высоконагруженным проектом