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

Разработчик стал тим лидом в 22 года и борется с техническим долгом? / Техсобес Middle Python Dev

Разбор мок-собеседования Middle Python-разработчика с архитектурными вопросами и live-coding-задачей о конкурентных денежных переводах. В конце интервьюер даёт подробный субъективный фидбек по ответам и дизайну решения.

Источник: Python Mentor

Открыть на YouTube

Таймлайн

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

Это тестовое мок-собеседование на Middle Python Developer: кандидат рассказывает о текущем проекте, работе с техническим долгом и подходе к интервьюированию. Основная часть посвящена архитектуре сервисов, отказоустойчивости, Python-конкурентности, Linux, сетевым протоколам и оптимизации БД, затем кандидат решает live-coding-задачу о потокобезопасном переводе денег между аккаунтами. В финале интервьюер положительно оценивает ответы кандидата для уровня Middle/Middle+ и советует начинать дизайн с распределения ответственностей между сущностями, а не с немедленной реализации.

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

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

  • Для разговора о техническом долге подготовьте не только определение, но и процесс: фиксировать отдельные проблемы в backlog, планировать их на технических встречах и превращать в конкретные задачи по рефакторингу.
  • Разделяйте сервисную и микросервисную архитектуру через автономность границ: отдельные бизнес-обязанности, независимые релизы и, где возможно, владение данными; общая БД между сервисами обсуждается как антипаттерн, а переход от монолита — через модульный монолит и Strangler pattern.
  • Повторите устойчивость сервисов: rate limiting для защиты от чрезмерного трафика, circuit breaker для временного прекращения запросов к деградировавшему сервису, а также метрики доступности вроде SLO/SLA.
  • Нужно уметь объяснить hexagonal architecture: бизнес-логика не зависит от инфраструктуры; порт — интерфейс, адаптер — его реализация, а Dependency Inversion и Dependency Injection помогают зависеть от абстракций.
  • При большой доле kernel space в Linux стоит искать интенсивный I/O и системные вызовы; в примере с разбором логов рассматриваются медленный диск, перекрытие чтения и парсинга, а также кэширование уже обработанных строк.
  • В задаче с денежными переводами важны Decimal вместо float, атомарность операции, защита от race condition, разнесение доменной сущности Account и механизма синхронизации, а также отдельные однопоточный и многопоточный функциональные тесты.
  • Для роста нагрузки повторите вертикальное и горизонтальное масштабирование, шардирование против репликации, CQRS для разделения чтения и записи, кэширование и различие B-tree- и hash-индексов.

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

2 ч 15 мин
BackendSenior

Собеседование senior backend-разработчика / Node.js | Хекслет

Длинное учебное интервью о проектировании backend-систем и инженерных компромиссах. Основные темы — шина сообщений в финтехе, Node.js-стек, тестирование, инфраструктура, производительность и культура разработки.

1 ч 56 мин
BackendJunior

Сильный джун или почти миддл? / Техсобес студента-программиста на позицию Junior Python Dev.

Разбор мок-собеседования студента на позицию Junior Python Developer: проекты, Python Core, конкурентность, ООП, SQL/ORM, базы данных и микросервисная архитектура. В конце — обратная связь и рекомендации по подготовке к реальным интервью.