К содержимому

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

AYA GroupУдалённо · Москва

  • Node.js
  • TypeScript
  • PostgreSQL

Мы развиваем финтех-продукты: банковские карты, мультивалютные счета, платежи и криптооперации. Это действующая система с реальными деньгами и десятками тысяч пользователей. Команда небольшая, поэтому разработчик напрямую участвует в технических и продуктовых решениях, работает с техлидом, frontend, mobile и QA и может вести задачи от бизнес-требования до production.

Стек: TypeScript (strict), Bun/Node.js, PostgreSQL (raw SQL, pgtyped, PL/pgSQL, функции и триггеры), GraphQL Yoga и codegen, REST, WebSocket, Redis, Kafka, GCP Pub/Sub, ClickHouse, Docker, GitLab CI, GCP Cloud Run и Cloud Functions, Sentry, Zod, Biome.

Обязанности:

-

Разрабатывать сервисы карт, счетов, операций, подписок, реферальной системы и комиссий — от схемы данных до API и фоновых обработчиков.

-

Работать с денежной логикой в PostgreSQL: разбираться в функциях и триггерах, сохранять инварианты балансов, проектировать транзакции, блокировки, индексы и безопасные миграции.

-

Развивать обработчики Kafka и Pub/Sub: обеспечивать идемпотентность, дедупликацию, корректные повторы и восстановление после частичных сбоев.

-

Поддерживать общий Kafka controller и прикладные событийные потоки.

-

Развивать GraphQL и REST API, а также события WebSocket. Сохранять обратную совместимость с независимо выпускаемыми клиентскими приложениями.

-

Интегрироваться с карточными, KYC, крипто- и почтовыми провайдерами, обрабатывать вебхуки и корректно разбирать случаи, когда результат внешнего вызова неизвестен.

-

Вести подсистему целиком: уточнять бизнес-правила, проектировать решение, выпускать его, проверять результат и документировать важные сценарии.

-

Планировать изменения схемы и данных без остановки критичных production-сценариев.

-

Разбирать инциденты на уровне приложения по цепочке API → БД → очередь → провайдер и безопасно восстанавливать незавершённые операции.

-

Участвовать в code review и технических решениях; вместе с QA улучшать проверки, с frontend и mobile согласовывать контракты.

Требования: -

От 4 лет коммерческой backend-разработки на TypeScript/Node.js. Опыт Bun полезен, но не обязателен.

-

Сильный PostgreSQL: SQL руками, планы запросов, индексы, транзакции, блокировки и уровни изоляции; умение разбираться в большой существующей схеме.

-

Опыт с PL/pgSQL, триггерами и хранимыми функциями либо готовность быстро освоить этот слой. База данных здесь не только хранит данные: в ней реализована часть денежных правил.

-

Понимание систем с денежным состоянием: проводки и двойная запись, удержания, статусы операций, мультивалютность, конвертации, точность округлений, сверка и компенсация.

-

Опыт с Kafka, Pub/Sub или RabbitMQ: at-least-once доставка, повторная обработка, дедупликация и понимание границ между очередью, БД и внешним сервисом.

-

Опыт GraphQL и/или REST. Плюсом будет schema-first подход и кодогенерация типов.

-

Умение безопасно менять живую систему: сохранять обратную совместимость, планировать порядок миграции и деплоя, ограничивать rollout и проверять результат после выпуска.

-

Самостоятельность: способность получить задачу в бизнес-терминах, уточнить недостающие правила, спроектировать решение и довести его до production.

-

Инженерная аккуратность: строгая типизация, статический анализ, тесты в наиболее рискованных местах, понятные сценарии проверки и актуальная документация.

-

Умение расследовать сбои по конкретным идентификаторам и данным, отделять факт от гипотезы и не повторять денежную или внешнюю операцию без сверки результата.

-

Будет плюсом: ClickHouse, GCP Cloud Run, Pub/Sub и Cloud Functions, Docker, GitLab CI, Redis, WebSocket, Sentry, опыт в финтехе или криптопродуктах.

Что мы предлагаем:

  1. Профессиональный рост и развитие:

-

Работа над задачами в международном финтех-продукте

-

Бюджет на обучение, конференции и профессиональную литературу

  1. Условия работы:

-

График работы 5/2 с гибким началом рабочего дня

-

Удаленный формат работы по миру

-

Компенсация ДМС после испытательного срока

-

Два дополнительных выходных дня в год

  1. Корпоративная жизнь:

-

Яркие корпоративные мероприятия, от онлайн-квизов до выездов на природу

-

Поддержка спортивных увлечений команды

-

Отсутствие формализма и бюрократии, мы ценим результат и здравый смысл

openqareer не кадровое агентство: вакансия собрана с открытого источника, отклик подаётся на сайте работодателя.