Junior+ Python Back End Software Engineer (offline)

EVO Ukrainian Product 🇺🇦
Zakupki.Prom.ua – найбільший тендерний майданчик в Україні в системі Prozorro. Саме через нас Національна поліція закуповує корм для сторожових псів, ОККО продає державі бензин, а кожен з вас може купити шафу, що залишилась від банку Надра.
Серед наших продуктів веб-сервіс, мобільний додаток і навчальна платформа.

Проект з технічного боку:
Python, Pyramid, Aiohttp, Asyncio, Celery, Postgresql, MongoDB, ElasticSearch, Riak
На Front End’і: ES6+, React, Redux, Styled Components
Наразі:
активно працюємо над переведенням нашого додатку на мікросервісну архітектуру;
активно починаємо впроваджувати Kubernetes.

Глобальні задачі:
повний перехід на мікросервіси, впровадити Kubernetes.

Наш підхід до процесу розробки:
— основні завдання беруться в розробку тільки після чітко поставлених вимог і досліджень
— один з основних пріоритетів — технічний борг і боротьба з легасі
— команда поділена на зони відповідальності, обов’язковий code-review, у кожного розробника є глибоке розуміння всієї системи та інфраструктури
— регулярні dev-доповіді та локальні технічні мітинги.
— намагаємося все покривати тестами (юніт/функціональними/інтеграційними)

Наші очікування від кандидата:
-на відмінно знає Python, має досвід роботи як з Python 2 так і Python 3;
-має досвід web розробки, розуміє, що таке мікросервісна архітектура;
впевнено працює з базами даних PostgreSQL (транзакції, тригери, оптимізація складних запитів);
-має досвід асинхронного програмування на Python, працював з Redis, Celery і RabbitMQ;
-має уявлення, що таке NoSQL бази даних;
-впевнений користувач Git.

Плюсом буде:
-досвід роботи з Pyramid Framework, Aiohttp, MongoDB, GraphQL, Kubernetes, Docker.

Що буде в роботі:
– розробка архітектури та реалізація власних мікросервісів з нуля;
– інтеграція мікросервісів в існуючу програму, організація взаємодії з іншими мікросервісами;
– деплой мікросервісів в production (Docker і Kubernetes);
– проведення демо нового функціоналу/сервісів.
У команді ми відкрито обговорюємо впровадження нових технологій і побудови архітектури проекту.

Про технічний департамент в EVO і всі наші рішення:
Основні мови програмування: Python, JavaScript, TypeScript, Golang.
Нові 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).

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

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/

The job ad is no longer active

Look at the current jobs Python Kyiv→