EVO — продуктова українська IT-компанія. Центральний офіс знаходиться в Україні (Київ). EVO — 1200+ співробітників, технічний департамент понад 300 осіб, розробників понад 200 осіб. Місія EVO — створювати можливості для розвитку підприємництва.
16 липня 2018

Junior/Middle Python Software Engineer (проект Prom.ua/CRM) (вакансія неактивна)

Київ

Команда BackOffice проекту Prom.ua шукає Junior/Middle Python Software Engineer’a.

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

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

Наша команда BackOffice:
4 Python розробника, 1 TL Python, 2 QA, 1 automation qa, product менеджер і біздев напрямку.

Команда BackOffice відповідає за розробку:
Сервіс телефонії
Сервіс синхронізації із зовнішніми системами
Сервіс модерації
Сервіс CRM
Сервіс Адміністрування внутрішніх систем
Сервіс Білінгу
Сервіс Зовнішнього моніторингу працездатності сервісів EVO
Сервіс автоматичного отримання та продовження TLS — сертифікатів

Технічний стек проекту:
Python 2.7 (перехід на 3.6/aiohttp з поділом на мікросервіси), є кілька продуктів/сервісів, написаних на Go.
Стандартна база — PostgreSQL (експериментуємо з CockroachDB);
Для нашого пошуку використовуємо ElasticSearch. Під вирішення окремих завдань існують кастомні плагіни.
React, рухаємося в бік GraphQL + Apollo і плавно мігруємо на серверний пререндерінг.

Щотижня в компанії проходять внутрішні доповіді від технічних фахівців EVO (dev-club і js-club).

Із загальних інструментів використовуємо:
Webpack 3, GitlabCI, Kibana, Сelery + RabbitMQ, Kafka, GRPC, Grafana, Memcached.
більше подробиць про тех рішення в EVO: goo.gl/gN3gng
(Основний проект — моноліт, який переводимо на мікросервісну архітектуру (зараз в розробці> 20 сервісів)

Наш кандидат:
Шукаємо хороше розуміння Python як мови, а не заточеності під конкретний фреймворк. Впевнене володіння базами даних. Не БД адміністратор, але вміє розібратися, чому такий запит повертає такі дані, які способи його покращення (з умінням використовувати SQL). Важливо розуміти і знати як декомпозитувати програмну систему. Для чого потрібні черги завдань, як зберігати призначені для користувача дані, як організувати по ним пошук. З хорошими базовими знаннями по роботі алгоритмів, обчислення їх складності та принципів оптимізації.
Добре, якщо є досвід з різними мовами програмування. Дуже добре, якщо дивитеся в бік нових мов. Звертаємо увагу на гітхаб акаунти. Добре, коли там є щось цікаве, не обов’язково популярне.

Завдання, для яких ми шукаємо людей:
— рефакторинг коду на Python 2.7: розробка нових сервісів на Python 3.6, Go і ін. актуальними мовами, покликаних замінити старий моноліт
— розробка внутрішнього GraphQL API (додавання нових можливостей і оптимізація старих)
— оптимізація пошуку ElasticSearch
— інтеграції з зовнішніми партнерами: платіжні системи, смс, вайбер, пошти
— розробка системи модернізації, двухфакторної авторизації
— експерименти з машинним навчанням
(В загальному — розробка та підтримка функціоналу проекту; рішення задач, спрямованих на покращення архітектури і оптимізацію продуктивності)

Точно буде в роботі:
— робота в згуртованій команді за налагодженими процесами (стенд-апи, ретро, ​​планування, оne2one ..)
— експерименти з новими технологіями та сервісами
— код рев’ю
— менторство
— команда і її традиції
— написання тестів
— багато командного обговорення на тему: як реалізувати новий функціонал

Точно НЕ буде в роботі:
— верстки (є окрема команда досвідчених верстальників. Після того, як розробник виконав логічну частину завдання, вона переходить верстальнику, де той по готовому дизайну робить pixel-perfect верстку)
— нудно
— тайм-трекінгу завдань.