Как ты решал эту задачу
Что проверяют
Вопрос обычно идёт следом за вашей же фразой: «оптимизировал API», «переписал сервис». Интервьюер проверяет, вы ли решали задачу и понимаете ли, почему решение сработало. Дальше уточняют вглубь: чем мерили, какие были альтернативы, что бы сделали иначе.
Как отвечать
Держитесь цепочки «проблема, диагностика, решение, проверка, итог» и в каждом звене называйте инструменты:
- проблема: как проявлялась и в каких цифрах. Например, p95 времени ответа вырос до секунды под нагрузкой или процесс падал по памяти;
- диагностика: чем искали причину. Для Node.js это
node --cpu-profили--inspectс Chrome DevTools,perf_hooks.monitorEventLoopDelay()для задержки event loop, heap snapshot при утечке,EXPLAIN ANALYZEдля медленных SQL-запросов, трейсы OpenTelemetry; - решение и альтернативы: что сделали и что отбросили. Индекс в базе, кеш в Redis, вынос тяжёлого синхронного кода (разбор огромного JSON, криптография) в
worker_threads, батчинг запросов; - проверка: нагрузочный тест в
autocannon, k6 или Artillery до и после, на одинаковых условиях; - итог: цифры, которые вы сами сняли, и что осталось нерешённым.
Обозначьте свою роль: «я нашёл», «мы с коллегой решили», «команда внедрила». Интервьюер всё равно спросит, что было лично вашим. Историю берите свою, с настоящими цифрами.
Если задача была учебной или решена не до конца, так и скажите и объясните, где остановились и почему. Если вопрос про задачу, которую вы только что решали на собеседовании, проговорите ход рассуждений, сложность решения и граничные случаи.
Где спотыкаются
Сразу рассказывают решение и пропускают диагностику. Без неё непонятно, почему Redis, а не индекс, и ответ похож на угадывание.
Приводят круглые проценты вроде «стало быстрее на 50%» и не могут назвать метрику, окружение и нагрузку, на которой мерили.
Говорят «мы» на протяжении всего рассказа. Интервьюер так и не понимает, что сделали лично вы, и оценивает команду, а не вас.