Миддл с 3-мя годами опыта менторит студентов?? / Техсобес на позицию Middle Python Developer
Мок-собеседование Middle Python Developer: опыт кандидата, проектирование Python-систем, SOLID, валидация, лайвкодинг и разбор репликации с шардированием. В финале интервьюеры объясняют, что развивать для более уверенного прохождения реальных интервью.
Это тестовое (mock) собеседование на позицию Middle Python Developer с кандидатом Георгием. Он рассказывает о менторстве в SkillFactory, интеграционных задачах и решении конкурентной записи во внешнюю CRM через Kafka; затем разбирается пример кредитного конвейера и архитектурные проблемы класса «Заёмщик». Интервьюеры обсуждают SRP, DIP, контракты, валидацию и типизацию Python, проводят лайвкодинг задачи на поиск единственного числа другой чётности, а в конце дают развивающую обратную связь. Отдельно разбираются различия репликации и шардирования баз данных.
Перед решением задачи сначала формализуйте требования и крайние случаи, затем разделяйте валидацию входа и основную бизнес-логику.
Для SRP важно понимать не только «одну задачу класса», но и одну группу акторов или одну причину изменения; начисление стипендии и каникул у сущности Student может относиться к разным акторам.
Вызов HTTP/API налоговой из доменной сущности «Заёмщик» смешивает уровни: интеграцию стоит вынести в отдельный адаптер или сервис, а бизнес-коду зависеть от абстракции.
Контракт функции включает типы и формат входных/выходных значений, а также инварианты; типовые ожидания полезно проверять type hints и статическим анализом, а ограничения значений — валидацией на границе системы.
В описанном кандидатом кейсе Kafka использовали как очередь, чтобы один потребитель последовательно записывал изменения во внешнюю CRM и повторял доставку при недоступности сервиса; строгий порядок обновлений, по его словам, не был бизнес-требованием.
При ответе о репликации и шардировании нужно связывать решение с проблемой: репликация хранит синхронизированные копии, а шардирование делит набор данных и может изолировать горячую нагрузку.
В резюме и на интервью лучше указывать технологии, которыми уверенно владеешь; при недостатке знаний прямо обозначать это и отделять предположение от факта.