Senior Back End Software Engineer (Python/Go) на проект Prom.ua (offline)
Prom.ua в цифрах:
по навантаженню 20 млн переглядів сторінок в день (162 млн подій при цьому),
5.5 млн запитів на пошукову видачу,
трафік в місяць близько 60 млн сесій,
в онлайні в піку одночасно 23к користувачів
Ми в пошуках Senior Back End Software Engineer’a (Go/Python у співвідношенні 50/50) в команду Prosale (одну з п’яти команд розробки проекту 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 і частина в MongoDB
Асинхронна взаємодія заснована на Kafka
Синхронна взаємодія переважно GRPC, REST
Що важливо для даної позиції:
— Важливо розуміти принципи роботи високонавантажених web (і не тільки) сервісів в ситуаціях, коли один сервер не здатний впоратися з навантаженням
— Розуміти як розподіляти навантаження між сервісами, як розподіляти дані між сервісами. Як ці дані зберігати і здійснювати до них безперервний доступ
— Досвід роботи з інтеграціями
— Вміння працювати в команді
— Деплой і моніторинг організований на базі Kubernetes, Helm, Prometheus, Grafana. Потрібно буде освоїтися з цими технологіями для роботи над проектом
Найближчі задачі:
Розробка системи внутрішньої реклами по моделі СПА
Розвиток інструменту аналітики реклами
Розробка інструменту з управління рекламою
Переписування алгоритму роботи денних бюджетів. Реалізація надійної роботи та незалежності від часу доби та країни.
Оптимізація роботи сторінки перегляду рекламних кампаній для користувачів у яких кількість рекламних кампаній обчислюється тисячами.
Продакт інженерний підхід до вирішення задач: ми продуктова команда, нам важливо, щоб розробники були продуктово орієнтовані. Це означає, що розробник не просто виконує поставлене завдання, а розуміє проблеми бізнесу. І може запропонувати більш оптимальне рішення, якщо таке існує, або показати, що ця задача не має цінності.
Як у нас проходить підбір на дану позицію? Для початку, ваше резюме розглянуть технічні фахівці. Якщо воно буде схвалене, ми домовимося про skype-дзвінок знайомство. Ми обговоримо проект, ваш досвід і відповімо на питання. Після чого разом вирішимо, чи продовжимо спілкування вже на технічній співбесіді онлайн. Після кожного етапу ми обов’язково даємо зворотний зв’язок протягом 24 годин.
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
The job ad is no longer active
Job unpublished on
14 September 2020
Look at the current jobs Golang Remote→
Similar jobs
Ukraine
Senior or Lead Golang Developer at Luxoft
Ukraine
Senior Go Developer (AdTech) at Sigma Software Group
Argentina, Czechia, Poland, Portugal, Ukraine
All jobs Golang remote All jobs EVO