Everything in Node.js & Express
Multi-stage Docker builds for lean production images?
Build stage compiles/installs, runtime stage copies artifacts only, discards build tools.
Graceful shutdown implementation and zero-downtime deployments?
Listen for SIGTERM, stop accepting new connections, drain in-flight requests, close resources, exit.
PM2 cluster mode and multi-core utilization?
Cluster mode forks multiple worker processes using Node.js cluster module, distributes load, uses all CPU cores.
dependencies vs devDependencies in production?
Dependencies are needed at runtime, devDependencies only for development. npm install includes both, npm ci --only=production excludes dev.
What are key Dockerfile steps for Node.js Express apps?
Use lightweight base image, copy app, install deps, expose port, set NODE_ENV, run.
How does NODE_ENV=production change Express behavior?
NODE_ENV is a convention signal, production disables verbose logging and enables caching.
What does PM2 do for Node.js applications?
PM2 restarts crashed processes and manages multiple workers.
Environment configuration and secrets management in Node.js?
Use environment variables, load from .env file (dev only), never commit secrets.
WebSocket optimization for high-frequency data?
Large payloads increase latency, frequent tiny messages waste overhead, solutions include compression, selective fields, and batching.
Cross-server Socket.IO communication in horizontal scaling?
Local io.emit() only reaches local sockets, need adapter (Redis) for inter-server broadcast.
How to sync state across multiple user devices?
Attach userId to each socket, track active sockets per user, broadcast user state to all their sockets.
How to authenticate WebSocket connections using JWTs?
Client sends JWT on connection, server validates via middleware, socket is attached to user.
How does Socket.IO handle WebSocket failures with fallbacks?
Transports are communication protocols, WebSocket is primary, long-polling is fallback, client auto-detects and downgrades.
How do Socket.IO rooms organize client communication?
Rooms group sockets for targeted broadcasting, socket can join multiple rooms, emit to room broadcasts to all members.
How to add Socket.IO to an Express application?
Create HTTP server with express(), attach Socket.IO to it, listen on server not app, define event handlers.
Socket.IO emit methods: socket, io, broadcast differences?
Socket.emit() sends to one client, broadcast.emit() to all except sender, io.emit() to all.
HTTP request-response versus WebSocket connections?
HTTP is request-initiated, pull-based, client waits for response. WebSocket is persistent, bidirectional, either side sends data anytime.
How do you handle errors across piped streams safely?
Pipe connects streams but errors don't auto-propagate, must listen on each stream. Use pipeline() helper for auto-cleanup.
postMessage vs SharedArrayBuffer in worker_threads tradeoffs?
Structured cloning copies data, SharedArrayBuffer shares memory.
How does Node.js cluster module enable zero-downtime restarts?
Master-worker architecture, graceful shutdown of old workers, routing new requests to new workers.
We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.
See open roles