Python Back End Engineer на проект Prom.ua (offline) $2000-3500

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

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

Ми в пошуках Python Back End Engineers в дві команди розробки проекту Prom.ua
Команда CRM, задачі направлені на:
- задачі пов’язані з антифродом (в залежності від розвитку команди, можуть бути ML задачі)
- інформаційну безпеку
- білінг
- інфраструктурні задачі

та Команда MRD, де задачі направлені на:
- розвиток сервісу логістики
- розвиток публічного API, побудова аналітики та моніторингу для нього
- розробка та підтримка платіжного сервісу
- підтримка API для мобільного додатку продавця
- рефакторинг та підтримка інших сервісів команди

Проект Prom з технічного боку:

Технічна сторона проекту:
Часто доведеться працювати з Python 3

Для ефективного рішення задач використовуємо:
PostgreSQL, Redis,
а с Kafka, ElasticSearch, Kubernetes, Helm, Prometheus - готові допомогти та навчити

Використовуємо рідко:
MongoDB, JS\TS, Go

І ще трохи деталей:
Активно йде поділ на мікросервіси на Python (в основному aiohttp), Go (тільки починаємо)
Моноліт написаний на Python
Як ORM використовується SQLAlchemy
Для взаємодії з користувачем, client-side написаний на JS. Використовується ReactJS і ряд інших популярних бібліотек.
На даний момент, більшість даних зберігається в postgresql і частина в MongoDB
Асинхронна взаємодія заснована на Kafka
Синхронна взаємодію переважно GRPC, REST

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

Продакт інженерний підхід до вирішення задач: ми продуктова команда, нам важливо, щоб розробники були продуктово орієнтовані. Це означає, що розробник не просто виконує поставлене завдання, а розуміє проблеми бізнесу. І може запропонувати більш оптимальне рішення, якщо таке існує, або показати, що ця задача не має цінності.

Як у нас проходить підбір на дану позицію?
Для початку, ваше резюме розглянуть технічні фахівці. Якщо воно буде схвалене, ми домовимося про онлайн-дзвінок знайомство. Ми обговоримо проект, ваш досвід і відповімо на питання. Після чого разом вирішимо, чи продовжимо спілкування вже на технічній співбесіді онлайн. Після кожного етапу ми обов’язково даємо зворотний зв’язок протягом 24 годин.

About EVO

EVO — продуктова українська IT-компанія.
Prom.ua, Bigl.ua, Crafta.ua, Zakupki.prom.ua, Kabanchik.ua, Вчасно , Shafa, Izi, Rozetka Travel
**********************************************
Про технічний департамент в EVO:

Основні мови програмування, які ми використовуємо це 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, Memcached.
Все що потрібно для великого продакшн проекту: логгінг (kibana), метрики, моніторинг (grafana), черги завдань (celery + RabbitMQ), Kafka.
Свій білінг, CRM/адмінка, рекламна мережа, чат, обгортки над еластиком, своя реалізація GraphQL-сервера на Python.
**********************************************
Стек мобільних технологій:
iOS
Мови: Swift (нові проекти на Swift) і Objective-C
Архітектури: VIPER, Clean Swift
Сучасні бібліотеки: Moya, IGListKit, Realm, YapDatabase, lottie
Додатково: пишемо власні компоненти для шаринга між проектами, свій CI сервер (Gitlab CI і Jenkins)

Android
Мови: Kotlin
Архітектури: MVP, MVVM, VIPER, Android Architecture Components.
Сучасні бібліотеки: Retrofit, Realm, Lottie, MotionLayout, Glide.
Багатопотоковість: RxJava 1 & 2, Coroutines.
**********************************************
Збираємося на dev-club’и всередині тех.департаменту EVO:
на dev-club обговорюємо:
* Нові підходи, рішення які використовуються в командах (пропозиції, аргументація).
* Обмін досвідом (позитивним / негативним) про використання тих чи інших рішень.
* Обговорення інструментів (що є, чого не вистачає).
* Координація дій між командами для поліпшення, розвитку інфраструктури.
**********************************************
Проекти з відкритим кодом:
Swindon — Веб-сервер для великої кількості WebSocket-з’єднань
hiku— бібліотека для побудови веб-серверів з GraphQL та подібними мовами запиту
grpclib— бібліотека для написання сервісів з python3/asyncio та протоколом http2/gRPC (grpc.io)
elasticmagic — конструктор запитів в ElasticSearch, подібний на SQLAlchemy
ttag — бібліотека для роботи з gettext перекладами в JavaScript.

Company website:
https://evo.company

The job ad is no longer active
Job unpublished on 11 June 2021

Look at the current jobs Python Remote→