Задачи
•Разрабатывать сервисы карт, счетов, операций, подписок, реферальной системы и комиссий — от схемы данных до API и фоновых обработчиков
•Работать с денежной логикой в PostgreSQL: разбираться в функциях и триггерах, сохранять инварианты балансов, проектировать транзакции, блокировки, индексы и безопасные миграции
•Развивать обработчики Kafka и Pub/Sub: обеспечивать идемпотентность, дедупликацию, корректные повторы и восстановление после частичных сбоев
•Поддерживать общий Kafka controller и прикладные событийные потоки
•Развивать GraphQL и REST API, а также события WebSocket, сохраняя обратную совместимость с независимо выпускаемыми клиентскими приложениями
•Интегрироваться с карточными, KYC, крипто- и почтовыми провайдерами, обрабатывать вебхуки и корректно разбирать случаи, когда результат внешнего вызова неизвестен
•Вести подсистему целиком: уточнять бизнес-правила, проектировать решение, выпускать его, проверять результат и документировать важные сценарии
•Планировать изменения схемы и данных без остановки критичных production-сценариев
•Разбирать инциденты на уровне приложения по цепочке API → БД → очередь → провайдер и безопасно восстанавливать незавершённые операции
•Участвовать в code review и технических решениях; вместе с QA улучшать проверки, с frontend и mobile согласовывать контракты
Требования
•От 4 лет коммерческой backend-разработки на TypeScript/Node.js
•Сильное знание PostgreSQL: SQL, планы запросов, индексы, транзакции, блокировки и уровни изоляции; умение разбираться в большой существующей схеме
•Опыт с PL/pgSQL, триггерами и хранимыми функциями или готовность быстро освоить этот слой
•Понимание систем с денежным состоянием: проводок и двойной записи, удержаний, статусов операций, мультивалютности, конвертаций, точности округлений, сверки и компенсации
•Опыт с Kafka, Pub/Sub или RabbitMQ: доставка at-least-once, повторная обработка, дедупликация и понимание границ между очередью, БД и внешним сервисом
•Опыт с GraphQL и/или REST
•Умение безопасно менять работающую систему: сохранять обратную совместимость, планировать порядок миграции и выпуска, ограничивать rollout и проверять результат
•Самостоятельность: умение уточнять недостающие бизнес-правила, проектировать решение и доводить его до production
•Инженерная аккуратность: строгая типизация, статический анализ, тесты в наиболее рискованных местах, понятные сценарии проверки и актуальная документация
•Умение расследовать сбои по конкретным идентификаторам и данным, отделять факты от гипотез и не повторять денежную или внешнюю операцию без сверки результата
Будет плюсом: опыт с ClickHouse, GCP Cloud Run, Pub/Sub, Cloud Functions, Docker, GitLab CI, Redis, WebSocket, Sentry, а также опыт в финтехе или криптопродуктах
Условия
•График 5/2