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