Python Back End Engineer (проект Shafa)

У проекту є мета - зробити брендові речі доступними для кожного українця. Відтак на Shafa.ua можна купити річ за ціною двох квитків у кіно.

Є у команди і глобальна місія - розвивати в Україні культуру свідомого споживання, допомогти українцям не викидати речі в хорошому стані, а передавати їх новим власникам.

Shafa.ua в цифрах:
~ 1.5 млн користувачів
~ 7.5 млн товарів
до 1000 rps

З технічного боку Shafa.ua
Back End:
Python3 / Django
PostgreSQL
ElasticSearch
Kubernetes

Shafa.ua - це монолітне рішення, яке базується на: Python, Django, Celery. Частина інтерфейсу працює на jinja templates але новий функціонал, переважно, пишеться на React з використанням GraphQL. Окрім web у нас є мобільні додатки, api для яких реалізовані повністю на GraphQL.
Використовуємо: ElasticSearch, PostgreSQL, Redis, Memcached, RabbitMQ etc. Кластер ElasticSearch доволі великий і займає понад 90% від усієї інфраструктури.
Маємо мікросервіс на Go і зараз відбувається робота над новим мікросервісом на aiohttp.
Пишемо дуже багато тестів і радіємо життю (api покрито ~100%).
Все це щастя крутиться в Kubernetes.

Front End:
Новий функціонал:
React
Apollo / GraphQL
Typescript
CSS modules
Jest

Що важливо для цієї позиції?
Оскільки команда продуктова, нам важливо, щоб розробник був продуктово орієнтований. Це означає, що розробник не просто виконує поставлену задачу, а розуміє проблеми бізнесу, які вирішує ця задача, може запропонувати більш оптимальне рішення, якщо таке існує або навпаки показати, що ця задача не має цінності. Оскільки Shafa.ua високо навантажений проект і кожна помилка може мати серйозні наслідки, ми цінуємо відповідальність і осмисленість під час роботи над задачами.

Що точно буде на цій позиції?
Shafa.ua високонавантажений проект - тому у процесі роботи над продуктовими задачами, потрібно буде писати оптимальний код та інколи робити оптимізації над існуючим. Все це потрібно буде якісно покривати тестами.
Спектр задач на Shafa.ua доволі широкий, тому в роботу можуть потрапляти задачі від написання / інтеграції ML моделі та глибокої роботи з ElasticSearch до виправлення description в jinja template.
Загалом команда працює над продуктовими задачами. Як приклад - кошик або робота над Pro account.
Команда розробки займається написання коду, інтеграції CI та деплоєм проекту на продакшн через Kubernetes.

До чого ми прагнемо:
У Shafa.ua 2 основних напрямки:
- розвиватися в сторону мікросервісної архітектури
- перевести front-end на SPA

Наш кандидат:
- знає Python, не заточений під конкретний фреймворк
- має досвід web розробки, розуміє що таке мікросервісна архітектура та має досвід її застосування
- впевнено працює з базами даних PostgreSQL (або аналогами): транзакції, індекси, оптимізація складних запитів - не повинні бути проблемою
- має уявлення, що таке NoSQL бази даних та пошукові движки (ElasticSearch)
- має досвід роботи з Docker / Kubernetes
- з продакт інженерним підходом до вирішення завдань

Глобальні задачі розробників проекту:
Перехід з моделі классифайд на більш класичний e-commerce
- Підключення можливості оплатити замовлення прямо на сайті
- Підключення сервісів доставки та відстеження статусу замовлення в нашому додатку
- Інтеграція з Платіжною системою
Розвиток проектів для продавців
- Розширення функціоналу для активних продавців
- Розвиток платних рекламних послуг на Shafa.ua

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

About EVO

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

Основні мови програмування, які ми використовуємо це Python 3.7 (моноліт + сервіси на 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
Мови: Java і Kotlin (нові проекти чисто на 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/

Job posted on 8 October 2019
306 views

Apply for job




Get new jobs by e-mail

Describe what you’re looking for and Djinni will send you matching jobs.


E.g.: (senior|middle) rust -blockchain