В чем заключалась оптимизация пакетов документов
Что проверяют
Это вопрос по строчке из вашего резюме: интервьюер проверяет, что вы действительно делали эту работу и понимаете, почему она дала эффект. Следом идут уточнения «как измеряли», «почему не другой способ» и «как убедились, что ничего не сломалось».
Как отвечать
Нужна ваша реальная история с конкретикой. Каркас:
- что за пакет: например, комплект документов по сделке, который собирается из шаблонов, рендерится в PDF, архивируется и уходит в хранилище. Объём: сколько документов в пакете и пакетов в сутки;
- что было медленно и как нашли: измерение, а не догадка.
cProfileилиpy-spyдля горячих функций, тайминги этапов в логах, OpenTelemetry или Sentry, логирование SQL для поиска N+1; - что поменяли: убрали N+1 через
prefetch_relatedв Django илиselectinloadв SQLAlchemy; вставляли пачками черезbulk_create; сетевые вызовы распараллелили черезasyncioиhttpx; рендер PDF, упирающийся в CPU, вынесли вProcessPoolExecutor, потому что потоки из-за GIL его не ускорят; сборку унесли в фоновые задачи Celery; архив сделали потоковым, чтобы не держать пакет в памяти; - результат в цифрах: было и стало, на каком объёме, какая метрика (среднее, p95, память).
Цифры должны быть ваши и измеренные, с понятной базой. Интервьюер обязательно спросит, откуда они, и «стало на 40% быстрее» без объяснения замера сработает против вас.
Назовите цену решения: процессы едят память, фоновые задачи требуют идемпотентности и повторов при сбоях, кеш требует инвалидации. Если часть работы делали коллеги, прямо обозначьте свою роль. Если такой оптимизации в вашем опыте не было, не придумывайте: расскажите о другой, где выдержите любое уточнение.
Где спотыкаются
Отвечают набором общих слов: «сжали, закешировали, оптимизировали базу». Без узкого места, способа замера и конкретного изменения это звучит как пересказ статьи.
Оптимизировали без профилирования. Если вы не можете сказать, какой этап занимал больше всего времени, интервьюер решит, что улучшение случайное.
Выдают командную работу за свою. Вопрос «как именно была устроена очередь задач?» быстро показывает, кто писал код.