Проект Prom.ua компанії EVO в пошуках Python Software Engineer’a.
Prom.ua в цифрах:
по навантаженню 20 млн переглядів сторінок на день (162 млн подій при цьому), 5.5 млн запитів на пошукову видачу, трафік на місяць близько 60 млн сесій, в онлайні в піку одночасно 17к користувачів, близько 1к запитів на секунду на основний додаток, близько 5к запитів зображень в секунду, 4 млн завдань виконується за добу, близько 100 млн товарів в PostgreSQL / Elasticsearch)
Розробкою Prom.ua займається 5 команд, кожна з них відповідає за свою частину проекту і сервіси.
Наша команда, як частина проекту Prom.ua, займається проектуванням і розробкою:
— сервіс движка сайтів компаній (70 000+ сайтів)
— сервіс маркету інтеграцій та шаблонів для дизайну інтернет-магазинів (50+ інтеграцій та 1000+ шаблонів)
— сервіс оплат (в розробці)
— сервіс доставок
— обслуговування зовнішнього API (у розробці)
— мобільний додаток «Кабінет продавця Prom.ua» (iOS / Android)
Наша команда:
2 продакта + біздев + тімлід + 5 Python dev + 2 mobile dev + 1 верстальник + 5 QA = Merchant R&D team
Технічний стек у команді за сервісами:
сервіс движка сайтів компаній:
Python 3.6, Node.js, PostgreSQL, GraphQL, Apollo, React (ES6), Kafka, ElasticSearch, Amazon S3
сервіс маркету інтеграцій та шаблонів для дизайну інтернет-магазинів:
aiohttp (Python 3.6), Node.js, PostgreSQL, GraphQL, Apollo, React
сервіс оплат:
aiohttp (Python 3.6), PostgreSQL, REST API
сервіс доставок:
aiohttp (Python 3.6), Redis, REST API
сервіс інтеграцій інтернет-магазинів із соц. мережами:
aiohttp (Python 3.6), PostgreSQL, REST API, GraphQL
Із загальних інструментів використовуємо:
Webpack 2, GitlabCI, Kibana, Grafana, Vagga (інструмент для створення робочих оточень у контейнерах), lithos (контейнеризація для production’а), verwalter (програмована система оркестрації), Docker, Kubernetes, Memcached.
Наш кандидат:
— шукаємо хороше розуміння Python як мови, а не заточеності під конкретний фреймворк. Крім Python, важливо знати, які ще компоненти потрібні для побудови великих проектів.
— впевнене володіння базами даних. Не БД адміністратор, але вміє розібратися, чому такий запит повертає такі дані, які існують способи задля його поліпшення.
— розуміння і знання як декомпозувати програмну систему. Для чого потрібні черги завдань, як зберігати призначені для користувача дані, як організувати за ними пошук.
— добре, якщо є досвід з різними мовами програмування. Дуже добре, якщо дивитесь у бік нових мов.
— звертаємо увагу на гітхаб акаунти. Добре, коли там є щось цікаве, не обов’язково популярне.
Буде плюсом:
— досвід розробки / інтеграції сторонніх сервісів в основну програму;
— розуміння, як повинні взаємодіяти основний продукт з інтеграціями.
Чим ви будете займатися:
— підтримкою, розвитком і реалізацією нового функціоналу для кабінету продавця;
— розвитком відкритого зовнішнього API для Prom.ua;
— розробкою нових інтеграцій та сервісів для магазину додатків;
— створенням мікросервісів;
— пошуковою оптимізацією з ElasticSearch.
Кожні 2 тижні ми збираємося на js та dev-club’и всередині тех.департаменту EVO:
на js/dev-club обговорюємо:
* нові підходи, рішення які використовуються в командах (пропозиції, аргументація).
* обмін досвідом (позитивним / негативним) про використання тих чи інших рішень.
* обговорення інструментів (що є, чого не вистачає).
* координація дій між командами для поліпшення, розвитку інфраструктури.
Точно НЕ буде у роботі:
верстки, нудно, дедлайнів, тайм-трекінгу завдань.
Точно буде в команді:
— робота по налагодженим процесам (стенд-апи, ретро, планування, оne2one ..);
— експерименти з новими технологіями та сервісами;
— код рев’ю;
— менторство;
— команда та її традиції;
— написання тестів;
— робота з великими даними (100+ млн продуктів, характеристик, атрибутів, категорій)