Node.js / NestJS

DevOps, Logging & CI/CD

Winston, Pino, structured logging, correlation IDs, APM, GitHub Actions, GitLab CI, pipelines, automated testing, deployment automation

25 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒÂ·
Mid-Level
1

What is the main difference between Winston and Pino?

āļ„āļģāļ•āļ­āļš

Pino is designed to be extremely fast with low overhead (asynchronous by default), while Winston is more feature-rich but slightly slower. Pino uses structured JSON by default and avoids synchronous transformations, making it ideal for high-performance applications. Winston offers more transports and formatting options out of the box.

2

What is a correlation ID in the context of logging?

āļ„āļģāļ•āļ­āļš

A correlation ID is a unique identifier (UUID) associated with an HTTP request or event, allowing tracing of all related operations across different services and logs. This facilitates debugging distributed systems by grouping all logs from the same transaction. It is typically propagated via HTTP headers (X-Correlation-ID).

3

What is the main advantage of structured logging?

āļ„āļģāļ•āļ­āļš

Structured logging (logs in JSON format with key-value fields) allows easy filtering, searching, and analysis with tools like Elasticsearch, Grafana, or Datadog. Unlike plain text logs, structured logs can be indexed and queried efficiently. This greatly improves observability and debugging in production.

4

What are the standard log levels in Winston and Pino?

5

How to implement a global logger in NestJS?

+22 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āļŦāļąāļ§āļ‚āđ‰āļ­āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Node.js / NestJS āļ­āļ·āđˆāļ™āđ†

Node.js Fundamentals

Junior
20 āļ„āļģāļ–āļēāļĄ

Node.js Core APIs

Junior
25 āļ„āļģāļ–āļēāļĄ

Asynchronous Programming

Junior
25 āļ„āļģāļ–āļēāļĄ

Express.js Basics

Junior
20 āļ„āļģāļ–āļēāļĄ

NestJS Fundamentals

Junior
23 āļ„āļģāļ–āļēāļĄ

REST API Design

Junior
20 āļ„āļģāļ–āļēāļĄ

Validation & DTO

Junior
20 āļ„āļģāļ–āļēāļĄ

API Documentation & Contracts

Junior
20 āļ„āļģāļ–āļēāļĄ

Error Handling

Junior
20 āļ„āļģāļ–āļēāļĄ

Unit Testing

Junior
20 āļ„āļģāļ–āļēāļĄ

Task Scheduling

Junior
15 āļ„āļģāļ–āļēāļĄ

NestJS Modules & DI

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Configuration & Environment Management

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

JWT Authentication

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

Authorization & RBAC

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Database with TypeORM

Mid-Level
30 āļ„āļģāļ–āļēāļĄ

Prisma ORM

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

Middleware & Interceptors

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

File Upload

Mid-Level
15 āļ„āļģāļ–āļēāļĄ

WebSockets

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

GraphQL with NestJS

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

End-to-End Testing

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Caching with Redis

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Queues with Bull

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Docker & Containerization

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

Microservices

Senior
30 āļ„āļģāļ–āļēāļĄ

Security Best Practices

Senior
25 āļ„āļģāļ–āļēāļĄ

Performance & Cloud Deployment

Senior
30 āļ„āļģāļ–āļēāļĄ

āđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļ Node.js / NestJS āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļĢāļąāđ‰āļ‡āļ–āļąāļ”āđ„āļ›

āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ„āļģāļ–āļēāļĄāļ—āļąāđ‰āļ‡āļŦāļĄāļ” flashcards āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„ āđāļšāļšāļāļķāļāļŦāļąāļ” code review āđāļĨāļ°āļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āđ€āļĢāļīāđˆāļĄāđƒāļŠāđ‰āļŸāļĢāļĩ