P
prepair.app
Пройти интервью →
EnglishУкраїнськаРусскийDeutsch
🟢

Senior Node.js BackendВопросы на собеседовании Node.js

Senior · 5+ лет опыта

Собеседование Node.js крутится вокруг event loop, асинхронных паттернов, Express или NestJS и последствий однопоточного рантайма. Ниже — самые частые вопросы с эталонными ответами. Senior: архитектуру, трейд-оффы, менторство и принятие решений.

Попробовать — без регистрации
Готовим вопрос…

Темы для подготовки

Event loop и его фазы
Промисы и async/await
Streams и buffers
Express / NestJS
Middleware и обработка ошибок
JWT и аутентификация

6 вопросов уровня Senior с ответами

1

Как масштабировать Node-сервис, у которого кончается запас?

Ответ

Сначала установить, где предел, и только потом добавлять машины: насыщение event loop, исчерпание пула соединений и задержка внешних вызовов выглядят как медленность, а чинятся по-разному. Горизонтальное масштабирование помогает, только если узкое место действительно процесс. Наибольшую отдачу обычно даёт вынос синхронной работы из пути запроса, а не новые инстансы.

2

Что такое backpressure и где он бьёт на практике?

Ответ

Это сигнал, что потребитель не успевает, и уважать его значит притормозить производителя вместо буферизации. Бьёт везде, где данные приходят быстрее, чем записываются: загрузка в медленное хранилище, потребитель очереди, подтверждающий до обработки, поток, направленный в медленную базу. Если его игнорировать, буфером становится память, и падение выглядит как убийство по нехватке памяти, а не как плавное замедление.

3

Как деплоить, не теряя запросы в полёте?

Ответ

Процесс должен перестать принимать новые соединения, доработать то, что держит, закрыть пулы к базе и только потом выйти — то есть обрабатывать SIGTERM, а не давать себя убить по умолчанию. Ещё нужен readiness-проб, отдельный от liveness, чтобы балансировщик убрал инстанс до начала остановки. Без обоих каждый деплой даёт всплеск ошибок, который никто с деплоем не связывает.

4

Монолит или сервисы для Node-бэкенда — как решать?

Ответ

По границам команд и независимости выкатки, а не по объёму кода. Сервисы окупаются, когда разным командам нужно релизиться, не согласовываясь; до этого они покупают распределённые транзакции, сетевые отказы между функциями, которые были локальными, и проблему трассировки. В Node завести сервис дёшево — именно поэтому команды оказываются с дюжиной сервисов и без возможности что-либо поменять.

5

Что вы логируете и что делает логи полезными в три часа ночи?

Ответ

Структурированный JSON с идентификатором запроса, который следует за вызовом через все сервисы, чтобы по одному идентификатору восстановить всю историю. Логировать решения и границы — что пришло, что выбрали, что вернули, — а не середину циклов. Вопрос объёма решается сам, стоит спросить, что вы будете искать во время инцидента; всё остальное просто стоит денег.

6

Как удержать дерево зависимостей в безопасности на годы?

Ответ

Закоммиченный lockfile, автоматический аудит в CI и политика того, что вообще добавляется: пакет с одним мейнтейнером и без релизов два года — это риск независимо от числа скачиваний. Обновляться по расписанию, чтобы прыжок никогда не был большим, иначе исправление безопасности потребует перескочить три мажорные версии. Глубина экосистемы Node — это одновременно её удобство и её риск.

🦎

Прочитать ответы недостаточно

На собеседовании ты говоришь вслух под давлением. Кем задаст эти же вопросы, оценит каждый ответ и покажет, что именно подтянуть.

Пройти интервью Senior Node.js Backend →
Бесплатно · 3 интервью в месяц

Другие уровни — Node.js Backend

Junior Node.js BackendMiddle Node.js BackendВсе вопросы Node.js Backend

Другие специализации

🔍Senior QA Manual🤖Senior QA AutomationSenior Java Backend🐍Senior Python Backend🐘Senior PHP Backend🦫Senior Go Backend💎Senior Ruby on Rails🟣Senior .NET Backend Developer🔷Senior C++🟨Senior JavaScript