The short version
The list
- 1
The Event Loop + Non-blocking I/O
Node.js is single-threaded for JavaScript but offloads I/O to the libuv thread pool. The event loop processes callbacks from completed I/O operations in phases (timers → pending callbacks → idle → poll → check → close). Why non-blocking: a slow database query doesn't freeze the server.
Why it matters: Asked at ~85% of Pune Node.js rounds. Walk through the phases verbally; bonus: explain when setImmediate fires vs setTimeout(0).
Best for: Foundation; expected to know cold.
- 2
Promises + async/await over callbacks
Promises represent eventual values (pending → fulfilled or rejected). async/await is sugar over Promises that reads sequentially. Always await Promises in async functions; unawaited Promises cause silent error loss. Use Promise.all() for parallel work, Promise.allSettled() when you want all results regardless of individual failures.
Why it matters: Asked at ~75% of Pune rounds. Common gotcha: forgetting that forEach + async/await doesn't work as expected (forEach doesn't await).
Best for: Async patterns; modern idioms.
- 3
Streams + Buffers for memory-efficient I/O
Streams process data piece-by-piece without loading the entire payload into memory. Four types: Readable (file read, HTTP request), Writable (file write, HTTP response), Duplex (sockets), Transform (compression). Buffers represent fixed-size raw bytes; use for binary data + non-UTF8 strings.
Why it matters: Asked at ~45% of Pune product company rounds. Streams are how Node.js handles large file uploads + downloads without exhausting memory.
Best for: Memory efficiency + performance signal.
- 4
Express middleware + the request pipeline
Express apps are a chain of middleware functions: req → middleware1 → middleware2 → ... → handler → response. Each middleware can read/modify req + res or call next() to pass control. Order matters. Common middleware: body-parser, cors, helmet, morgan logger, auth.
Why it matters: Asked at ~70% of Pune MERN rounds. Walk through writing a custom auth middleware as a coding exercise.
Best for: Express foundations; MERN-specific signal.
- 5
Centralised error handling with next(err)
In Express, passing an error to next(err) routes to error-handling middleware (4-argument signature: (err, req, res, next)). Define one at the end of the chain to catch all errors. Async route handlers need try/catch + next(err) or express-async-errors package to surface async errors.
Why it matters: Asked at ~55% of Pune rounds. The most-failed Express question is async error handling — sync errors propagate; unhandled async ones crash the process.
Best for: Production reliability discipline.
- 6
Environment-based configuration + dotenv
Never commit secrets (API keys, DB passwords) to git. Use .env files via dotenv package for dev; cloud secrets manager (AWS Secrets Manager, Azure Key Vault) for prod. Access via process.env.X. Validate required env vars at startup; fail fast if missing.
Why it matters: Asked at ~40% of Pune rounds. 12-factor app awareness signal.
Best for: Configuration discipline; production-ready signal.
- 7
JWT authentication with refresh tokens
Access token (short-lived, ~15 min, stored in memory) + Refresh token (long-lived, ~7 days, stored in httpOnly cookie). Server verifies access token on protected routes; client uses refresh token to get a new access token when it expires. Critical: refresh token rotation prevents replay attacks.
Why it matters: Asked at ~60% of Pune MERN rounds. The dominant fresher auth pattern; mention httpOnly + SameSite + Secure cookie flags for senior-fresher signal.
Best for: Auth + security foundation.
- 8
REST API design with proper status codes + error responses
200 OK, 201 Created, 204 No Content for success; 400 Bad Request (client error), 401 Unauthorized, 403 Forbidden, 404 Not Found, 409 Conflict, 422 Unprocessable for client mistakes; 500 Internal Server Error, 502/503/504 for server problems. Consistent error response shape: `{ error: { code, message, details } }`.
Why it matters: Asked at ~65% of Pune rounds. 500-for-everything is the rookie mistake; specific status codes signal API design maturity.
Best for: API design discipline.
- 9
Process management + clustering
Single Node.js process uses one CPU core. For multi-core: cluster module (built-in) or PM2 (production process manager). PM2 handles restarts on crash, log aggregation, zero-downtime reload. Modern serverless deployments (Lambda, Vercel) sidestep this — they spawn separate function instances per request.
Why it matters: Asked at ~30% of Pune rounds, mostly product company + DevOps-leaning interviews.
Best for: Production deployment depth.
- 10
Testing with Jest or Vitest + supertest
Jest (older standard) or Vitest (modern, faster). Test patterns: unit tests on pure functions, integration tests on API routes (use supertest to make HTTP requests without spinning up a real server), mock external services. Coverage threshold (~70-80%) is a common production CI gate.
Why it matters: Asked at ~40% of Pune rounds, especially product company + senior-fresher tier. Walking through a test pyramid (unit > integration > E2E) signals engineering discipline.
Best for: Testing rigour; product-company differentiator.
How we built this list
Concepts ranked by Pune Node.js + MERN fresher interview-frequency from Archer Infotech's placement-cell debriefs over 2024-2026 cycles. Frequencies cover services-major MERN engagements (Cognizant, Capgemini, Persistent JavaScript practice) + product companies (Druva, BrowserStack, GUVI, Helpshift) + Pune startups. Modern patterns (async/await, Express 4+, Jest 29+) prioritised over older callback + Mocha-style patterns.
FAQs
Common questions about node.js concepts.
Do I need to know the Node.js internals (libuv, V8) for fresher interviews?
Conceptual awareness yes (libuv handles I/O, V8 runs JavaScript); deep depth no. You should be able to explain why Node.js is single-threaded yet non-blocking; you don't need to read libuv source. Spend prep time on the event loop phases + async patterns instead — much higher interview-question payback.
Should I learn TypeScript with Node.js or stick to JavaScript?
Learn JavaScript fundamentals first (months 1-3), add TypeScript in months 4-6. ~60% of new Pune Node.js postings reference TypeScript explicitly; product companies + AI startups standardise on it. Services-major MERN work is more mixed. Strong TypeScript + Node.js fluency materially improves product-company-targeted offers.
Express, Fastify, NestJS, Hono — which Node.js framework should I learn?
Express for hiring volume (~70% of Pune Node.js postings). NestJS for product company + structured codebase targeting (~15%, growing). Fastify for performance-critical APIs (~10%). Hono is rising for edge / Cloudflare Workers contexts (~5%). Learn Express first; add NestJS for product-company differentiation.
What's the most-failed Node.js question at Pune fresher interviews?
Async error handling. Candidates know try/catch but miss: (1) unhandled promise rejections crash the process by default in modern Node, (2) async route handlers in Express need try/catch + next(err) or process won't recover, (3) forEach + async doesn't work as expected (use for...of). Walking through these failure modes signals real production experience.