Prom.ua - провідний торговий майданчик в Україні, більше 50 000 продавців і 120 000 000 пропозицій, кожна 5-а гривня в уанеті витрачається на нашому prom.ua.
Prom.ua в цифрах, які будуть цікаві нашим кандидатам і кандидаткам:
по навантаженню 20 млн переглядів сторінок в день (162 млн подій при цьому),
5.5 млн запитів на пошукову видачу,
трафік в місяць близько 60 млн сесій,
в онлайні в піку одночасно 17к користувачів
Розробкою Prom.ua займається 5 команд, кожна з них відповідає за свою частину проекту і сервіси.
Проект Prom з технічного боку:
Основний продукт і сервіси на Python 3.8
Бази даних - PostgreSQL, MongoDB, ClickHouse
Для пошуку - ElasticSearch
На фронтенді сучасний JS, TS, React
Сильно просуваємо Kafka і gRPC
Активно дивимося в сторону Go (де це необхідно, вже використовуємо)
Деплой на Docker + Kubernetes
В основному, всі завдання команди націлені на:
Безпеку
Оплати/Білінг
Підтримку поточної CRM системи
Лідогенерацію
Prom Платежі
Чим цікаві ці завдання з технічного боку:
- Можливістю використовувати всі перераховані вище технології і отримати експертизу (коли і що саме потрібно використовувати)
- Інтеграцією з зовнішніми API і побудовою своїх.
- Розробкою рішень пов'язаних з антифродом (ML, Streams, Big Data)
- Можливістю шукати нові шляхи розвитку поточних проектів разом з командою (нові технології, бібліотеки, мови, etc)
Наш підхід до процесу розробки:
- основні завдання беруться в розробку тільки після чітко поставлених вимог і досліджень
- обов'язковий code-review, у кожного розробника є глибоке розуміння всієї системи та інфраструктури
- регулярні dev-доповіді та локальні технічні мітинги
- намагаємося все покривати тестами (юніт/функціональними/інтеграційними)
- регулярні стендапи і ретроспективи.
Наші кандидати:
- знають Python, не заточені під конкретний фреймворк
- вміють і не бояться писати JS/TS
- мають досвід web розробки, розуміють що таке мікросервісна архітектура і досвід в її застосуванні
- впевнено працюють з базами даних PostgreSQL (або аналогами): транзакції, індекси, оптимізація складних запитів - не повинна складати проблем
- мають досвід асинхронного програмування на Python
- мають уявлення, що таке NoSQL бази даних і пошукові движки (ElasticSearch)
- з досвідом роботи 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, Izi, Rozetka Travel
**********************************************
Про технічний департамент в EVO:
Основні мови програмування, які ми використовуємо це Python 3.8 (моноліт + сервіси на 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
Мови: 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