• Розробка продукту
  • Web-розробка

Middle Python Software Engineer

Поділитися

Про проект:

Prom.ua – один з лідерів серед торгових майданчиків в Україні, більше 50 000 продавців і 112 000 000 пропозицій, кожна 5-а гривня в уанеті витрачається на prom.ua.

Prom.ua в цифрах:

  • по навантаженню 20 млн переглядів сторінок в день (162 млн подій при цьому),
  •  5.5 млн запитів на пошукову видачу,
  • трафік в місяць близько 60 млн сесій,
  • в онлайні в піку одночасно 23к користувачів

Про команду:

4 Developers, Team Lead, 3 QA, Product Manager

Команда займається всім, що стосується просування продуктів на порталі:

  • Кабінет продавця, що дозволяє налаштовувати рекламні кампанії, встановлювати ставки на рекламу, дивитися аналітику відображення реклами та конверсії.
  • Ведення обліку списання грошей за конверсійні дії з рекламою: кліки, замовлення.
  • Ранжування. Аналіз якості рекламного оголошення: конверсії в кліки і в замовлення, рейтинги продавця, кількість відмін замовлень і інші показники “якості”.
  • Інтеграція зі сторонніми рекламними мережами для просування продуктів в мережах партнерів: google, rtbhouse, criteo.

Технічний стек проекту:

Мови програмування: Python 3, JS, Go

Сервіси: PostgreSQL, Redis, Kafka, ElasticSearch, ClickHouse, MongoDB

Інфраструктура: Self-hosted Kubernetes, Openstack.

І ще трохи деталей:

  • Портал prom.ua працює в Kubernetes як сукупність незалежних сервісів. Налагодженні системи логування (kibana), моніторингу (prometheus/grafana), CI/CD (gitlab).
  • Більша частина сервісів написана на Python 3.10 (синхронний та асинхронний)
  • Інша частина на Go.
  • Міжсервісна комунікація налагоджена через gRPC, REST, Kafka.
  • У якості бази даних використовується PostgreSQL
  • Для зберігання великих об’ємів даних — ClickHouse. Також MongoDB в основному для файлів (gridfs).
  • Client side написано на JavaScript. З використанням ReactJS та інших відомих  бібліотек. 

Що важливо для даної ролі в проекті:

  • Важливо розуміти принципи роботи високонавантажених web (і не тільки) сервісів в ситуаціях, коли один сервер не здатний впоратися з навантаженням
  • Розуміти як розподіляти навантаження між сервісами, як розподіляти дані між сервісами. Як ці дані зберігати і здійснювати до них безперервний доступ
  • Розуміння особливостей роботи асинхронного коду в Python
  • Деплой і моніторинг організований на базі Kubernetes, Helm, Prometheus, Grafana. Потрібно буде освоїтися з цими технологіями для роботи над проектом

Найближчі задачі:

  • Розвиток можливостей управління рекламними кампаніями, розробка нових API.
  • Моніторинг існуючих сервісів. Рефакторинг з метою підвищення надійності і оптимізації продуктивності.
  • Розробка нових інтеграцій з зовнішніми рекламними мережами.

Наш підхід до процесу розробки:

  • Технічний борг в нашому проекті один з пріоритетів на який завжди виділяється час.
  • Команда працює за гнучкою методологією, не боїмося підлаштовувати процеси під себе
  • У кожного розробника є глибоке розуміння всієї системи та інфраструктури, розробка це не тільки про код, але і про особисте зростання та культуру
  • Ми цінуємо work-life balance
  • Немає великої кількості мітингів

Етапи інтерв’ю:

  • Технічне інтерв’ю (тривалість 1,5 години). Обговоримо всі важливі питання по стеку, досвіду, завданням.
  • Фінальне інтерв’ю (тривалість 30 хвилин) 

Анастасія з People Team

Анастасія

Хочу до вас у команду

Прикріпити резюме

Максимум 1 файл розміром до 5 МБ

ЯКЩО НЕ ЗНАЙШЛИ ВІДПОВІДНУ ВАКАНСІЮ, АЛЕ В МАЙБУТНЬОМУ ХОЧЕТЕ ПРИЄДНАТИСЯ ДО НАШОЇ КОМАНДИ, ВІДПРАВТЕ РЕЗЮМЕ НА [email protected]