← Вернуться к списку вакансий

Senior Backend‑Developer (Node.js)

по договоренности
Devhunt
· 4 дня назад
Описание вакансии
Прибыльная и быстрорастущая продуктовая компания, развивающая околоигровые продукты, один из крупнейших маркетплейсов внутриигровых предметов в мире в своей экосистеме: продаёт быстрее и безопаснее всех благодаря собственному ComputerVision-решению с системой P2P-сделок. Мы делаем так, чтобы покупка и продажа предметов была мгновенной, безопасной и понятной.

Задачи:
  • Проектировать и реализовывать бизнес-критичные микросервисы с нуля и развивать существующие
  • Решать задачи конкурентного доступа: race conditions при одновременных покупках одного товара, двойные списания, корректная работа с балансами при тысячах одновременны операций
  • Обеспечивать консистентность данных между микросервисами: саги, компенсирующие транзакции, eventual consistency
  • Проектировать и поддерживать контракты между сервисами (HTTP API, события в Kafka, сообщения в RabbitMQ)
  • Оптимизировать работу с PostgreSQL: сложные запросы, правильные уровни изоляции, индексирование, партиционирование, миграции без даунтайма на таблицах с сотнями миллионов записей
  • Проектировать очереди и event-driven потоки: гарантии доставки, ordering, retry-стратегии, dead letter queues, poison message handling
  • Писать тесты: unit, integration с Test containers, e2e
  • Участвовать в в код-ревью, формировать стандарты и практики команды
  • Отвечать за свои сервисы в produtcion: мониторинг, алертинг, инцидент-менеджмент
  • Использовать AI-инструменты для ускорения разработки и критически оценивать результат
Требования:
  • 5+ лет коммерческой backend-разработки

  • TypeScript + Node.js — не «писал скрипты на ноде», а строил production-системы: понимание event loop, libuv, streams, memory leaks, профилирование, отладка под нагрузкой

  • NestJS — реальный опыт с DI, модулями, guards, interceptors, pipes, custom decorators, микросервисными транспортами

  • PostgreSQL — не «делал SELECT», а: транзакции с правильными уровнями изоляции, SELECT ... FOR UPDATE / FOR UPDATE SKIP LOCKED , deadlocks и их диагностика, EXPLAIN ANALYZE , partial/covering/GIN/GiST индексы, партиционирование, оконные функции, CTE, миграции на живых данных

  • TypeORM — query builder, миграции, работа с транзакциями, понимание ограничений и когда переходить на raw SQL

  • Redis — кэш-стратегии (cache-aside, write-through), распределённые блокировки, rate limiting, pub/sub, понимание eviction policies, persistence (RDB/AOF)

  • RabbitMQ — exchange types, routing, prefetch, ack/nack, dead letter exchanges, стратегии retry, отравленные сообщения

  • Опыт с race conditions — не теоретический, а реальный: находил, воспроизводил, чинил в production

  • Идемпотентность — умение проектировать операции, безопасные при повторном выполнении (idempotency keys, deduplication)

  • Тестирование — не «знаю что такое jest», а: тестовая стратегия, моки vs реальные зависимости, Testcontainers, тестирование race conditions

  • Самостоятельность — способность взять задачу «нужно решить проблему X» и довести до production без пошагового руководства

  • AI как инструмент — практический опыт работы с AI-ассистентами в разработке (Cursor, Copilot, Claude, ChatGPT). Не «спрашиваю у ChatGPT как написать цикл», а: декомпозиция задач для AI-агентов, промпт-инжиниринг для сложных задач, критическая оценка сгенерированного кода, понимание ограничений и галлюцинаций LLM

Будет плюсом:

  • Kafka — partitioning, consumer groups, exactly-once semantics, event sourcing, Schema Registry
  • ElasticSearch / OpenSearch — проектирование маппингов, bulk-индексация, оптимизация поисковых запросов, агрегации
  • ClickHouse — аналитические запросы, потоковая вставка, materialized views
  • Опыт с финансовыми системами, платёжными сервисами, банкингом — где ошибка = потеря денег
  • Опыт в gaming, e-commerce, high-frequency trading, fintech — знакомство с доменом и его вызовами
  • Распределённые транзакции — Saga (orchestration / choreography), Outbox Pattern, Two-Phase Commit на практике
  • Нагрузочное тестирование — k6, Artillery
  • Понимание балансировки нагрузки, стратегий деплоя (blue-green, canary, rolling)
  • Опыт декомпозиции монолитов
  • Опыт построения AI-пайплайнов в команде: автоматизация ревью, генерация тестов, AI-агенты для DevOps-задач
  • Опыт работы с LLM API (OpenAI, Anthropic, локальные модели) — интеграция AI-функциональности в продукт
  • Python — умение читать и писать код (часть внутренних инструментов и ML-пайплайнов)

Условия:
  • Работу над продуктом, которым пользуются миллионы людей каждый день
  • Влияние на продукт: здесь код двигает бизнес x5-x7, а не пылится в бэклоге
  • Технически сложные задачи — high-load, concurrency, distributed systems — каждый день
    Микросервисную архитектуру, где ты владеешь своими сервисами целиком
  • Участие в ключевом проекте трансформации платформы — прямое влияние на рывок компании
  • Международную команду из 8+ стран
  • Автономию и доверие: мы нанимаем взрослых людей и не занимаемся микроменеджментом
  • Конкурентную компенсацию (обсуждается индивидуально)
  • Полностью удалённую работу

    При отклике, укажите, пожалуйста, в сопроводительном письме в какие игры вы играете или играли :)
Откликнитесь на вакансию:
Посмотреть контакты
Ссылка скопирована!
Рекомендуем вакансии
Senior backend developer (Node.js)
62 - 92
DataLouna · Москва
Senior Node.js backend developer
по договоренности
БАЗАР · Москва
Senior Full stack Developer
от 350 000
Топассистент · Москва
Senior PHP Developer
3 000 - 5 000
AVALON INNOVATIONS PTY · Москва
Backend Developer
по договоренности
MadOut Games · Москва
Senior Backend Developer (NodeJS)
по договоренности
MadOut Games · Москва