***
💡Ламповое комьюнити питонистов в Telegram: https://t.me/pymentor
📡 Записаться на тестовый (мок) собес: https://t.ly/lXoVH
✒️ Собесы, интервью, подкасты: / @pymentor_by
✉️ Связь с автором канала - [email protected]
***
Тайм коды:
--- Вступление и обсуждение процесса найма
0:00:00 — Начало
0:00:35 — Разбор заваленного технического собеседования на позицию Middle Python Developer.
0:02:01 — Обсуждение причин долгих поисков работы и состояния рынка труда.
--- Распределенные транзакции и паттерны
0:08:59 — Переход к технической части: вопросы об опыте работы с распределенными транзакциями.
0:10:26 — Разбор ошибки: путаница между пессимистической/оптимистической блокировками БД и распределенными транзакциями.
0:12:18 — Пример из практики: использование паттерна Transactional Outbox для синхронизации с Kafka.
0:13:17 — Что на самом деле интервьюер ожидал услышать про классическую реализацию Outbox.
0:15:33 — Почему вредно «фристайлить» и закидывать собеседника заученными терминами.
0:18:13 — Важность пет-проекта и как он помогает уверенно отвечать на сложные вопросы.
--- Базы данных: Транзакции и блокировки
0:24:28 — PostgreSQL: уровни изоляции транзакций и возможные аномалии (dirty read, phantom read и др.).
0:26:18 — Блокировки в PostgreSQL на уровне строк (Row-level locks).
0:32:51 — Совет: как аргументировать выбор оптимистической или пессимистической блокировки на основе профиля нагрузки.
--- Смежные технологии: Фронтенд, DevOps и тестирование
0:34:59 — Вопросы про опыт работы с фронтендом и шаблонизаторами (на примере Jinja2).
0:39:51 — DevOps-практики: CI/CD, работа с Docker и развертывание в Google Cloud Platform (GCP).
0:44:03 — Обсуждение: должен ли бэкенд-разработчик уметь писать конфигурации DevOps и CI/CD пайплайны, тесты (pytest, mock).
--- Python, фреймворки и архитектура приложения
0:49:36 — Топ-3 главных проблем при работе с Django и сравнение концепций Django, FastAPI, Flask и Litestar.
0:58:16 — Проблема поддержки проекта при выборе разных стеков технологий для фронтенда и бэкенда.
1:01:36 — Архитектурная проблема: жесткая привязка бизнес-логики к фреймворку и сложности с обновлением.
1:04:09 — Зачем интервьюеры просят рассказать о реальных «боевых» проблемах на прошлых проектах.
1:06:30 — Использование стандартной библиотеки регулярных выражений (re) при парсинге.
1:08:26 — В чем принципиальная разница между shallow copy и deep copy в Python.
1:12:04 — Асинхронность: сравнение подходов multiprocessing, multithreading и asyncio.
1:14:21 — Практическая задача: как искать узкие места в тормозящем приложении.
1:16:30 — Пошаговый анализ проблемы: использование observability, метрик, трейсов и спанов.
--- Базы данных: Индексы и полнотекстовый поиск
1:18:38 — Использование лога медленных запросов базы данных и команды `EXPLAIN ANALYZE`.
1:20:26 — Когда индексы в БД помогают, а когда планировщик выберет Seq Scan (понятие селективности данных).
1:26:46 — Важность создания индексов для полей, по которым происходят JOIN-запросы.
1:33:05 — Полнотекстовый поиск: почему стандартное B-tree дерево для этого не подходит.
1:36:06 — Использование GIN-индекса и расширения `pg_trgm` (поиск по триграммам).
1:38:17 — Практический кейс: проблемы полнотекстового поиска при смешивании кириллицы и латиницы.
--- Софт-скиллы и управление диалогом
1:42:07 — Как технически грамотно отвечать, если не знаешь точного ответа на вопрос.
1:45:51 — Важность софт-скиллов: как кандидату самому перевести «экзамен» в профессиональную дискуссию.
--- Взаимодействие микросервисов и протоколы
1:48:54 — Какие существуют протоколы взаимодействия между микросервисами.
1:49:10 — Выбор между синхронным (HTTP, gRPC) и асинхронным (очереди) взаимодействием.
2:00:48 — Теоретический вопрос: видны ли процессы из Docker-контейнера в хостовой ОС (разница между Linux и другими ОС).
2:03:13 — Специфика сетевого взаимодействия в видеоиграх (использование UDP, QUIC и кастомных протоколов).
--- Брокеры сообщений и стриминг данных
2:09:49 — Как отстаивать личные границы, если интервьюер задает странные вопросы и начинает «душить».
2:14:04 — Реализация паттерна «Издатель-Подписчик» (Pub/Sub) для асинхронного общения двух сервисов.
2:18:49 — Архитектурный выбор: Websocket соединение или стриминг через Kafka.
2:29:57 — Отказоустойчивость и надежность брокеров сообщений на примере Kafka и RabbitMQ.
--- Фидбэк от компании и подведение итогов
2:33:59 — Краткое описание внутреннего устройства инфраструктуры компании-интервьюера (геймдев).
2:34:48 — ФИДБЕК и осуждение главной проблемы найма: компании ищут Middle-разработчика, но требуют знания и опыт уровня Senior.
2:45:26 — Рекомендации по подготовке к будущим интервью: предварительный ресерч компании и активное общение с HR.
***
#python #interview #собеседование