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

Senior Python Back End Engineer

Поділитися

Про проект:

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

Prom.ua в цифрах:

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

Про команду:

6 Python dev, 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.9 (синхронний та асинхронний)
  • Інша частина на Go.
  • Міжсервісна комунікація налагоджена через gRPC, REST, Kafka.
  • У якості бази даних використовується PostgreSQL
  • Для зберігання великих об’ємів даних — ClickHouse. Також MongoDB в основному для файлів (gridfs).
  • Client side написано на JavaScript. З використанням ReactJS та інших відомих  бібліотек.

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

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

Задачі в проекті:

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

Як у нас проходить підбір та співбесіди?

  1. Для початку, ваше резюме розглянуть технічні фахівці. Після чого з вами зв’яжеться рекрутер.
  2. Знайомство в Google Meets для обговорення вакансії більш детально (30 хвилин).
  3. Якщо після знайомства нам взаємно цікаво продовжувати спілкування, ми домовимося про зручний час для технічної співбесіди (1,5 години).
  4. Фінальна співбесіда з продакт менеджером та СТО

Що ще про роботу в EVO?

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

Ліза з People Team

e.prokhorova

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

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

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

WATEVOcast — підкасти від наших розробників

EVO Opensource

hiku

бібліотека для побудови веб-серверів з
GraphQL та подібними мовами запиту

grpclib

бібліотека для написання сервісів на python3/asyncio та протоколом http2/gRPC (grpc.io)

ttag

бібліотека для інтернаціоналізації в JavaScript

elasticmagic

конструктор запитів в ElasticSearch,
подібний до SQLAlchemy

create-aio-app

the boilerplate for a quick start with aiohttp

aioredis

redis client for Python asyncio

lets

таск-Раннер, зручний інструмент для опису і запуску cli-команд в проектах (альтернатива Make)

evokit

React компоненти для розробки веб-інтерфейсів

Coming soon...

ЯКЩО НЕ ЗНАЙШЛИ ВІДПОВІДНУ ВАКАНСІЮ, АЛЕ В МАЙБУТНЬОМУ ХОЧЕТЕ ПРИЄДНАТИСЯ ДО НАШОЇ КОМАНДИ, ВІДПРАВТЕ РЕЗЮМЕ НА hello@evo.company