Python в шапке резюме недостаточен. Язык не профессия сам по себе: backend, данные, автоматизация, боты — разные слоты и разные тестовые. Рекрутер за 15 секунд ищет, к какой задаче привязан стек, а не список Django–FastAPI–Pandas–Airflow «на всякий случай». Один фреймворк и один сервис закрывают слот чаще, чем простыня библиотек из десяти курсов подряд. Выберите карточку до рассылки, не после десятка тихих откликов. Стек без задачи в шапке Python не спасает: назовите сервис, домен и фреймворк тестового.

Ниже — как собрать резюме Python-разработчика: выбрать одну карточку, привязать стек к сервису, написать пули, два заполненных примера. Общий каркас — в как составить резюме. Пули — в как описать опыт. Если ещё выбираете направление — в как стать Python-разработчиком. Чистый backend без акцента на языке — соседний материал резюме backend-разработчика. Не закрывайте одним PDF слоты Django, аналитики и Airflow: тестовые разные, папки разные.

Коротко:

  • Одна карточка: Python backend, Python данные/скрипты ETL, Python автоматизация. Не все сразу.
  • Фреймворк в шапке только тот, на котором готовы к тестовому.
  • Пули про сервис, данные, очередь, скрипт с эффектом — не «писал на Python».
  • Pandas и ML в backend-файл не кладите, если слот — API и Postgres.
  • Один репозиторий с README сильнее десяти сертификатов Stepik.

Куда кладут файл с Python

На вакансиях Python-разработчика названия врут: часть слотов — Django API, часть — скрипты и отчёты, часть — «Python» в DS. Шапка должна совпасть. Иначе тестовое будет не про ваш опыт.

За 15 секунд смотрят:

  1. Backend, данные или автоматизация?
  2. Django / FastAPI / Flask / скрипты без веба?
  3. PostgreSQL и прод или Jupyter?
  4. Есть ли ссылка на сервис, не на набор каталогов курса?
  5. Не fullstack ли без фронта в фактах?

Карточка роли — резюме IT-специалиста. Навыки языка без простыни — навыки в IT-резюме. Roadmap языка не заменяет файл, но помогает сузить стек: python-roadmap, fastapi-roadmap, django-roadmap.

Структура Python-карточки

Шапка: Python + роль (backend / автоматизация / данные), фреймворк, город / UTC, одна ссылка. Summary: контур и 2 факта. Опыт. Учебный сервис, если штата нет: резюме без опыта. Навыки группами: язык и веб; данные; очередь; тесты; поставка. Образование внизу.

Не дублируйте «Python, ООП, SOLID, чистый код». Это не стек. Стек: Django, DRF, Celery, PostgreSQL, pytest — если были. Как отбирать — стек в резюме. Summary — summary. Remote — удалёнка.

Заголовок: привязка к задаче

Было. Python-разработчик. Django, FastAPI, Flask, Pandas, NumPy, Spark, Airflow, Docker, Kubernetes, ML, Telegram-боты. Коммерческий опыт и пет-проекты.

Стало. Python backend, Django / PostgreSQL / Celery, уведомления и заказы. 2 года. Репозиторий сервиса статусов: [ссылка]. Pandas и Spark в работе не использовал. Новосибирск / UTC+7, remote.

Если цель — данные, шапка другая: «Python, SQL, выгрузки и витрины», без Django, если его нет. Два файла лучше одного универсального.

Пули: сервис, не язык

Не «разрабатывал на Python». Пишите контур:

  • API: ресурс, ошибки, авторизация, версия;
  • данные: запрос, миграция, целостность;
  • очередь: повтор, идемпотентность, что перестали терять;
  • скрипт: какая ручная операция умерла;
  • тесты: какой контур покрыли;
  • админка / команды management, если это был ваш прод.

Эффект без выдуманных RPS. «Письмо статуса больше не шлют руками» достаточно. Канцелярит — ошибки в резюме. Проекты — как описать проекты.

Пример 1. Junior, FastAPI, учебный сервис

Вакансия: junior Python, FastAPI или Django, SQL, Git, тестовое.

Junior Python backend, FastAPI / PostgreSQL. Учебный API заказов — [ссылка]. Коммерческого штата нет.

Собрал ресурсы заказа: создание, статус, отмена. Ошибки валидации — 422, не 500. OpenAPI в репозитории.

Вынес письмо «собран» в очередь (Redis). Повторная доставка не создаёт второй заказ. Идемпотентность описана в README.

pytest на статусы и повтор. В README честно: нет оплаты и ролей.

Django на курсе — не в шапке. К тестовому на FastAPI готов на этой неделе.

Узкий фреймворк совпадает со слотом. Не дописывайте Django «ещё знаю» в первую строку.

Пример 2. Django в продукте

Вакансия: Python, Django, PostgreSQL, очереди, сопровождение.

Python backend, Django / DRF / PostgreSQL / Celery. Платежи онлайн-курсов. 3 года. UTC+3, remote.

Собрал сервис уведомлений об оплате: Celery + повтор вебхука. Поддержка перестала слать письма руками на пике.

Разобрал таймаут отчёта задолженностей: запрос и индекс, сборка с 40 до 12 секунд, отчёт перестал падать.

Покрыл вебхуки тестами на повтор. Регресс кассы перед релизом — с полудня до часа.

Дежурил по инцидентам биллинга, вёл статус в канале. Не обещаю Spark и Airflow: пайплайнов данных не вёл.

Это Python как backend. Слот «Python для аналитики» этим файлом не закрывайте — соберите аналитическую карточку.

Боты, скрипты, фриланс

Телеграм-бот — опыт, если есть пользователи, очередь, ошибки, деплой. Бот «погода за час курса» в шапку не ставьте. Фриланс: отрасль заказчика, API, срок поддержки. Три парсера без сопровождения слабее одного сервиса.

Автоматизация Excel/1С на Python — отдельная карточка под слоты автоматизации, не под Django middle. Не маскируйте.

После сборки — проверка резюме. Часто всплывает стена библиотек и ноль контура.

Письмо, тестовое, созвон

Письмо указывает на сервис и фреймворк вакансии: сопроводительное, без стажа — письмо без опыта, генератор.

Тестовое часто API + SQL. Не обещайте неделю. Тестовое задание. Вопросы — вопросы на собеседовании Python, interview-prep. Live-coding — готовьте свой сервис к рассказу: как рассказать о проекте. Тишина — почему не отвечают: часто DS-слот или Java-слот при Python-шапке без фильтра.

Три карточки Python, не одна простыня

Один человек может закрывать три рынка — но не одним PDF. Соберите ту карточку, под которую откликаетесь на этой неделе.

Backend. Шапка: Python + Django или FastAPI + Postgres. Пули: API, очередь, целостность, тесты, инцидент. Pandas в навыках нет. Слот смотрите в вакансиях Python и рядом в backend, если объявление так названо. Собеседование часто как у backend: вопросы Python.

Данные и скрипты. Шапка: Python + SQL + выгрузки. Пули: отчёт, сверка, пайплайн без притворства Airflow-senior. Django не обещайте. Если слот ближе к аналитику — сильнее файл Data Analyst, а Python оставьте навыком.

Автоматизация. Шапка: Python, скрипты, интеграции Excel/API/почта. Пули: какая ручная операция умерла, кто пользуется скриптом, как чините, когда ломается сайт. Не маскируйте это под middle Django.

Боты: пользователи, деплой, ошибки, очередь. Учебный бот погоды — проект вниз или в проекты, не шапка. Фриланс парсеров: один сопровождаемый контур сильнее десяти разовых.

Тесты, типы, асинхронность — куда писать

pytest в навыках имеет смысл, если покрывали свой контур и готовы написать тест на созвоне. «Знание TDD» без факта не нужно. mypy/ruff — плюс, если это договорённость репозитория, не курс.

async: FastAPI сам по себе не значит, что вы понимаете event loop. Пишите async, если поднимали воркеры, понимаете блокирующий вызов в хендлере и можете это объяснить. Иначе оставьте FastAPI как фреймворк API без слова «высоконагруженный асинхронный». Выдуманная нагрузка в 2026-м читается сразу.

Типы: аннотации в учебном сервисе — нормальный junior-факт. Не пишите «строгая типизация enterprise», если это три модели Pydantic.

Чек-лист перед откликом

  • В шапке один фреймворк или честно «скрипты без веба».
  • Нет Django+FastAPI+Flask+Pandas+Spark в одной строке.
  • Первые пули про задачу, не про язык.
  • README репозитория говорит, как запустить и чего нет.
  • Docker — только если сами собираете.
  • Слот тестового совпадает: API+SQL vs pandas vs бот.
  • Файл на языке вакансии, без смеси абзацев.

Прогоните через разбор резюме. Затем один отклик, не рассылка на DS и Django одним файлом. Письмо указывает на сервис: короткое письмо. Если тишина — проверьте, не Python ли в фильтре вакансии при том, что в шапке «fullstack JS + Python». Три карточки в одном PDF (backend, данные, боты) обычно не читают никуда: оставьте одну на эту неделю.

Частые вопросы

Django или FastAPI в заголовке, если оба трогал?

Тот, на котором готовы писать тестовое на этой неделе. Второй — строка в навыках, если готовы отвечать про ORM, миграции, зависимости. Не «Django/FastAPI/Flask»: рекрутер не знает, что открыть в пачке, и часто не открывает ничего. Если вакансия Django, а учебный сервис на FastAPI — либо соберите маленький Django-контур, либо откликайтесь на FastAPI-слоты.

Нужен ли Docker?

Плюс, если сами собираете образ и README поднимает Postgres. Не Kubernetes из вакансии без факта. «Использовал Docker-compose с курса» не навык шапки. Если образ собирает CI, а вы только пушите — напишите «деплой через пайплайн, Dockerfile менял вот так», без администрирования кластера.

Как быть с научным Python / дипломом?

Если цель backend — сожмите науку до строки и покажите сервис с API. Дипломный Jupyter не закрывает слот Django. Если цель данные — наоборот, сервис заказов не обязан быть наверху. Не смешивайте в шапке: «Python backend / data science / ML engineer» — это три папки и ноль откликов.

Писать ли асинхронность?

Если писали async API и можете объяснить, что будет, если в хендлер поставить тяжёлый sync-вызов. Курс «async/await» без прода — нет. FastAPI в шапке не равен слову «высоконагруженный». Нагрузку не выдумывайте: «очередь писем на пике перестала терять события» сильнее выдуманных RPS.

Одно резюме на backend и data engineer?

Нет. Разные пули, разные слоты, разные тестовые. DE ждут пайплайн и свежесть данных, backend — API и целостность. Общий файл «Python всё» проигрывает обоим. Соберите две карточки, откликайтесь по одной.

Английский?

Честный уровень. Документация Django на английском не равна C1. Файл на языке вакансии. Не вставляйте в русское резюме абзац «passionate engineer» из генератора — это видно сразу и не добавляет стека.

Перед отправкой запустите README чужими руками: если коллега не поднимает сервис за 15 минут, ссылка в шапке скорее навредит. Допишите запуск и ограничения, потом откликайтесь.

Что сделать сейчас

Выберите одну карточку: backend, данные или автоматизация. Вычеркните фреймворки, на которых не готовы писать тестовое. Сожмите последнюю работу до 4–6 пуль про сервис, не про язык. Оставьте одну ссылку с README. Python в заголовке без задачи уберите — оставьте «Python backend, Django, заказы».

Откликнитесь на одну вакансию Python с тем же фреймворком. Прогоните файл через разбор резюме и в письме укажите сервис, не «знаю Python». Если слот про Spark и витрины, а у вас Django — это не ваш файл, не подгоняйте навыки ради фильтра.