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

Сильный Middle и всего лишь 2 года опыта?? Такое вообще бывает? / Техсобес Middle Python Developer

Двухчасовое мок-собеседование Middle Python Developer с разбором архитектуры, Python/OOP, асинхронности и проектирования высоконагруженного сервиса лайков. В конце интервьюеры дают развёрнутый технический фидбек по ответам кандидата и подготовке к реальным интервью.

Источник: Python Mentor

Открыть на YouTube

Таймлайн

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

Это тестовое мок-собеседование на позицию Middle Python Developer: кандидат Артём рассказывает о двух годах опыта, текущем монолите на Python и затем отвечает на вопросы по архитектуре, ООП, асинхронности и базам данных. Интервьюеры подробно разбирают компромиссы Repository/ORM, Protocol и ABC, полиморфизм, DI, Clean Architecture и DDD, а также предлагают спроектировать высоконагруженный сервис лайков. В финальном фидбеке интервьюеры положительно оценивают базовое инженерное мышление кандидата, но советуют лучше обосновывать решения, укрепить терминологию и не заявлять в резюме навыки, которые пока изучаются поверхностно.

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

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

  • Кандидат описывает текущий проект как слоистый монолит: HTTP-ручки, сервисный слой, репозитории, база данных и брокеры сообщений для Telegram-ботов; ORM-модели преобразуются в DTO.
  • Интервьюеры подчёркивают, что Repository поверх ORM оправдан не «чистотой» сам по себе, а конкретными последствиями: зависимостью от интерфейса, заменяемостью хранилища и более изолированным тестированием; дополнительный слой также увеличивает код и стоимость поддержки.
  • Для моделирования предметной области наследование следует применять к отношениям обобщения, а не ради повторного использования методов; пример «автомобиль наследуется от колеса» требует композиции.
  • Protocol в Python даёт структурную типизацию и более слабую связанность, тогда как ABC принуждает к наследованию и удобнее навигируется IDE; выбор должен зависеть от необходимых гарантий и компромиссов.
  • Для IO-bound нагрузки кандидат использует async/await; интервьюеры поясняют преимущество event loop через мультиплексирование множества сокетов и меньшее число системных вызовов по сравнению с моделью «поток на соединение».
  • В задаче о лайках обсуждаются атомарный инкремент, eventual consistency, пакетная запись накопленных счётчиков, кэширование чтения, реплики, материализованные представления, оптимистические и пессимистические блокировки, шардирование и проблема горячего ключа («celebrity problem»).
  • Практическая рекомендация из фидбека: перед ответом на сложный вопрос брать паузу, формулировать аргументы через решаемые проблемы и trade-offs, а новые знания связывать с уже знакомыми темами и практикой.

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

1 ч 18 мин
BackendSenior

Валентин Удальцов, Виталий Лихачев: Публичное собеседование Senior Software Engineer (PHP)

Публичное учебное интервью по PHP для уровня Senior Software Engineer. В нём разбирают современные практики разработки, архитектуру, конкурентный доступ к данным, PostgreSQL, Redis, очереди и transactional outbox.

1 ч 42 мин
BackendMiddle

«Техническое собеседование python-разработчика уровня мидл»

Демонстрационное техническое собеседование Middle Python-разработчика с разбором ответов, кодовой задачей, системным дизайном и рефакторингом. В конце эксперты объясняют, как готовиться к подобным секциям.