Prom.ua — найбільший маркетплейс України, де продаються понад 100 млн товарів від десятків тисяч підприємців з усієї країни.
На Prom.ua:
- кожен покупець може знайти все, що потрібно, за найкращою ціною: від зубної щітки до культиватора для саду та городу.
- кожен підприємець може продавати товари в каталозі маркетплейса, на сайті, створеному на платформі Prom та у мобільному додатку «Prom покупки».
Prom.ua в цифрах:
- щодня маркетплейс відвідують 4,8 млн осіб
- на маркетплейсі працюють понад 60 тис. компаній
- у каталозі 102,5 млн товарів
Команда Moneybox проекту Prom.ua в пошуках Middle Python Software Engineer’a
Про команду:
3 Python Dev, 2 FrontEnd Dev, 2 iOS Dev, 2 Android Dev, Team Lead, QA Lead, 3 Automation QA, 1 Manual QA, Data Analyst, 2 Product Designer, Product Manager
Основні напрямки команди:
- розробка нового та підтримка поточного функціоналу кошика
- інтеграція та підтримка доставок та оплат
- замовлення і все, що з ним пов’язано
- кабінет покупця (замовлення, гаманець)
- акції та промокоди на порталі
- бани, антіфрод форм
Технічний стек проєкту, що вже використовуємо:
Мови програмування: Python 3, JS
Сервіси: PostgreSQL, Redis, Kafka, ElasticSearch, ClickHouse, MongoDB
Інфраструктура: Self-hosted Kubernetes, Openstack.
І ще трохи деталей:
- Портал prom.ua працює в Kubernetes як сукупність незалежних сервісів. Налагодженні системи логування (kibana), моніторингу (prometheus/grafana), CI/CD (gitlab).
- Більша частина сервісів написана на Python 3.10 (синхронний та асинхронний)
- Інша частина на NodeJS.
- Міжсервісна комунікація налагоджена через gRPC, REST, Kafka.
- У якості бази даних використовується PostgreSQL
- Для зберігання великих об’ємів даних — ClickHouse. Також MongoDB в основному для файлів (gridfs).
- Client side написано на JavaScript. З використанням ReactJS та інших відомих бібліотек.
Для даної ролі важливо:
- Від 3 рокiв комерційного досвіду
- Розуміння базових алгоритмів та структур даних
- Знання Python, не бути заточеним під конкретний фреймворк
- Мати досвід web/api розробки, розуміти що таке мікросервісна архітектура та досвід її застосування
- Мати досвід асинхронного програмування на Python
- Впевнено працювати з базами даних PostgreSQL (або аналогами): транзакції, індекси, оптимізація складних запитів
- Розуміти, як розподіляти навантаження між сервісами, як розподіляти дані між сервісами. Як ці дані зберігати та здійснювати до них безперервний доступ.
- Деплой та моніторинг організований на базі Kubernetes, Helm, Prometheus, Grafana. Потрібно буде освоїтись із цими технологіями для роботи над проєктом.
Наш підхід до процесу розробки:
- Технічний борг в нашому проекті один з пріоритетів на який завжди виділяється час
- Команда працює за гнучкою методологією, не боїмося підлаштовувати процеси під себе
- У кожного розробника є глибоке розуміння всієї системи та інфраструктури, розробка це не тільки про код, але і про особисте зростання та культуру
- Ми цінуємо work-life balance
- Немає великої кількості мітингів
Як у нас проходить підбір на дану позицію?
- Знайомство (тривалість 30 хв)
- Технічне інтерв’ю (тривалість 1,5 години). Обговоримо всі важливі питання по стеку, досвіду, завданням.
- Фінальне інтерв’ю за необхідністю (тривалість 30 хвилин)