Python Developer, Москва.

▷ Работодатель: ЛитРес (профиль,отзывы)
💰 From 0 RUR. | Режим: office | 10

* This listing is inactive or archived *

ЛитРес – лидер рынка электронных книг в России и СНГ.

Мы создаем книжные продукты более 16 лет. Каждый месяц 12,5 млн человек покупают, читают или слушают книги у нас.

В группу компаний входят: онлайн-магазин litres.ru, приложения «Литрес: Книги!» и «Литрес: Слушай», сервис для чтения по подписке MyBook, платформа для новых авторов «Литрес: Самиздат» и для чтецов – «Литрес: Чтец», социальная сеть для читателей LiveLib и другие сервисы.

Мы учредили первую в России премию в области электронных и аудиокниг «Электронная буква».

В связи с расширением команды ищем Python разработчика:

О технологиях

Наша команда переводит монолит на микросервисы. Монолит на Perl, сервисы — на асинхронном Python 3.9 и FastAPI. Для этой вакансии Perl знать не нужно.

У нас настроены пайплайны на Gitlab CI, в которых запускаются MyPy, Flake, Black и интеграционные тесты на PyTest. Сервисы на FastAPI в тех же пайплайнах собираются в образ Docker и деплоятся в кластер Kubernetes.

Клиенты общаются с сервисами по REST, используем спецификацию OpenAPI, в шаблоне типового проекта настроен Swagger

Базы — MySQL, ORM через асинхронную SQLAlchemy, кэши на Redis. Для поискового индекса будем использовать Elasticsearch.

Мониторинги - Sentry, Prometheus, Grafana

Ожидается > 3k rps только на само апи, так что нас можно назвать хайлоадом, любой неоптимальный sql запрос или квадратичный алгоритм вместо линейного сразу же сказывается на производительности приложений.

Команда

В команде 6 разработчиков, которые от квартала к кварталу объединяются в разные группы для достижения квартальных целей (при этом команда/дейли/ретро общие, просто делим проекты друг с другом). Эта вакансия для разработчика, который бы помог с построением поиска на Elasticsearch в группе из двух человек.

Про процессам раз в неделю планирование и ретро, то что приоритетно выбираем в начале недели. Каждый день обсуждаем затыки на дейли.

  • База знаний, статус проекта - Confluence, Miro, Jira
  • Общение - Slack, Google Meet

Испытательный срок

За время испытательного срока, в первые три месяца, нужно будет исправить два бага в продакшен-поиске (баги предоставим), сделать удобным изменение маппинга индекса и прочитать одну книжку. Это критерии прохождения испыталки, но не единственные задачи.

В перспективе предстоит прикрутить к поиску историчность, персонализацию, админку и интернационализацию. Не обязательно в таком порядке.

Какой опыт поможет

В перспективе года задачи не ограничатся взаимодействием с Эластиком по API, понадобится делать что-то ещё.

Из хардов будет тяжеловато без:

  1. Владения Python и фреймворком веб-разработки на его основе (django, flask).
  2. Опыта разработки и проектирования функционала REST API
  3. Опыта работы с БД (Mysql/PostgreSQL), чтения EXPLAIN и оптимизации запросов
  4. Опыта написания интеграционных тестов

Желательно также иметь:

  1. Опыт с асинхронным Python
  2. Асинхронным веб-фреймворком (fastapi, aiohttp).
  3. Знания веб-архитектуры: клиент-серверного взаимодействия, особенностей синхронной и асинхронной модели выполнения, кандидат знает в каком случае что применять.
  4. Умения спроектировать MVP сервиса на знакомых технологиях по требованиям бизнеса, предварительно их уточнить и спланировать его масштабирование в случае наплыва пользователей.

Мы предлагаем:

  • Комфортный офис в Москва-Сити башне «Меркурий»
  • Стабильную белую заработную плату + премию по результатам работы
  • Смешанный формат работы после онбординга (офис+ 1-2 дня удаленка)
  • Стандартную рабочую неделю пн-пт с гибким временем прихода и без ненормированного графика
  • После успешного прохождения испытательного срока: ДМС со стоматологией, фитнес, курсы английского языка
  • Частичную компенсацию парковки
  • Неограниченный доступ ко всем электронным и аудиокнигам
  • Оплату профильных курсов, участия в конференциях
Москва, 1-й Красногвардейский проезд, 15
http://www.litres.ru
elasticsearchDjango FrameworkRedisFastAPIEXPLAINREST APISQLFlask

Created: .
Expires after: .
Responses: 2

Откликнуться на вакансию  Работодатель: профиль,отзывы