👀 Дизайнеры, какая команда подходит вам по вайбам? Проверяйте на Вайб-чеке→ vibe.habr.com

Middle Python Back End Software Engineer

Зарплата

от 2500 до 3000 $

Местоположение и тип занятости

Полный рабочий деньМожно удаленно

Компания

продуктова українська IT-компанія

Описание вакансии

Условия работы

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.

Мы знакомимся с вами и вашим опытом, рассказываем детали о вакансии, если нам взаимно интересно продолжать общение — договариваемся о техническом собеседовании онлайн.

Техническое собеседование длится полтора часа. На нем присутствуют наши разработчики, с которыми мы обсудим все важные для нас вопросы по стеку, опыту, задачам. А также ответим на ваши вопросы.