Расскажите про наиболее сложный технический кейс и его решение
Что проверяют
Что вы называете сложным и как действуете, когда непонятно, где искать. Интервьюеру важна не масштабность истории, а наличие метода: как нашли причину, какие гипотезы отбросили, чем померили результат. Заодно проверяют, ваш ли это кейс, вопросы вглубь быстро показывают, кто на самом деле чинил.
Как отвечать
Возьмите один случай и расскажите его как расследование, а не как список технологий.
- Контекст в двух фразах: что за система, какая нагрузка, что сломалось или чего не хватало.
- Симптом в цифрах: время ответа на p95 выросло, память росла до перезапуска, задачи копились в очереди.
- Почему это было сложно: воспроизводилось только на проде, причина оказалась не там, где симптом, метрик не хватало и пришлось их добавить.
- Что проверяли: профилировщик (cProfile, py-spy на живом процессе), логи запросов, трассировка. Назовите гипотезу, которая не подтвердилась, это самая убедительная часть рассказа.
- Решение и его цена: что выбрали, от чего отказались и почему, какой долг остался.
- Итог: чем померили улучшение и что сделали, чтобы это не повторилось.
Хорошие сюжеты: гонка, проявлявшаяся раз в сутки, утечка памяти, деградация после роста объёма данных, миграция без простоя, интеграция с источником, который отвечает мусором.
Где спотыкаются
Выдают за сложное просто большое: «мы писали крупный проект из многих сервисов». Сложность это неопределённость, а не объём. История без момента «мы не понимали, что происходит» звучит как пересказ задачи из трекера.
Заканчивают выдуманным результатом вроде «ускорили в три раза», не называя ни метрику, ни способ замера до и после. Такой финал вызывает встречные вопросы и разваливает весь рассказ.
Называют asyncio универсальным лекарством от медленной системы. Асинхронность помогает, когда процесс ждёт сеть или диск. Код, упирающийся в процессор, останется медленным: там нужны отдельные процессы, векторные вычисления или вынос расчёта наружу.