Расскажите о самой запоминающейся задаче, которую вы преодолели
Что проверяют
Как вы разбираетесь в проблеме, которую нельзя решить по инструкции. Интервьюеру нужен ход мысли: с чего начали, чем измеряли, какие гипотезы отбросили. У питониста это обычно разговор про данные, производительность или интеграцию, которая ведёт себя не так, как обещает документация.
Как отвечать
Берите задачу, где вы действительно не знали ответа заранее, и ведите рассказ по шагам: симптом, замер, гипотеза, проверка, решение, как убедились, что стало лучше.
Рабочие сюжеты для Python:
- медленный пакетный расчёт: профилирование через
cProfile, и оказалось, что время уходит не в вычисления, а в запрос к базе на каждую строку; - рост потребления памяти в долгоживущем воркере: наблюдение за RSS,
tracemalloc, кэш без ограничения размера; - повторная доставка сообщения из очереди: задача выполнялась дважды, вылечилось ключом идемпотентности, а не блокировкой внутри процесса;
- расхождение окружений: в контейнере одна версия зависимости, локально другая, поведение разное.
Обязательно скажите, чем меряли до и после, и назовите то, что попробовали и отбросили. Признание «сначала думал на сеть, замер не подтвердил» повышает доверие сильнее гладкой истории успеха.
Где спотыкаются
Выдают шаблон с результатом «ускорил скрипт в пять раз». Интервьюер спросит, на каких данных мерили и сколько было прогонов, и без ответа вся история обесценится.
Второе: называют инструмент вместо причины. «Переписал циклы на pandas, стало быстрее» это не объяснение: векторизация помогает, когда узкое место в поэлементной обработке внутри интерпретатора, и не помогает, когда время уходит в сеть или в базу.
Третье: приписывают себе командную работу целиком. Если индексы добавлял администратор базы, а вы принесли ему медленный запрос, так и скажите: разделение вклада делает историю правдоподобнее, а не слабее.