Выберите текущую позицию
Укажите роль и уровень — система покажет путь развития, навыки и gap-анализ.
Путь развития
Junior
0-2 года
Ответственность: Разработка простых API endpoints по спецификации. Написание unit-тестов. Исправление багов. Работа с ORM (SQLAlchemy/Django ORM). Участие в code review как ревьюи.
Ключевые навыки:
Middle
2-5 лет
Ответственность: Самостоятельная разработка микросервисов. Проектирование REST/GraphQL API. Оптимизация SQL-запросов. Code review. Менторинг junior. Интеграция с внешними сервисами. Написание интеграционных тестов.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Senior
5-8 лет
Ответственность: Проектирование архитектуры сервисов. Выбор технологий для новых задач. Оптимизация производительности на уровне системы. Ведение технического долга. Настройка observability. Менторинг middle.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Lead / Staff
7-12 лет
Ответственность: Проектирование системной архитектуры домена. Технический roadmap команды. Формирование стандартов разработки. Координация с другими командами. Участие в найме. Принятие build vs buy решений.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Principal
10+ лет
Ответственность: Техническая стратегия компании в области backend. Кросс-командная архитектура. Выбор технологий на уровне организации. Публичные выступления. Open-source contributions.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Gap-анализ: навыки для развития
Для перехода на следующий уровень необходимо развить:
Настраивает consumer groups и partition assignment. Обрабатывает ошибки с retry и dead letter topics. Использует acks=all для надёжности. Мониторит consumer lag. Проектирует schema событий с Avro/JSON Schema.
Настраивает VPC, Security Groups, ALB. Использует ECS/EKS для контейнеров. Работает с SQS/SNS для messaging. Настраивает CloudWatch для мониторинга. Использует Terraform для IaC.
Проводит code review. Даёт конструктивный feedback. Проверяет логику, тесты, security. Знает разницу между blocking и non-blocking замечаниями. Использует suggestions.
Настраивает connection pooling в Python: оптимизирует SQLAlchemy pool (QueuePool vs StaticPool, pool_pre_ping, pool_recycle), настраивает psycopg2/asyncpg pool для async приложений. Использует PgBouncer для connection multiplexing при FPM-like архитектуре. Мониторит pool utilization.
Реализует CQRS в Python-проектах: разделяет command и query handlers через mediatr-подобные библиотеки, проектирует отдельные read-модели (денормализованные view таблицы или материализованные представления). Обеспечивает eventual consistency между write и read сторонами.
Оптимизирует Dockerfile (multi-stage, layer caching). Настраивает health checks. Использует Docker networks и volumes. Отлаживает контейнеры. Сканирует на уязвимости.
Использует rebase для чистой истории. Применяет interactive rebase для squash. Использует cherry-pick и bisect. Настраивает git hooks (pre-commit). Работает с git stash.
Проектирует multi-stage pipelines. Настраивает кэширование зависимостей. Использует matrix builds. Создаёт reusable workflows. Настраивает secrets management.
Разрабатывает gRPC-сервисы на Python с grpcio/grpcio-tools: проектирует .proto-файлы, реализует server-side и client-side streaming, настраивает interceptors для логирования и аутентификации. Интегрирует gRPC с asyncio для неблокирующей обработки запросов.
Реализует OAuth2 flows (Authorization Code, Client Credentials). Настраивает OIDC с Keycloak. Реализует refresh token rotation. Настраивает scopes и permissions.
Настраивает Deployments, Services, Ingress. Конфигурирует HPA для автоскейлинга. Настраивает readiness и liveness probes. Использует namespaces. Отлаживает проблемы подов.
Применяет защиту от CSRF, SSRF, XXE. Настраивает security headers. Проверяет зависимости на уязвимости (pip-audit, safety). Обрабатывает sensitive data (masking, encryption).
Использует CTE, оконные функции, JSONB операции. Настраивает connection pooling (pgBouncer). Оптимизирует через EXPLAIN ANALYZE. Работает с транзакциями и уровнями изоляции. Настраивает pg_stat_statements.
Создаёт custom metrics с prometheus-client. Пишет PromQL запросы (rate, histogram_quantile). Создаёт Grafana dashboards. Настраивает basic alerting rules.
Проектирует структуру FastAPI/Django проекта. Использует middleware, background tasks, WebSockets. Настраивает authentication/authorization. Работает с Alembic/Django migrations. Оптимизирует ORM-запросы (select_related, prefetch_related).
Реализует rate limiting в Python-сервисах: настраивает SlowAPI/FastAPI limiter с Redis backend, реализует token bucket и sliding window алгоритмы, применяет разные лимиты для разных endpoint'ов и user tier'ов. Настраивает throttling в Django REST Framework с custom throttle classes.
Использует различные структуры Redis (hashes, sets, sorted sets, lists). Применяет pipeline для batch-операций. Настраивает cache-aside и write-through паттерны. Использует Redis pub/sub для уведомлений. Обрабатывает cache miss корректно.
Проектирует RESTful API с versioning и cursor-based pagination. Документирует через OpenAPI/Swagger. Реализует error responses с кодами ошибок. Использует PATCH для частичных обновлений. Проектирует bulk endpoints.
Определяет SLI для Python-сервисов — p99 задержку из инструментации middleware, частоту ошибок из обработчиков исключений и индикаторы здоровья пула workers. Настраивает мониторинг SLI с Prometheus client и кастомными метриками. Понимает error budgets и участвует в ротации дежурств для надёжности Python-сервисов.
Настраивает Celery с различными брокерами (Redis, RabbitMQ). Использует chains, groups, chords для workflow. Настраивает retry с exponential backoff. Мониторит задачи через Flower. Обрабатывает ошибки и dead letter queues.
Пишет Terraform-модули для Python-инфраструктуры: ECS/EKS для Django/FastAPI, RDS PostgreSQL, ElastiCache Redis, SQS/SNS. Управляет environments через workspaces. Настраивает remote state в S3 с locking через DynamoDB.
Использует моки (unittest.mock, pytest-mock). Настраивает coverage отчёты. Тестирует async-код. Параметризует тесты через @pytest.mark.parametrize. Использует factory_boy для генерации данных.
Применяет алгоритмы для оптимизации реального кода. Понимает амортизированную сложность (dict, list.append). Использует heapq, bisect, deque для оптимальных решений. Выбирает между сортировкой и хеш-таблицей для задач поиска.
Работает с asyncio: Tasks, gather, wait, semaphore. Использует aiohttp, httpx для async HTTP. Понимает event loop и его ограничения. Применяет asyncio.Queue для producer-consumer паттерна. Обрабатывает cancellation и timeouts.
Генерирует полную OpenAPI-документацию из кода. Настраивает Redoc или Swagger UI. Документирует error codes и примеры. Создаёт Postman collections. Пишет guides для потребителей API.
Создаёт B-tree, UNIQUE, COMPOSITE индексы. Использует EXPLAIN для query plans. Знает когда индекс помогает и когда вредит. Создаёт индексы для foreign keys.
Использует TestContainers для PostgreSQL, Redis, Kafka. Тестирует межсервисное взаимодействие. Настраивает fixtures для сложных сценариев. Создаёт seed data.
Настраивает pre-commit hooks с ruff, mypy, black. Проводит рефакторинг code smells. Пишет type hints для всего кода. Применяет метрики качества (cyclomatic complexity, coverage). Участвует в code review конструктивно.
Пишет zero-downtime миграции. Использует expand-contract pattern. Мигрирует данные с backfill. Настраивает автоматический запуск миграций в CI/CD. Обрабатывает конфликты миграций.
Использует concurrent.futures для thread и process pools. Применяет multiprocessing для CPU-bound задач. Понимает race conditions и использует Lock, RLock. Работает с shared state через Queue и Pipe.
Анализирует через EXPLAIN. Устраняет N+1 (eager loading, select_related). Оптимизирует JOINs. Использует оконные функции (ROW_NUMBER, LAG/LEAD). Понимает subquery types.
Проектирует простые системы: URL shortener, REST API. Понимает CAP theorem. Знает паттерны: caching, load balancing, database replication. Оценивает нефункциональные требования.
Проектирует сетевую архитектуру для Python-сервисов: VPC, subnets, security groups, NAT gateways. Настраивает reverse proxy (nginx) для Gunicorn/Uvicorn. Понимает service discovery, DNS-based routing. Оптимизирует latency между сервисами.
Работает с message broker'ами в Python-проектах: использует Celery с RabbitMQ/Redis для фоновых задач, реализует pub/sub через confluent-kafka или aiokafka, применяет паттерны competing consumers и fan-out. Настраивает dead letter queues для обработки ошибок.
Применяет Strategy, Template Method, Decorator, Command в Python-коде. Использует Repository pattern для работы с БД. Применяет Unit of Work с SQLAlchemy sessions. Знает антипаттерны и умеет их рефакторить.
Применяет input validation на всех уровнях. Использует secrets management (environment variables, Vault). Реализует rate limiting. Обрабатывает ошибки без утечки информации. Шифрует sensitive data at rest.
Применяет SOLID в повседневной разработке. Использует абстрактные классы (ABC) и Protocol для определения интерфейсов. Понимает composition over inheritance. Применяет dependency injection через конструктор. Использует миксины правильно.
Проектирует схемы для микросервисов. Применяет денормализацию для performance. Моделирует полиморфные связи (STI, MTI). Проектирует audit trails и soft deletes. Использует JSONB для flexible data.
Реализует versioning через URL, header или content-type. Проектирует deprecation policy с Sunset headers. Поддерживает несколько версий одновременно. Пишет migration guides для клиентов.
Применяет различные стратегии: cache-aside, write-through, write-behind. Реализует cache invalidation по событиям. Использует CDN-кэширование для статики. Мониторит cache hit rate. Обрабатывает cache stampede (thundering herd).
Настраивает structured logging с correlation IDs. Логирует в JSON для EFK/Loki. Добавляет request tracing через middleware. Фильтрует sensitive data из логов. Настраивает log aggregation.
Применяет collections (OrderedDict, Counter, deque, namedtuple). Использует dataclasses для структурированных данных. Понимает внутреннее устройство dict (hash table). Выбирает оптимальную структуру для задачи. Работает с деревьями и графами через словари.
Автоматизирует API-тесты через тестовые инструменты. Создаёт test fixtures для API. Использует Postman/Newman для automated collections. Тестирует edge cases и error handling. Генерирует отчёты.
Использует TypedDict, Protocol, Literal, Union, Generic. Настраивает mypy с strict mode для модулей. Создаёт custom type aliases. Понимает variance (covariant/contravariant). Пишет типы для сложных API (overload, ParamSpec).
Работает с шардированными БД в Python: использует Django database routers для multi-database routing, реализует shard selection logic на основе tenant_id или user_id. Понимает trade-offs шардирования: cross-shard queries, join limitations, data distribution skew.
Карьерные переходы
Возможные карьерные траектории для роли Backend Developer (Python)
📈 Рост 2
Куда можно вырасти из этой роли
╨а╨╛╤Б╤В ╨▓ ╨░╤А╤Е╨╕╤В╨╡╨║╤В╨╛╤А╨░ ╤З╨╡╤А╨╡╨╖ ╨│╨╗╤Г╨▒╨╛╨║╨╛╨╡ ╨╖╨╜╨░╨╜╨╕╨╡ backend
↔️ Горизонтальный 4
Смежные роли для горизонтального перехода
╨Я╨╡╤А╨╡╤Е╨╛╨┤ ╨╜╨░ Go ╨┤╨╗╤П ╨▒╨╛╨╗╨╡╨╡ ╨▓╤Л╤Б╨╛╨║╨╛╨┐╤А╨╛╨╕╨╖╨▓╨╛╨┤╨╕╤В╨╡╨╗╤М╨╜╤Л╤Е ╤Б╨╕╤Б╤В╨╡╨╝
╨Я╨╡╤А╨╡╤Е╨╛╨┤ ╨▓ Data Engineering ╤Б ╤Д╨╛╨║╤Г╤Б╨╛╨╝ ╨╜╨░ Python-╤Н╨║╨╛╤Б╨╕╤Б╤В╨╡╨╝╤Г
╨Я╨╡╤А╨╡╤Е╨╛╨┤ ╨▓ DevOps ╤Б Python-╤Б╨║╤А╨╕╨┐╤В╨╕╨╜╨│╨╛╨╝ ╨╕ automation
╨Я╨╡╤А╨╡╤Е╨╛╨┤ ╨▓ ML Engineering ╤Б ╤Д╨╛╨║╤Г╤Б╨╛╨╝ ╨╜╨░ Python ╨╕ ML-╤Д╤А╨╡╨╣╨╝╨▓╨╛╤А╨║╨╕