Middle Python Back End Software Engineer
Зарплата
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Zakupki.Prom.ua – крупнейшая тендерная площадка в Украине в системе Prozorro.
Именно через нас Национальная полиция закупает корм для сторожевых собак, ОККО продает государству бензин, а любой из вас может купить шкаф, оставшийся от банка Надра.
Среди наших продуктов веб-сервис, мобильное приложение и обучающая платформа. Основные направления работы — государственные закупки, коммерческие закупки и государственные аукционы.
Наша команда:
7 Python Engineer’a, 4 QA, 1 QA Automation, 3 Front End Engineer’a, 3 Product менеджера, 2 дизайнера, mobile команда (2 Flutter Engineer’a)
Проект с технической стороны:
Python, Pyramid, Aiohttp, Asyncio, Celery, NodeJS
Базы данных: Postgresql, MongoDB, Redis
Для поиска: ElasticSearch
Брокер сообщений: RabbitMQ
S3 хранилище: Riak
На Front End’е: ES6+, React, Redux, Styled Components
Чем мы занимаемся:
- строим большое приложение, используя SOA
- для межсервисного взаимодействия используем REST, GraphQL, JSON-RPC;
- активно разрабатываем асинхронные сервисы на Python - Aiohttp;
- работаем над переводом частей монолита на микросервисную архитектуру;
- реализуем взаимодействие с внешними сервисами по API
- разрабатываем API для мобильного приложения и для интеграции с клиентскими приложениями
- деплоимся в production, используя Kubernetes;
- внедряем SPA
Из общих инструментов используем:
Docker, Kubernetes, Ingress, Istio, Gitlab CI, Kibana, Graphana, Prometheus
Что важно для данной роли:
- отличные знания и опыт работы с Python;
- иметь опыт web разработки, понимать что такое микросервисная архитектура;
- уверенно работать с базами данных PostgreSQL (транзакции, триггеры, оптимизация сложных запросов);
- опыт работы с Redis, Celery и RabbitMQ;
- иметь представление, что такое NoSQL базы данных;
- опыт проектирования и реализации REST API;
- быть уверенным пользователем Git
Важно умение глубоко погружаться в задачи, способность быстро разобраться с предметной областью, не стесняться взаимодействовать с другими командами, вносить предложения по улучшению существующих решений.
Плюсом будет:
Pyramid Framework, Aiohttp, MongoDB, Elasticsearch, GraphQL, Kubernetes, Docker.
Глобальные задачи:
- полный переход на микросервисы
- миграция данных в MongoDB
- рефакторинг поиска
- ребрендинг продукта и изменение/рефакторинг существующего функционала (как следствие ребрендинга)
Что будет в работе:
- разработка архитектуры и реализация собственных микросервисов с нуля;
- поддержка и внедрение новых фич в существующие сервисы;
- интеграция микросервисов в существующее приложение, организация взаимодействия с другими микросервисами;
- деплой микросервисов в production (Docker и Kubernetes), настройка CI/CD;
- разработка API для интеграции с клиентскими приложениями, написание документации;
- покрытие тестами своих приложений;
- мониторинг и логирование сервисов в Kibana, Graphana, Prometheus;
- проведение демо нового функционала/сервисов.
Внутри команды есть образовательная инициатива, в рамках которой мы изучаем и обсуждаем новые технологии, учимся лучше писать код, правильно подходить к разработке архитектуры приложений.
Регулярно собираемся на dev-club’ы внутри тех. департамента EVO, где
- Обсуждаем новые подходы, решения, которые используются в командах (предложения, аргументация)
- Обмениваемся опытом (позитивным/негативным) об использовании тех или иных решений
- Обсуждаем инструменты (что есть, чего не хватает).
- Координируем действия между командами для улучшения, развития инфраструктуры.
Точно НЕ будет в работе:
- верстки (есть отдельная команда опытных верстальщиков)
- frontend разработки, но если есть желание - welcome
- тайм-трекинга задач
Как проходит отбор на вакансию:
Мы ждем ваше резюме. Далее оно попадает на рассмотрение к техническому лиду команды. Если резюме проходит одобрение, мы связываемся с вами, чтобы договориться об удобном времени для знакомства в online.
Мы знакомимся с вами и вашим опытом, рассказываем детали о вакансии, если нам взаимно интересно продолжать общение — договариваемся о техническом собеседовании онлайн.
Техническое собеседование длится полтора часа. На нем присутствуют наши разработчики, с которыми мы обсудим все важные для нас вопросы по стеку, опыту, задачам. А также ответим на ваши вопросы.