07.05.2026 в 11:12 Просмотры 1 +1 сегодня Вакансия партнера

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

Курск , микрорайон Пески, 2-й Литовский переулок, 6

Специализация: Программист, разработчик

Формат работы: На месте работодателя

График работы: Сменный

Тип занятости: Полная занятость

Опыт: От 3 до 6 лет

Категория прав: B, C, D

Выплата: ежемесячно

Описание

Кто нам нужен: 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 (оговаривается при собеседовании) Дружный молодой коллектив. Комфортный офис.