Опиши архитектуру своего проекта или работы
Что проверяют
Видите ли вы систему целиком, а не только свой модуль, и умеете ли объяснять решения через ограничения, а не через моду. Параллельно проверяют честность: интервьюер будет уточнять детали, и по ним понятно, вы это проектировали, читали или пересказываете.
Как отвечать
Идите сверху вниз и уложитесь в несколько минут:
- что за система и кто пользователь, какой поток запросов и объём данных, что с требованиями к задержке и к потере данных;
- из каких частей состоит и почему границы проведены именно так;
- где лежат данные: основная база, кэш, файловое хранилище, и что в каждом из них;
- что происходит асинхронно: очереди, фоновые задачи, регулярные выгрузки;
- как это живёт: развёртывание, миграции, логи, метрики, дежурство.
Для Python-позиции сразу давайте предметную конкретику. Какой фреймворк и почему: Django ради ORM, админки и готовой аутентификации либо FastAPI ради асинхронных вызовов внешних сервисов и валидации схем. Как запускается: синхронные воркеры или ASGI, сколько процессов, почему тяжёлые вычисления вынесены из веб-процесса. Чем сделаны фоновые задачи, гарантирован ли повтор и идемпотентны ли обработчики. Где были узкие места: N+1 в ORM, исчерпание пула соединений, сериализация больших ответов.
Завершайте компромиссами: что выбрали бы иначе сейчас и какой долг остался. Это отличает инженера от экскурсовода по собственному репозиторию.
Где спотыкаются
Перечисляют стек вместо архитектуры. Список из фреймворка, базы, кэша и брокера не говорит ничего, пока не сказано, какая нагрузка их потребовала.
Второе: присваивают себе всю систему. На вопрос «почему выбрали именно такую очередь» ответа нет, и весь предыдущий рассказ обесценивается. Безопаснее очертить свою зону и отдельно сказать, что делали коллеги.
Третье: приводят красивые цифры без методики. Заявление про тысячу запросов в минуту тянет за собой вопросы, чем мерили, на каком железе и какой была доля ошибок. Ответов нет, значит цифра взята с потолка.