8 декабря 2017 2:45

Mark Lavrinenko, Software Engineer с 2016 года

Працюю в компанії уже 18 місяців на посаді Python Engineer. Це моя третя робота розробником тому є з чим порівнювать.

Більшість розробників в компанії це Full Stack (JS+Python+Postgres) за винятком того що складний html+css можна делегувати на команду верстувальників.
Фронтенд пишем на ES6 використовуючи React і збираємо це Webpackом. Місцями ще залишився Coffee Script і jQuery.
Потроху випилюєм їх :)

Бекенд сервіси пишем на Python2/3 (старі проекти на Python2, нові на Python3 + aiohttp). Є декілька проектів на Go (сервіс рекламних оголошень) і Rust (інфраструктурні штуки типу супервізора процесів чи контейнеризації).

Бази даних в основному Postgres, але для різних цілей також використовуєм (Redis, Memcached, Riak, MongoDB, MySql). Почали експерементувати з Cockroach DB і ClickHouse.

Пошук на ElasticSearch.
Більш ніж сотня нод, сотні мільйонів документів і сотні гігабайт даних.

Є свій стек для аналітики і BigData (20+ TB)
HDFS, Spark, YARN, Hive, Apache Airflow
Постійно збираємо перегляди наших продуктів і аналізуємо ці дані. Проводимо A/B тести. Зробили систему візуалізації бізнес метрик на основі Grafana.
Експериментуємо з Apache Superset для візуалізації даних і побудови дашбордів.

Свої технології для інфраструктури:
Контейнеризація (Vagga + Lithos), оркестрація (Verwalter) і моніторинг (Cantal)
Можна знайти на гітхабі.
Заміяють Docker і Kubernetes. Простіше освоїть і користуваться.
На попередній роботі була купа проблем через те що локальне середовище розробки було побудоване на такому стеці: Vagrant, VirtualBox, Docker. Коли мінялись залежності проекта можна було йти пити чай більше години.
З Vagga такої проблеми немає.

Є необхідні інструменти для моніторингу і проведення troubleshooting:
— real-time метрики серверів в Grafana
— real-time продакшен логи в Kibana (більш ніж 4 мільярди записів з сотень серверів)

В кожній команді є свої Manual і Automation QA.
Звичайних розробників НЕ будять серед ночі щоб вирішить мінорний інцидент з ротацією логів на серверах.
По тулам: юзаєм Jira, GitLab, Slack.
Більшість розробників сидять на Ubuntu бо наші сервера на цій ОС і можна в разі потреби запускати проекти на голій ОС без контейнерів (не робіть так на постійной основі).

Найбільше в роботі мені подобається можливість переключатись між різними частинами проекта і технологіями. Конкретно я займаюсь системою відгуків і модерації, системою аналітики, трігерними емейлами, генерацією сайтмап та іншими e-commerce речами.
Остання велика задача: з НУЛЯ розробити сервіс для внутрішнього користування який буде використовуватись для сертифікації компаній. Технічний стек: React, Ant Design, aiohttp, gRPC, Kafka, Postgres.
З моменту отримання завдання до релізу в продакшен пройшов місяць, враховуючи що частина технологій була нова для компанії (gRPC і Kafka).

Вам сподобається працювати в EVO якщо:
— вам подобається працювати з розподіленими системами і високонавантаженими продуктами якими користується значна частина українців
— любите швидко бачити результ своєї роботи (ми деплоїм наш основний продукт двічі на тиждень на 5 країн)
— ви самі знаєте що можна покращити і не чекаєте поки менеджер скаже що робити
— готові брати на себе відповідальність за ваш код
— не любите бюрократію (відпустки, релізи, узгодження вимог). Slack швидко вирішує більшість питань.
— можете самостійно співпрацювати з представниками інших команд/відділів (дизайнери, маркетологи, адміни)

Вам буде некомфортно в EVO якщо:
— постійно чекаєте від менеджера вказівки що робить
— керуєтесь принципом ’works on my machine’
— не хочте навіть трішки вникати в те як працють інші відділи продуктової компанії (дизайнери, маркетологи, аналітики, адміни)
— любите впроваджувати технології заради технологій
— знаєте тільки одну технологію чи фреймворк і не хочте розбиратись в інших
— недостатьо глибоко знаєте технології які треба для сучасного вебу

P.S. Щоліта проводим інтернатуру для студентів останніх курсів


LinkedIn

Нет комментариев

Подписаться на комментарииОтписаться от комментариев

Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.