Проект Prom.ua компанії EVO в пошуках Middle Python Back End Software Engineer’a
Prom.ua — провідний торговий майданчик в Україні, більше 50 000 продавців і 120 000 000 пропозицій, кожна
Наш маніфест віддаленої роботи в EVO evo.business/...trudnikam-ot-osnovatelej
Prom.ua в цифрах, які будуть цікаві нашим кандидатам і кандидаткам:
по навантаженню 20 млн переглядів сторінок в день (162 млн подій при цьому),
5.5 млн запитів на пошукову видачу,
трафік в місяць близько 60 млн сесій,
в онлайні в піку одночасно 17к користувачів
Розробкою Prom.ua займається 5 команд, кожна з них відповідає за свою частину проекту і сервіси.
Ми шукаємо Middle Python Back End Software Engineer’a (Python/JS в співвідношенні 80:20) в команду Marketplace (одна з п’яти команд розробки проекту Prom.ua)
Проект Prom з технічного боку:
Мови програмування: Python 3, JS/TS, Go
Сервіси: PostgreSQL, Redis, Kafka, ElasticSearch, ClickHouse, MongoDB
Інфраструктура: Self-hosted Kubernetes, Helm, Prometheus
І ще трохи деталей:
Активно йде поділ на мікросервіси на Python (в основному aiohttp), Go
Моноліт написаний на Python
Як ORM використовується SQLAlchemy
Для взаємодії з користувачем, client-side написаний на JS. Використовується ReactJS і ряд інших популярних бібліотек. Верстати на даній позиції ви не будете (в нас є окрема команда)
На даний момент, більшість даних зберігається в postgresql & clickhouse
Асинхронна взаємодія базується на Kafka
Синхронна взаємодія переважно GRPC, REST (намагаємося не використовувати)
Що важливо для даної позиції:
— Важливо розуміти принципи роботи високонавантажених web (і не тільки) сервісів в ситуаціях, коли один сервер не здатний впоратися з навантаженням.
— Розуміти як розподіляти навантаження між сервісами, як шарити дані між сервісами. Як ці дані зберігати та здійснювати до них безперервний доступ.
— Важливо мати досвід роботи з реляційними базами даних. Вміти оптимізувати запити до них. Розуміти принципи, як можна шардувати дані між декількома екземплярами стореджей.
— Деплой та моніторинг організований на базі Kubernetes, Helm, Prometheus, Grafana. Потрібно буде освоїтися з цими технологіями для роботи над проектом.
— Розуміти основи Computer Science і розуміти їх прикладний значення
Продакт інженерний підхід до вирішення задач: ми продуктова команда, нам важливо, щоб розробники були продуктово орієнтовані. Це означає, що розробник не просто виконує поставлене завдання, а розуміє проблеми бізнесу. І може запропонувати більш оптимальне рішення, якщо таке існує, або показати, що ця задача не має цінності.
Як у нас проходить підбір на дану позицію?Для початку, ваше резюме розглянуть технічні фахівці. Якщо воно буде схвалене, ми домовимося про відео-дзвінок знайомство. Ми обговоримо проект, ваш досвід і відповімо на питання. Після чого разом вирішимо, чи продовжимо спілкування вже на технічній співбесіді онлайн. Після кожного етапу ми обов’язково даємо зворотний зв’язок протягом 24 годин.
***********************************************************************************************************************************************************
Наша технічна команда EVO увесь час знаходиться в пошуках нової корисної інформації.
Ми читаємо багато книг, статей, блогів, оглядів і реліз-ноутів, дивимося презентації і доповіді, ходимо на конференції і мітапи.
У нашому каналі ми публікуємо все, що нам здалося важливим і корисним для розробників: