Какие pet-проекты ты реализовал?

«Какие pet-проекты ты реализовал?» — вопрос из категории Софт-скиллы, который задают на 26% собеседований Node.js Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

Я разработал несколько pet-проектов для изучения различных аспектов Node.js-экосистемы:

  1. Микросервис для обработки очередей задач:

    • Стек: Node.js, Bull (Redis), Express, TypeScript.
    • Суть: Сервис принимает задачи (например, генерацию отчетов, отправку email) через REST API, ставит их в очередь и обрабатывает воркерами. Реализовал приоритизацию задач, повторные попытки при сбоях и мониторинг через панель Arena.
      // Пример создания задачи
      const reportQueue = new Queue('reports');
      await reportQueue.add('generate-monthly', { userId: 123 }, {
      priority: 1,
      attempts: 3
      });
  2. Real-time дашборд для мониторинга сервера:

    • Стек: Node.js, Socket.io, Chart.js, Systeminformation.
    • Суть: Серверное приложение собирает метрики (CPU, память, нагрузка) и через WebSocket в реальном времени отправляет их на клиентский интерфейс с графиками. Это помогло глубже понять Event Loop и работу с веб-сокетами.
  3. CLI-утилита для рефакторинга кода:

    • Стек: Node.js, Commander.js, Babel parser.
    • Суть: Инструмент для поиска в проекте устаревших паттернов (например, устаревших методов библиотек) и их автоматической замены. Это был отличный опыт работы с AST (Abstract Syntax Tree).