Ответ
Основная причина — отсутствие возможностей для профессионального роста в области Node.js и современных веб-технологий. На предыдущем проекте использовался устаревший стек: преимущественно callback-стиль вместо async/await, отсутствие TypeScript, монолитная архитектура вместо микросервисов.
Конкретные примеры из опыта:
- Поддержка legacy-кода с глубокой вложенностью callback'ов ("callback hell"):
function processUserOrder(userId, orderId, callback) { db.getUser(userId, (err, user) => { if (err) return callback(err); db.getOrder(orderId, (err, order) => { if (err) return callback(err); // ... ещё несколько уровней вложенности }); }); } - Отсутствие современных практик: не было code review, CI/CD pipeline'ов, автоматического тестирования.
- Технический долг накапливался без планов по рефакторингу.
Я искал позицию, где смогу применять и развивать навыки работы с современным Node.js-стеком: TypeScript, Nest.js/Fastify, микросервисная архитектура, контейнеризация, и где ценятся качество кода и инженерные практики.