EVO — продуктова українська IT-компанія.
6 августа 2019

Senior Python Back End Software Engineer (проект Prom.ua)

Киев

Проект Prom.ua компанії EVO в пошуках Senior Python Back End Engineer’a.

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

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

Розробкою займається 5 команд, кожна з них відповідає за свою частину проекту і сервіси.
Ми шукаємо Senior Python Back End Engineer’a в команду Marketplace.

Наша команда Marketplace займається такими напрямками:
— каталог товарів (робота з картками товару, з видачею товарів, seo оптимізація, антиспам)
— робота з рекомендаціями товарів
— seo
— пошукова система
— система аналітики і великих даних
— сервіс обробки/віддачі зображень

Проект з технічного боку:
Основний проект на Python 3.7, SQLAlchemy, Redis, Celery, GraphQL.
За базу даних — PostgreSQL, для пошуку — ElasticSearch.
SPA додаток на ES2018, React
Є набір Slack-ботів і невеликих сервісів на aiohttp і Flask
використовуємо GitLab
Деплой Docker + Kubernetes
Онлайн аналітика на Spark Streaming (Scala) + Clickhouse + GraphQL

Більше про технічний департамент і рішення в EVO:
Основні мови програмування: Python, JavaScript, TypeScript, Golang
Монолітні частини на Python написані з використанням кастомного веб-фреймворку, Django або Flask. Нові Python-проекти починаємо на aiohttp.
Для JavaScript на бекенді використовуємо express або koa. Все більша частина API переходить на GraphQL, тому регулярно підключаємо Apollo Server. Значна частина сервісів на Node.js написана на TypeScript. Фронтенд пишемо в основному на React.

В основному базою даних беремо PostgreSQL. В сервісах також використовуються MongoDB, ClickHouse. Для пошуку використовуємо ElasticSearch. Для асинхронних задач —RabbitMQ або Kafka.
CI/CD реалізуємо через GitLab. Продакшн працює на kubernetes (istio, prometheus, elk stack, grafana)

Наш підхід до процесу розробки:
Ініціатором завдання може бути будь-який співробітник команди. В робочій групі обговорюється, як конкретне завдання вплине на продукт (цілі, метрики, перспективи цього напряму). Зараз в планах велика кількість експериментів з боку продукту, бізнесу.
У розробку потрапляють завдання, які потрібно перевірити за допомогою a/b тесту або вже перевірені за допомогою fake mvp. У нас є можливість включати фічі на певний відсоток трафіку і моніторити результати.
Є можливість перемикатися між різними напрямками задач, які описані вище.
Ми відкриті до експериментів з технічного боку, які дають плюси в розвитку або ж в якості продукту.

Наші кандидати/кандидатки:
— відмінно знають Python, не заточені під конкретний фреймворк;
— впевнено працюють з базами даних PostgreSQL;
— мають розуміння як і для чого працює Hadoop stack (Yarn + HDFS);
— працювали з Kubernetes — ідеально, якщо вивозили свої сервіси;
— впевнені користувачі Git’a.

Буде плюсом якщо:
— мають досвід роботи зі Spark + Spark Streaming в контексті Pyspark, знають що таке watermark і навіщо він потрібен;
— мають досвід роботи зі Scala (вміють відрізнити об’єкт від класу, можуть розповісти про переваги і недоліки implicit-функцій).

Глобальні задачі:
Наша команда працює над поліпшенням клієнтського досвіду на порталі, тому більшість завдань, так або інакше, пов’язані з цим:
— розробка трекінгу а / b тестів в онлайні;
— робота в парі з data scientist по викачуванню моделей ML в продакшн;
— поліпшення ранжирування для збільшення конверсій в замовлення;
— завдання по оптимізації роботи гриндера;
— завдання з розвитку та підтримки сесійного парсеру (написаний на Scala).

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

LinkedIn