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