Вернуться в видеотеку

Собеседование на позицию Backend Developer Python Middle #5

Техническое Python backend-собеседование с вопросами по базам данных, асинхронности, сетевым протоколам и WebSocket. Заключительная часть посвящена проектированию сервиса изображений при переходе от монолита к микросервисам.

Источник: Python собеседования

Открыть на YouTube

Таймлайн

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

Запись технического собеседования на позицию Python Backend Middle: кандидат отвечает на вопросы об уровнях изоляции транзакций, asyncio, GIL, сокетах, TCP/UDP и WebSocket. Интервьюер уточняет устройство текстового HTTP-запроса и объясняет, что WebSocket начинается с HTTP-запроса с заголовком Upgrade. В финальном system-design кейсе обсуждается выделение сервиса изображений из монолита, его независимость от бизнес-сущностей, загрузка файлов и передача метаданных через события или брокер.

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

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

  • Повторить уровни изоляции транзакций и аномалии чтения: грязное и неповторяемое чтение; уметь объяснить, какую проблему устраняет каждый уровень.
  • Уметь описать asyncio через корутины, задачи и event loop, отдельно понимая кооперативную передачу управления в точках await.
  • Подготовить точное объяснение GIL в CPython и его практических ограничений для CPU-bound задач, не сводя ответ только к тезису «всё выполняется в одном потоке».
  • Различать сокет и транспортный протокол: для сетевого соединения важны IP-адрес, порт и протокол; TCP гарантирует доставку и порядок, UDP — нет.
  • Знать, что HTTP — текстовый протокол: запрос содержит стартовую строку, заголовки и при необходимости тело; его можно составить вручную поверх TCP-соединения.
  • Объяснять WebSocket handshake: соединение начинается как HTTP-запрос и переключается через Upgrade, в том числе для прохождения промежуточной инфраструктуры и firewall.
  • В system design сервиса изображений отделять хранение и обработку файлов от бизнес-логики монолита; для прямой загрузки в сервис нужны метаданные или событие, позволяющие монолиту связать файл с нужной доменной сущностью.

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