Команда разработки создаёт для всего Яндекса автоматизированный процесс поиска и найма кандидатов. Сервис Фемида, созданный для подбора сотрудников, включает в себя базу данных, ML-поиск, автоматическое назначение секций с учётом планировщика, согласование пути вакансии от заявки до красивого предложения о работе. Яндекс использует Фемиду не только в России, но и в других странах. Ключевая метрика продукта — time-to-offer: чем быстрее мы научимся нанимать лучших кандидатов, тем быстрее Яндекс будет развиваться как бизнес.
Какие задачи вас ждут:
Архитектурные задачи
Вам предстоит отделить от большого монолита сервисы поменьше. Важно построить эффективную архитектуру для новых и существующих сервисов, обеспечивающую их стабильность и производительность, переработать ролевую модель, сделать её более гранулярной и прозрачной
Оптимизация производительности и рефакторинг сложного кода
Нужно будет улучшить производительность и построить вокруг этого систему отслеживания изменений и алертинга.
Мы ждем, что вы:
- Уверенно владеете Python, понимаете синтаксис, типизацию данных, управление потоками (условия, циклы), работу с функциями и обработку исключений, обладаете навыком работы со встроенными структурами данных
- Работали с реляционными (PostgreSQL) и NoSQL (MongoDB, Redis) базами данных, умеете составлять сложные запросы и оптимизировать их
- Уверенно владеете веб-фреймворками, такими как Django, FastAPI или Flask, понимаете их архитектуру, можете создавать и настраивать маршруты, работать с шаблонами и формами
- Проектировали сервисы с нуля или пересматривали имеющуюся архитектуру, внедряли изменения
- Обладаете опытом разработки и интеграции RESTful API, понимаете принципы HTTP, умеете работать с JSON, создавать и документировать API
- Знаете методы аутентификации (OAuth, JWT) и защиты веб-приложений (CSRF, XSS)
- Писали тесты с использованием unittest, pytest или других библиотек для тестирования
- Работали с системами непрерывной интеграции и доставки, такими как GitLab CI/CD или аналогами, и настраивали их
Будет плюсом, если вы:
- Обладаете навыками проектирования модульных приложений, написания чистого и поддерживаемого кода, его рефакторинга
- Умеете писать понятную и качественную документацию, использовали Docstrings и инструменты, такие как Sphinx, для генерации документации
- Поддерживали существующие проекты, анализировали и улучшали код, устраняли баги