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