Node.js coding challenges
- Is Production? (Easy)
- Greet from the Command Line (Easy)
- Status Code Class (Easy)
- Status Code Text (Easy)
- Bytes to Hex (Easy)
- UTF-8 Byte Length (Easy)
- JSON Response (Easy)
- Safe JSON Parse (Easy)
- Is It a JSON Request? (Easy)
- Dependency Type (Easy)
- npm Script Command (Easy)
- Should It Log? (Easy)
- Format a Log Line (Easy)
- Port from Environment (Easy)
- Allowed Methods (Easy)
- MIME Type from File Name (Easy)
- File Extension (Easy)
- Bearer Token (Easy)
- Text to Base64 (Easy)
- Parse the Query String (Easy)
- Parse Cookies (Easy)
- Build a Query String (Easy)
- Base Name of a Path (Easy)
- Parse a Version (Easy)
- Format Uptime (Easy)
- Format File Size (Easy)
- Promise Delay (Easy)
- Callback to Promise (Easy)
- Total File Size (Easy)
- Mini Event Emitter (Easy)
- Error Handler Middleware (Medium)
- Paginate a List Endpoint (Medium)
- Validate a Signup Body (Medium)
- Serialize a Set-Cookie Header (Medium)
- Parse a Basic Auth Header (Medium)
- Diff package.json Dependencies (Medium)
- Match a Route Pattern (Medium)
- path.posix.normalize (Medium)
- path.posix.join (Medium)
- Decode a JWT (Medium)
- Parse a Raw HTTP Request (Medium)
- Serialize a Raw HTTP Response (Medium)
- Parse Command-Line Arguments (Medium)
- Parse a .env File (Medium)
- Split a Stream into Lines (Medium)
- Count Words with for await (Medium)
- Retry with Exponential Backoff (Medium)
- Timeout with Cleanup (Medium)
- Sequential vs Parallel Tasks (Medium)
- Mini Router with 404 and 405 (Medium)
- CORS Headers (Medium)
- Fixed-Window Rate Limiter (Medium)
- TTL Cache (Medium)
- Content Negotiation (Medium)
- Sort Semantic Versions (Medium)
- Caret and Tilde Ranges (Medium)
- Node-style EventEmitter (Medium)
- Structured Logger with Children (Medium)
- Koa-style compose() (Medium)
- In-Memory Todo REST API (Medium)
- Token Bucket Rate Limiter (Hard)
- Signed Cookies with HMAC (Hard)
- Sliding Window Log Limiter (Hard)
- Client IP Behind Trusted Proxies (Hard)
- Retry With Exponential Backoff (Hard)
- HTTP Range Requests (Hard)
- Worker Thread Pool Scheduler (Hard)
- Length-Prefixed Binary Protocol (Hard)
- LRU Cache With TTL (Hard)
- Load Balancer with Health Checks (Hard)
- Circuit Breaker (Hard)
- Access Log Statistics (Hard)
- Promise Pool With a Concurrency Limit (Hard)
- Safe Static File Server (Hard)
- util.promisify and util.callbackify (Hard)
- JWT Sign and Verify (HS256) (Hard)
- NDJSON Stream Parser (Hard)
- Chunked Transfer Decoder (Hard)
- Async Generator Pipeline (Hard)
- Router with Route Priority (Hard)
- Writable Stream Backpressure (Hard)
- Multipart Form Parser (Hard)
- In-Memory fs With Real Error Codes (Hard)
- Mustache-Lite Template Engine (Hard)
- Background Job Queue With Retries (Hard)
- DataLoader Batching (Hard)
- Streaming CSV Parser (Hard)
- Graceful Shutdown on SIGTERM (Hard)
- Simulate the Node.js Event Loop (Hard)
- Schema Validator (Hard)
- Glob Pattern Matching (Hard)
- Incremental HTTP Request Parser (Hard)
- Cron Expression: Next Runs (Hard)
- Nested Query Parser (qs-style) (Hard)
- CommonJS require() Resolution (Hard)
- Express-Like Middleware Engine (Hard)
- package.json "exports" Resolution (Hard)
- In-Memory REST API (Hard)
- npm Semver Ranges (Hard)
- WebSocket Frame Decoder (Hard)