Почти Senior или ...? / Техсобес на позицию Middle Python Developer / Mock interview
Длинное тестовое собеседование Middle Python Developer с разбором ответов кандидата. Ведущий объясняет архитектурные и инфраструктурные темы, затем даёт фидбек и список направлений для развития.
Python Mentor
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 30,6 тыс.
- Лайки на YouTube: 888
Таймлайн
Коротко о видео
Это открытое mock-собеседование Python-разработчика на позицию Middle: кандидат отвечает на вопросы, а интервьюер уточняет и разбирает пропущенные темы. Обсуждаются Python, архитектура, микросервисы, Kafka, контейнеризация, деплой, мониторинг, базы данных и тестирование. В финале интервьюер даёт субъективную оценку уровня кандидата и рекомендации по дальнейшему обучению.
Затронутые темы
Что взять на заметку
- Не используйте изменяемые значения по умолчанию в аргументах функций: объект создаётся один раз и может сохранить изменения между вызовами; безопасный паттерн — значение None и инициализация внутри функции.
- Чистые функции не меняют внешний контекст, поэтому их проще повторяемо тестировать и они уменьшают риск скрытых побочных эффектов.
- Генератор сохраняет состояние между вызовами yield; генераторы, принимающие значения через send, можно применить для последовательного сценария вопросов в Telegram-боте.
- По позиции интервьюера, сервисы не должны обращаться к базам данных друг друга: данные следует получать через ограниченный API или обмен сообщениями, иначе система становится распределённым монолитом с высокой связанностью.
- Брокер сообщений позволяет асинхронно передавать долгие задачи и переживать временную недоступность обработчика, но добавляет отдельный компонент, который нужно поддерживать, обновлять и мониторить.
- Для масштабирования stateful-приложения состояние лучше вынести во внешнее хранилище или кэш, чтобы реплики оставались независимыми.
- Конкурирующие изменения важных данных, например баланса, нужно проектировать с учётом уровней изоляции транзакций в базе данных; unit-тесты должны составлять широкое основание пирамиды, а интеграционные — проверять работу с реальными внешними компонентами.