Вернуться в каталог собеседований

Python: техническое собеседование Senior-разработчика

Запись технического интервью Senior Python/Backend-разработчика. После вопросов о Flask, asyncio, CI/CD, Terraform, Kubernetes, брокерах сообщений и базах данных кандидат выполняет задачу на рефакторинг и ускорение Python-функции.

Python Mentor
  • Опубликовано на YouTube:
  • Просмотры на YouTube: 1,6 тыс.
  • Лайки на YouTube: 37
Открыть на YouTube

Таймлайн

Коротко о видео

Техническое интервью начинается с разбора опыта кандидата: выбора Flask, asyncio и uvloop, CI/CD и Terraform, Kubernetes/EKS, облаков, Celery и брокеров сообщений, типизации, баз данных и Grafana/ClickHouse. Затем обсуждаются GIL, потоки и процессы, Ruff и способы взаимодействия сервисов. Во второй половине кандидат разбирает функцию на экране и проверяет гипотезы по её ускорению: ищет лишние выделения памяти и повторные вычисления, меняет код и сверяет результат с замерами. В конце затрагиваются PyPy и Cython как варианты дальнейшей оптимизации.

Затронутые темы

Что взять на заметку

  • Обосновывайте выбор фреймворка контекстом проекта, требованиями и состоянием экосистемы на момент решения, а не только личным предпочтением.
  • Разделяйте I/O-bound и CPU-bound задачи: GIL в CPython ограничивает параллельное выполнение Python-байткода, но потоки остаются полезны для I/O и расширений, освобождающих GIL.
  • Не смешивайте Celery и брокер сообщений: Celery — система очередей задач, использующая брокер, например RabbitMQ, Redis или SQS.
  • В оптимизации сначала фиксируйте замеры и профиль: перенос инвариантных вычислений из цикла и отказ от ненужных промежуточных списков могут помочь, но каждую микрооптимизацию нужно проверять бенчмарком.
  • Выбирайте синхронные HTTP/RPC-вызовы или асинхронный обмен сообщениями по требованиям к ответу, задержке и надёжности доставки.

Рекомендуем посмотреть