Backend-разработчик (TypeScript/Node.js)
AYA Group нанимает Middle Backend-разработчика (TypeScript/Node.js) с опытом 3-6 лет, полная занятость, удаленно. Разработка сервисов для карт, счетов, операций, подписок, реферальной системы и комиссий.
Разработка сервисов для карт, счетов, операций, подписок, реферальной системы и комиссий — от схемы данных до API и фоновых обработчиков. Работа с денежной логикой в PostgreSQL: понимание функций и триггеров, поддержание инвариантов баланса, проектирование транзакций, блокировок, индексов и безопасных миграций. Разработка обработчиков Kafka и Pub/Sub: обеспечение идемпотентности, дедупликации, корректных повторных попыток и восстановления после частичных сбоев. Поддержка общего контроллера Kafka и потоков событий приложения. Разработка GraphQL и REST API, а также событий WebSocket. Поддержание обратной совместимости с независимо выпускаемыми клиентскими приложениями. Интеграция с провайдерами карт, KYC, крипто и электронной почты, обработка вебхуков и корректная обработка случаев, когда результат внешнего вызова неизвестен. Управление подсистемой от начала до конца: уточнение бизнес-правил, проектирование решения, выпуск, проверка результата и документирование важных сценариев. Планирование изменений схемы и данных без остановки критических производственных сценариев. Расследование инцидентов на уровне приложения по цепочке API → БД → очередь → провайдер и безопасное восстановление незавершенных операций. Участие в ревью кода и технических решениях; совместно с QA улучшение проверок, согласование контрактов с фронтендом и мобильными приложениями.
Не менее 4 лет коммерческой backend-разработки на TypeScript/Node.js. Опыт работы с Bun полезен, но не обязателен. Уверенное знание PostgreSQL: ручной SQL, планы запросов, индексы, транзакции, блокировки и уровни изоляции; способность разобраться в большой существующей схеме. Опыт работы с PL/pgSQL, триггерами и хранимыми функциями, или готовность быстро освоить этот слой. Здесь база данных не только хранит данные: часть денежных правил реализована в ней. Понимание систем с денежным состоянием: проводки и двойная запись, холды, статусы операций, мультивалютность, конвертации, точность округления, сверка и компенсации. Опыт работы с Kafka, Pub/Sub или RabbitMQ: доставка как минимум один раз, повторная обработка, дедупликация и понимание границ между очередью, БД и внешним сервисом. Опыт работы с GraphQL и/или REST. Подход schema-first и генерация типов будут плюсом. Способность безопасно изменять работающую систему: поддерживать обратную совместимость, планировать порядок миграций и развертывания, ограничивать раскатку и проверять результат после релиза. Автономность: умение брать задачу в бизнес-терминах, уточнять недостающие правила, проектировать решение и доводить его до продакшена. Инженерная аккуратность: строгая типизация, статический анализ, тесты в наиболее рискованных местах, четкие сценарии проверки и актуальная документация. Способность расследовать сбои по конкретным идентификаторам и данным, отделять факты от гипотез и не повторять денежную или внешнюю операцию без проверки результата. Будет плюсом: ClickHouse, GCP Cloud Run, Pub/Sub и Cloud Functions, Docker, GitLab CI, Redis, WebSocket, Sentry, опыт в финтех- или крипто-продуктах.
Полная занятость. График 5/2. Удаленная работа.
Не пропусти ни одну вакансию
Подпишись на наш Telegram-канал