Ищем Python Backend Developer с коммерческим опытом разработки от 2–3 лет для разработки и поддержки backend-сервисов, REST API и интеграций с внешними системами.
Основной стек проекта: Python, Django, Django REST Framework, PostgreSQL, Docker, Redis, Celery, Git.
Обязанности
- Разработка и поддержка backend-части веб-приложений на Python / Django.
- Разработка REST API с использованием Django REST Framework.
- Проектирование и разработка новых backend-сервисов.
- Разработка асинхронных сервисов и фоновых задач.
- Работа с Celery / Redis и очередями задач.
- Разработка клиентов для интеграции со сторонними API и информационными системами.
- Интеграция с внешними СУБД и сервисами.
- Проектирование структуры базы данных.
- Работа с PostgreSQL
- Разработка парсеров и сервисов сбора данных.
- Работа с Selenium, HTTP-клиентами и другими инструментами автоматизации сбора данных.
- Реализация механизмов авторизации и аутентификации.
- Написание unit и integration тестов.
- Поддержка и рефакторинг существующего кода.
- Проведение code review.
- Анализ и устранение ошибок в production-среде.
- Контейнеризация приложений с использованием Docker / Docker Compose.
- Участие в настройке и поддержке процессов CI/CD.
- Взаимодействие с Frontend-разработчиками, аналитиками и другими Backend-разработчиками.
- Участие в проектировании архитектуры новых сервисов.
Требования
- Коммерческий опыт разработки на Python от 2–3 лет.
- Уверенное знание Python 3.
- Хорошее понимание принципов построения поддерживаемого backend-кода.
- Опыт разработки на Django.
- Уверенное знание Django REST Framework.
- Понимание принципов построения REST API.
- Опыт работы с:
- serializers;
- views / viewsets;
- permissions;
- middleware;
- Django ORM;
- migrations.
- Хорошее знание PostgreSQL.
- Умение писать и оптимизировать SQL-запросы.
- Понимание индексов, JOIN, транзакций и уровней изоляции.
- Опыт проектирования структуры реляционных баз данных.
- Понимание принципов async/await и асинхронного программирования в Python.
- Опыт работы с Celery и Redis либо аналогичными технологиями.
- Опыт интеграции со сторонними API.
- Понимание HTTP/HTTPS, REST, JSON.
- Опыт разработки парсеров и скраперов.
- Опыт работы с Selenium, Requests, httpx, aiohttp или аналогичными библиотеками.
- Опыт работы с Docker и Docker Compose.
- Навыки работы в Linux-среде.
- Опыт работы с Git
- Понимание принципов CI/CD.
- Опыт написания автоматических тестов с использованием pytest / unittest.
- Знание алгоритмов и структур данных.
- Способность оценивать сложность алгоритмов и выбирать эффективные способы обработки больших объёмов данных.
- Понимание принципов логирования, обработки исключений и мониторинга приложений.
Будет преимуществом
- Опыт работы с FastAPI.
- Опыт разработки микросервисных приложений.
- Опыт работы с брокерами сообщений:
- Опыт работы с графовыми базами данных:
- Neo4j;
- ArangoDB;
- JanusGraph;
- либо аналогичными решениями.
- Понимание принципов работы графов и алгоритмов поиска связей между объектами.
- Опыт работы с большими объёмами данных.
- Опыт разработки ETL / data processing сервисов.
- Опыт работы с инструментами мониторинга и логирования:
- Prometheus;
- Grafana;
- ELK / OpenSearch.
- Опыт работы с Nginx.
- Опыт работы с JWT, OAuth2 и другими механизмами авторизации.
- Базовые знания информационной безопасности.
- Понимание основных веб-уязвимостей и принципов OWASP.
- Понимание принципов OSINT и методов сбора данных из открытых источников.
- Опыт разработки высоконагруженных сервисов.
- Опыт профилирования и оптимизации Python-приложений.
Что ожидаем от кандидата
- Умение самостоятельно разбираться в существующем коде.
- Умение декомпозировать задачи и оценивать сроки разработки.
- Ответственный подход к качеству кода.
- Умение искать причины проблем, а не только устранять их последствия.
- Способность аргументировать технические решения.
- Готовность работать как с разработкой нового функционала, так и с существующими сервисами.
- Умение взаимодействовать с другими участниками команды.