* Python 3, Go * Django, FastAPI, DRF, Celery, Temporal * PostgreSQL, Redis, SQS Текущий бэкенд написан на Python. При этом новые сервисы мы будем писать на Go и в будущем придём к тому, что останется только он. Поэтому нам нужен человек, который уверенно чувствует себя хотя бы в одном из этих языков и готов работать на обоих.
Обязанности:
Автоматизация процесса создания нового приложения с нуляВам предстоит разрабатывать многоступенчатый процесс поднятия нового приложения по кнопке — с нуля до развёрнутого сервиса в облаке за минуты. Нужно будет тесно взаимодействовать с соседними командами, чтобы реализовать возможность настраивать шаблон создания приложения для пользователя с нужной инфраструктурой и использовать его затем в своём отделе или команде. Переработка ролевой модели сервиса
Необходимо актуализировать ролевую модель нашего сервиса — проработать и внедрить решение взамен текущего, которым годами пользуется вся компания. Предстоит его реализация и перенос сотен потребителей. Сбор данных о приложениях
Вы будете актуализировать данные обо всех существующих в компании приложениях. Цель — добиться того, чтобы информация о десятках тысяч запущенных приложений, в том числе об изменениях их конфигурации, о статусе работы компонентов, обновлялась с минимальными задержками. Нужно будет реализовывать и улучшать взаимодействие с десятками провайдеров различных типов ресурсов. Ускорение доставки данных до потребителей
Предстоит разработать подсистему доставки данных о сущностях до сотен потребителей — сторонних систем: проработать решение, реализовать его и интегрировать. Масштабирование системы в соответствии с ростом нагрузок
Стабильный рост нагрузки порядка 50% в год требует проводить регулярные работы по масштабированию. Это включает поиск узких мест, RnD возможных вариантов решения, реализацию горизонтального масштабирования. Больше о бэкенде в Яндексе — в канале Yandex for Backend
Ключевые навыки:
- Владеете Python и Go в одной из двух комбинаций: либо уверенно знаете Python (синтаксис, типизацию, структуры данных, функции, исключения), готовы освоить Go и писать на нём новые сервисы, либо уверенно знаете Go и уже работали с Python — сможете читать и развивать существующие бэкенды
- Работали с разными типами баз данных: реляционными (PostgreSQL) и NoSQL (MongoDB, Redis), умеете составлять сложные запросы и оптимизировать их
- Уверенно владеете веб-фреймворками, такими как Django, FastAPI или Flask
- Писали тесты с использованием unittest, pytest или других библиотек для тестирования
- Настраивали системы непрерывной интеграции и доставки, такие как GitLab CI/CD или аналоги, и работали с ними
Дополнительные требования:
- Занимались коммерческой разработкой на проектах с большим количеством интеграций
- Писали продакшн-сервисы на Go (если приходите со стороны Python) или на Django/FastAPI (если приходите со стороны Go)