Backend разработчик (python)
Прямой работодатель ЛитРес ( litres.ru )
Опыт работы от 1 года до 3х лет
ЛитРес – лидер рынка электронных книг в России и СНГ.
Мы создаем книжные продукты более15 лет. Каждый месяц 12,5 млн человек покупают, читают или слушают книги у нас.
В группу компаний входят: онлайн-магазин litres.ru, приложения «Литрес: Книги!» и «Литрес: Слушай», сервис для чтения по подписке MyBook, платформа для новых авторов «Литрес: Самиздат» и для чтецов – «Литрес: Чтец», социальная сеть для читателей LiveLib и другие сервисы.
Мы учредили первую в России премию в области электронных и аудиокниг «Электронная буква».
В связи с расширением команды ищем Backend-разработчика (python). Вам предстоит переводить текущий монолит на микросервисы.
Что по технологиям:
Сейчас мы начали с перевода части монолита - api для мобильных клиентов и фронта, переписываем с perl на асинхронный python 3.9 (FastAPI). Perl при этом знать не нужно.
У нас настроены пайплайны на Gitlab CI, в которых запускаются MyPy, Flake, Black и интеграционные тесты на PyTest. Сервисы на FastAPI в тех же пайплайнах собираются в образ Docker и деплоятся в кластер Kubernetes.
Клиенты общаются с сервисами по REST, используем спецификацию OpenAPI, в шаблоне типового проекта настроен Swagger.
Базы — MySQL, ORM через асинхронную SQLAlchemy, кэши на редис
Мониторинги - Sentry, Prometheus, Grafana
Ожидается > 3k rps только на само апи, так что нас можно назвать хайлоадом, любой неоптимальный sql запрос или квадратичный алгоритм вместо линейного сразу же сказывается на производительности приложений.
Ближайшие задачи, которые предложим:
- Спроектировать функционал двухуровневых комментариев - перенос функционала текущего api на новые рельсы, перевод на полноценную REST модель, проектирование бизнес логики по чистой архитектуре
- Перевод части функционала каталога и аккаунта (жанры, ниши, личный кабинет) на асинхронный питон, предварительный анализ кода, выделение доменных сущностей
- Сделать сервис для выгрузки книг для партнеров - объединить функционал нескольких микросервисов в один
Что ожидаем от кандидата:
- Владения асинхронным Python и современным фреймворком веб-разработки на его основе (fastapi, aiohttp)
- Опыта разработки и проектирования функционала REST API
- Опыта работы с БД (Mysql/PostgreSQL), оптимизация запросов
- Опыта написания интеграционных тестов
Желательно также иметь:
- Знания веб-архитектуры: клиент-серверного взаимодействия, особенностей синхронной и асинхронной модели выполнения, кандидат знает в каком случае что применять
- Умения спроектировать MVP сервиса на знакомых технологиях по требованиям бизнеса, предварительно их уточнить и спланировать его масштабирование в случае наплыва пользователей
Мы предлагаем:
- Комфортный офис в Москва-Сити башне «Меркурий»
- Стабильную белую заработную плату + премию по результатам работы
- Смешанный формат работы после онбординга (офис+ 1-2 дня удаленка)
- Стандартную рабочую неделю пн-пт с гибким временем прихода и без ненормированного графика
- После успешного прохождения испытательного срока: ДМС со стоматологией, фитнес, курсы английского языка
- Частичную компенсацию парковки
- Неограниченный доступ ко всем электронным и аудиокнигам
- Оплату профильных курсов, участия в конференциях