Streaming API Infrastructure
API gateway routing millions of requests per second, A/B testing infrastructure for UI experiments, and content metadata services powering recommendations for 200M+ subscribers.
Payment Processing Platform
Transaction processing achieving 2x throughput vs Java, real-time fraud detection pipelines, and merchant API services handling billions of dollars in payments.
Mobile Backend Services
Activity feed processing (likes, comments, shares), real-time notification delivery, and connection suggestion algorithms—reduced servers from 30 to 3 with 10x performance improvement.
Ride Matching Services
Real-time driver-rider matching handling millions of concurrent connections, surge pricing calculations, and location tracking with sub-second updates.
What Node.js Developers Actually Build
Before writing your job description, understand what Node.js developers will build at your company. Here are real examples from industry leaders:
Streaming & Media
Netflix uses Node.js for their streaming API infrastructure—the backend that handles 200+ million subscribers browsing content, managing profiles, and streaming video. Their Node.js developers handle:
- API gateway routing millions of requests per second
- A/B testing infrastructure for UI experiments
- Content metadata services that power recommendations
Spotify uses Node.js for backend services that manage playlists, user sessions, and real-time features like collaborative playlists and listening activity.
Payments & Fintech
PayPal famously migrated from Java to Node.js, achieving:
- 2x more requests per second
- 35% decrease in average response time
- Code written in half the time with fewer developers
Stripe uses Node.js for developer-facing tools, webhook processing, and real-time transaction monitoring dashboards.
Professional Networks & Communication
LinkedIn rebuilt their mobile backend in Node.js, reducing servers from 30 to 3 while improving response times 10x. Their Node.js developers build:
- Activity feed processing (likes, comments, shares)
- Real-time notification delivery
- Connection suggestion algorithms
Slack uses Node.js for their real-time messaging backend, handling millions of concurrent WebSocket connections for instant message delivery.
E-Commerce & Marketplaces
eBay uses Node.js for their API services, processing hundreds of millions of requests daily for product listings, search, and checkout.
Walmart adopted Node.js for their mobile app backend, handling Black Friday traffic spikes that would overwhelm traditional architectures.
What to Look For: Skills by Business Need
The Modern Node.js Developer (2024-2026)
Node.js has evolved dramatically since its 2009 release. The ecosystem moves fast, and "modern" Node.js (versions 18-22) looks very different from code written even 3-4 years ago.
The ES Modules Revolution
If you see a portfolio full of require() statements (CommonJS), the candidate might be working with older patterns. Modern Node.js uses ES Modules (import/export), which became stable in Node.js 16 and is now the standard. This isn't just syntax—it's how the entire npm ecosystem is moving.
What this means for hiring:
- Ask candidates about their experience with ES Modules
- Check if their recent projects use
"type": "module"in package.json - Understand that transitioning CommonJS to ESM is a real skill
TypeScript Is Now Standard
The majority of new Node.js projects use TypeScript. Major companies like Netflix, LinkedIn, and Stripe require TypeScript for backend Node.js work. A Node.js developer without TypeScript experience may struggle in typed codebases—this isn't a dealbreaker but requires training time.
The Framework Landscape
- Express: The veteran (since 2010). Massive ecosystem, but showing its age. Good for candidates to know, but not cutting-edge.
- Fastify: Performance-focused alternative to Express. 2x faster benchmarks. Growing adoption.
- NestJS: Enterprise-grade, TypeScript-first, Angular-inspired architecture. Popular for larger teams.
- Hono: Ultra-fast, works across runtimes (Node, Deno, Bun, Cloudflare Workers).
For hiring: Don't require all frameworks. A strong developer learns a new framework in 1-2 weeks. Focus on fundamentals.
Runtime Alternatives: Bun and Deno
Bun and Deno are emerging Node.js alternatives with faster startup times and built-in TypeScript support. While not yet mainstream for production, awareness of these shows a candidate stays current. Netflix and other companies are experimenting with Bun for specific use cases.
Understanding the Event Loop: The Core Differentiator
The event loop is THE concept that separates good Node.js developers from great ones. It's not just trivia—it's fundamental to building performant applications.
What Great Candidates Understand
How Node.js Handles Concurrency
Node.js is single-threaded but handles thousands of concurrent connections efficiently because it doesn't wait for I/O operations. When a database query is sent, Node.js continues processing other requests. When the query completes, a callback handles the result.
The Event Loop Phases
Strong candidates can explain the phases: timers → pending callbacks → idle/prepare → poll → check → close callbacks. They know that setTimeout callbacks run in the timers phase, while setImmediate runs in the check phase.
What Blocks the Event Loop
CPU-intensive operations block the event loop, preventing other requests from being processed. Great candidates know to:
- Offload heavy computation to Worker Threads
- Use streaming for large file operations
- Break up synchronous loops with
setImmediate
Interview Signal
Ask: "What happens when you run a CPU-intensive task in Node.js?"
- Junior: "It might be slow"
- Senior: "It blocks the event loop, preventing other requests from being processed. I'd move it to a Worker Thread, offload to a queue like Bull/BullMQ, or use a separate service for computation."
Async Patterns: Evolution and Mastery
The Journey of Async in Node.js
- Callbacks (2009-2015): The original pattern. Still exists in legacy code.
- Promises (2015+): Cleaner chaining, better error handling.
- Async/Await (2017+): The modern standard. Looks synchronous, behaves asynchronously.
- Streams (always): Essential for large data processing.
What to Assess
Error Handling Across Async Boundaries
Ask: "How do you handle errors in an async/await function that calls three services?"
- Junior: Uses try/catch around everything
- Senior: Discusses error boundaries, retry strategies (exponential backoff), circuit breakers (using libraries like
opossum), and graceful degradation
Understanding Streams
Streams are criminally underused by junior developers. They're essential for:
- Processing files larger than available memory
- Real-time data transformation
- Efficient HTTP responses
Ask: "How would you process a 10GB log file in Node.js?"
- Red flag: "Read the whole file into memory"
- Green flag: "Use a readable stream with line-by-line processing"
Skills by Experience Level
Junior (0-2 years)
- Builds simple REST APIs with Express or Fastify
- Basic database queries (CRUD operations)
- Understands async/await but may struggle with error handling
- Can follow existing patterns but struggles with architecture
- Familiar with npm and package management
Mid-Level (2-5 years)
- Designs API contracts and database schemas
- Implements authentication and authorization (JWT, OAuth)
- Writes tests and manages deployment pipelines
- Debugs production issues using logs and metrics
- Understands caching strategies (Redis, in-memory)
- Can optimize database queries and connection pools
Senior (5+ years)
- Architects distributed systems and microservices
- Optimizes performance at scale (load testing, profiling)
- Mentors juniors and establishes coding standards
- Makes build vs. buy decisions with business context
- Handles security audits and compliance requirements
- Designs for failure (graceful degradation, circuit breakers)
- Understands operational concerns (monitoring, alerting, on-call)
Recruiter's Cheat Sheet: Spotting Great Candidates
Resume Green Flags
✅ Production Node.js experience with scale metrics ("10M requests/day")
✅ TypeScript mentioned alongside Node.js
✅ Framework experience matching your stack
✅ Database and caching experience (PostgreSQL, Redis)
✅ CI/CD and deployment mentions
✅ Real-time features or WebSocket experience
✅ Open-source contributions to Node.js ecosystem
Resume Yellow Flags
⚠️ Only frontend JavaScript experience
⚠️ No mention of async patterns or event loop
⚠️ Missing database experience
⚠️ No TypeScript in recent projects (past 2 years)
⚠️ Only tutorial-level projects (TodoMVC, weather apps)
Technical Terms Decoded
| Term | What It Means | Why It Matters |
|---|---|---|
| Event Loop | Node's concurrency model—single thread handling many requests | Core to understanding Node.js performance |
| Express/Fastify | Web frameworks for building APIs | Like React vs Vue—matters less than fundamentals |
| NestJS | Enterprise-grade Node.js framework | Shows experience with larger, structured codebases |
| Prisma/TypeORM/Drizzle | Database ORMs for type-safe queries | Modern approach to database access |
| npm/pnpm/yarn | Package managers for Node.js | pnpm shows awareness of modern tooling |
| Worker Threads | Multi-threading for CPU-intensive work | Important for performance-critical applications |
Conversation Starters That Reveal Skill Level
| Question | Junior Answer | Senior Answer |
|---|---|---|
| "What was the hardest backend problem you solved?" | "Database wasn't connecting" | "Designed a queue system that handles 50K messages/minute with exactly-once delivery" |
| "How do you decide between REST and GraphQL?" | "GraphQL is newer so it's better" | "It depends on client needs, caching requirements, and team expertise" |
| "Tell me about a production incident you debugged" | Generic or vague | Specific metrics, tooling (Datadog, New Relic), root cause analysis |
Common Hiring Mistakes
1. Frontend JavaScript ≠ Backend JavaScript
A React developer who's "used Express a bit" is NOT a Node.js developer. Backend work requires:
- Database design and optimization
- Security awareness (SQL injection, authentication)
- Deployment and operational skills
- Understanding of system resources and scaling
What to do: Ask specifically about backend projects. Look for database work, API design, and production operations.
2. Ignoring Framework Preferences
Express, Fastify, NestJS, and Hono serve different purposes. Hiring an Express developer for a NestJS codebase works but requires ramp-up time. NestJS in particular has a steep learning curve with its decorators and dependency injection.
What to do: Consider framework fit during interviews, but don't filter out great candidates because they used Express and you use Fastify. The transition takes 1-2 weeks for strong developers.
3. Underestimating TypeScript
Modern Node.js projects use TypeScript. Candidates without TypeScript experience will be less productive initially. This isn't a dealbreaker—strong JavaScript developers learn TypeScript basics in 1-2 weeks—but factor in ramp-up time.
4. Testing for Trivia
Don't ask "What are all the event loop phases?" as a gotcha question. Instead, ask "How would you debug a Node.js service that's responding slowly under load?" This reveals real-world problem-solving ability.
5. Requiring All the Things
Asking for Express AND Fastify AND NestJS AND Hono shows you don't know your own stack. Pick one. A good developer learns a new framework quickly. Netflix, PayPal, and LinkedIn don't require all of them.