Открытый учебный стрим с техническим интервью Node.js-разработчика, практической задачей и последующим разбором ответов. В центре внимания — производительность, архитектура API, зависимости и безопасность серверных приложений.
Это демонстрационное открытое собеседование на позицию Node.js-разработчика: Антон интервьюирует Игоря, а в конце участники и зрители разбирают ответы. Основная техническая часть посвящена Event Loop, блокирующим вычислениям, libuv, Worker Threads, профилированию, масштабированию и пакетным зависимостям Node.js. Также обсуждаются выбор REST, GraphQL и gRPC, кэширование, безопасность веб-приложений и выполняется практическая задача на обработку списков каналов.
Для Node.js важно уметь находить синхронные CPU-bound операции, которые блокируют Event Loop: в примере такой операцией становится многократное хеширование пароля.
Диагностику проблем производительности предлагается начинать с нагрузочного тестирования конкретных endpoint'ов, профилирования и наблюдения за потреблением ресурсов, а не с преждевременного масштабирования.
Worker Threads, процессы и масштабирование рассматриваются как разные способы распараллеливания; в финальном фидбэке уточняется, что добавление ресурсов одному инстансу — вертикальное масштабирование, а добавление инстансов — горизонтальное.
При исправлении медленной зависимости стоит изучить исходники, предложить pull request активному проекту, выбрать замену для заброшенной библиотеки либо поддерживать форк через контролируемый корпоративный реестр.
Для интеграции списков каналов нельзя полагаться на простое поиск подстроки через indexOf: совпадения должны учитывать границы названий и похожие имена каналов.
В безопасности обсуждаются принцип минимальных прав к production-данным, аудит зависимостей, защита от SQL injection через параметризованные запросы/prepared statements и риски XSS даже при HTTPS.