CORE

Python Senior

До 300 000 RUR
  • Москва
  • Полная занятость
  • Удаленная работа
  • Более 6 лет
  • Python
  • Django Framework
  • SQL
  • NoSQL
  • Apache Kafka
  • SOLID

Проект срочный на 6 месяцев с возможностью пролонгации.
Мы ищем разработчика, для которого Python — не инструмент, а родной язык выражения архитектурных решений. Ты должен чувствовать стандартную библиотеку как продолжение своих рук, а не гуглить itertools.groupby в третий раз.

Обязанности:

  • Сначала разбираться с существующим backend, после этого развивать существующие сервисы, ещё позже -- проектировать и развивать сложные системы с учётом разграничения доступа.
  • Рефакторить legcy, внедрять архитектурные улучшения (Hexagonal, Clean Architecture, кроссфункциональный подход).
  • Проводить код-ревью, наставлять мидлов, участвовать в архитектурных решениях.
  • Писать не "код, который работает", а "код, который легко читать, тестировать, масштабировать и заменять".
  • Интегрироваться с Go-сервисами, Spark-пайплайнами, внешними АРІ и legacy-системами.
Требования:
  • Python на уровне "знаю , как устроен GIL, и когда это важно " — стандартная библиотека, дескрипторы, метаклассы, slots, контекстные менеджеры, генераторы, декораторы с параметрами — всё это должно быть в активном словаре.
  • Один веб-фреймворк — на уровне " могу написать свой middleware за вечер" (Django, FastAPI, Flask - неважно какой , главное - глубоко )
  • Второй фреймворк — на уровне " могу взять едасу-проект и не сломать его при рефакторинге ".
  • Асинхронность — не магия, а инструмент : async/await, asyncio, понимание event loop, конкурентность vs параллелизм, aiohttp, httpx, aiopg, asyncpg — всё это должно быть в зоне комфорта.
  • SQL — уверенно: оконные функции, СТЕ, индексы, EXPLAIN, транзакции, блокировки, нормализация — ты не просто пишешь SELECT, ты оптимизируешь его.
  • NoSQL — достаточно для выбора и интеграции : Redis (структуры данных, pub/sub, life time), чтобы ты выбирал БД не по хайпу, а по задаче.
  • Kafka, NATS или любой аналог брокеров (роутеров) сообщений.
  • SOLID — не аббревиатура, а образ мышления.
  • Инверсия зависимостей (DIP) — ты не импортируешь реализацию, ты зависишь от абстракции.
  • Ты пишешь from ports import UserRepository, a не from postgres import PostgresUserRepo
  • Принцип подстановки Барбары Лисков (LSP) — ты не ломаешь контракт при наследовании. Ты знаешь , почему Square не должен наследоваться от Rectangle, если изменение ширины меняет высоту.
  • Контейнеризация — не по инструкции, а с пониманием: Docker, docker-compose, multi-stage сборки, volumes, сети, healthcheck — ты не просто запускаешь docker run, ты понимаешь почему то , что ты делаешь -- правильно.
  • Чтение чужого кода — твой супер- скилл : ты можешь взять legacy-модуль, понять его логику, найти анти- паттерны, предложить рефакторинг — и сделать это без сломанного боевого стенда.
    Будет плюсом:
  • Apache Spark / PySpark — опыт обработки больших данных, понимание RDD/DataFrame, оптимизация джобов, работа с партициями.
    2,0@ Знакомство с Go (Golang) — даже базовое. Чтобы понимать, почему Python-код сбоит при интеграции с сервисами на Go -- возможно придётся самому читать микросервисы на Go, с которыми ты интегрируешься и Опыт проектирования/аудита АР| — OpenAPI/Swagger, версионирование, backward compatibility, rate limiting, idempotency.
  • Тестирование на уровне "покрываю не строки, а поведение" — pytest, mocks, fixtures, property-based testing (hypothesis), интеграционные тесты с БД и внешними сервисами
  • Опыт работы с CI/CD. мониторинг (Prometheus/Grafana), логи (Loki, возможно ELK) — чтобы не просто писать код , а доставлять его в производственный стенд и следить за ним
Условия:
  • Оформление по ИП (аутстаф);
  • Проект на 6 месяцев с возможностью пролонгации.