Все вакансии

Backend-разработчик (Node.js + TypeScript)

АПИСЕРВИС · зарплата не указана · Курск · HH · опубликовано 7 мая 2026 г.

Компания АПИСЕРВИС
Источник HH
Опубликовано 7 мая 2026 г.
Зарплата зарплата не указана

Описание вакансии

Кто нам нужен:
Backend-разработчик на Node.js + TypeScript. Проекты сложнее обычных REST-CRUD’ов: реляционные БД с десятками связанных сущностей, фоновые очереди, WebSocket в реальном времени, множественные интеграции (платежи, SMS, OAuth, мессенджеры), RBAC, файловые загрузки и обработка медиа.
Ищем человека, который понимает Node.js как платформу , а не “JS+express”.
Обязанности:
• Развивать существующий backend на Node.js + TypeScript + Express.
• Проектировать схему БД и миграции (MySQL/PostgreSQL).
• Писать слой бизнес-логики и API: REST + WebSocket.
• Делать фоновые задачи через очереди (BullMQ / RabbitMQ / аналог).
• Интегрировать внешние сервисы: платёжные шлюзы, SMS/Email-провайдеры, OAuth-провайдеры, мессенджеры.
• Поддерживать RBAC (роли, права на сущности).
• Работать с медиа: загрузки, ресайз, валидация.
• Деплой: Docker / pm2 / systemd, мониторинг, разбор инцидентов в проде.
Требования:
• Обязательно
• Node.js + TypeScript – 3+ года практики на проде. Не “после курсов”.
• Express или Fastify / NestJS – любой из основных HTTP-фреймворков на проде.
• TypeScript – понимание generics, conditional/mapped types, discriminated unions; умение читать сложные сигнатуры.
• Реляционные БД – MySQL или PostgreSQL. Уметь читать EXPLAIN, понимать индексы, JOIN’ы, транзакции, уровни изоляции.
• ORM / query builder – Prisma, TypeORM, Sequelize, Knex или аналог. Понимание, когда ORM мешает и нужен сырой SQL.
• Redis – как кэш, очередь, pub/sub. Понимание TTL, persistence, eviction policies.
• Очереди задач – BullMQ, RabbitMQ, Kafka или аналог. Идемпотентность, ретраи, dead-letter.
• WebSocket / Socket.io – реальный опыт, понимание масштабирования (sticky sessions, Redis-адаптер).
• REST API – проектирование, версионирование, валидация входных данных (Yup, Zod, Joi).
• Аутентификация – JWT, сессии, OAuth, refresh-токены. Понимание, где что хранить и почему.
• Git – ветки, мержи, ребейзы, разрешение конфликтов.
• Английский – технический, на чтение.
• Желательно
• Passport.js или другая библиотека стратегий аутентификации.
• Опыт интеграции с OAuth-провайдерами (Google, VK, Yandex, Telegram-login и т.п.).
• Платёжные интеграции – Сбербанк-эквайринг, Тинькофф, Stripe, ЮКасса и подобное. Понимание трёхдоменной авторизации, чарджбэков, чеков ОФД.
• Файловые загрузки – multer / busboy, S3-совместимые хранилища, обработка больших файлов.
• Sharp или другая библиотека ресайза изображений; работа с EXIF.
• Docker / docker-compose , базовое понимание Linux на сервере.
• CI/CD – GitLab CI, GitHub Actions; pipeline’ы для тестов и деплоя.
• Логирование и мониторинг – Winston/Pino, structured logs, Sentry, Grafana/Loki.
• Тестирование – Jest, Vitest; unit, integration, end-to-end.
• Будет плюсом
• Опыт с NestJS – DI-контейнер, модульная архитектура.
• gRPC или GraphQL на проде.
• Микросервисы : gRPC, message brokers, service discovery.
• Безопасность : OWASP Top 10, защита от SSRF/SQLi/XSS, rate limiting, защита от brute-force.
• Опыт с высоконагруженными системами : профилирование, оптимизация запросов, шардирование.
• Опыт миграции legacy-кода : с JS на TypeScript, с одного фреймворка на другой, переписывание ORM-слоя.
• DevOps-навыки : nginx, certbot, бэкапы БД, разбор инцидентов в проде.
• Frontend-кругозор : понимание, как клиент потребляет API, чтобы не делать неудобные эндпоинты.
Текущий стек:
Node.js, TypeScript (ESM), Express, MySQL + Prisma, Redis, BullMQ, Socket.io, Passport.js (несколько стратегий), Yup, Sharp, Multer, JWT, vhost-маршрутизация по поддоменам, GitLab.
Стек может меняться – ищем не “знатока этих библиотек”, а человека, который быстро въезжает в новый код.
Что мы оцениваем:
Способность читать чужой большой TypeScript-код с устоявшимися паттернами.
Понимание trade-off’ов : ORM vs raw SQL, очередь vs синхронный вызов, кэш vs консистентность.
Аккуратность с многопоточностью/конкуррентностью на Node.js: race conditions, transactions, locks.
Дисциплина в коммитах: маленькие осмысленные коммиты, чистая история.
Самостоятельность в отладке – гипотезы и проверки, а не “не работает, помогите”.
Умение сказать “не знаю” вместо размытых ответов.
Условия:
• Оформление по ТК РФ, полный соц. пакет.
• Испытательный срок до трех месяцев.
• Пятидневная рабочая неделя с 9-00 до 18-00 (оговаривается при собеседовании)
• Дружный молодой коллектив.
• Комфортный офис.

Навыки

  • Node.js
  • TypeScript
  • REST
  • Express
  • MySQL
  • PostgreSQL
  • RabbitMQ
  • Docker
  • NestJS
  • SQL
  • Redis
  • Kafka
Открыть вакансию в ленте