Разработка высоконагруженного платёжного сервиса. Проект использует современный стек технологий (Go 1.22, Node.js 20, Kubernetes 1.29, PostgreSQL 15 и др.) и микросервисную архитектуру. Система обрабатывает ~100 000 транзакций в сутки в режиме реального времени.
Ищем
Backend-разработчика на Go, который будет разрабатывать ядро этого агрегатора и интеграции с внешними сервисами. Вам предстоит работать с современным стеком (Go 1.22, gRPC, PostgreSQL, Kafka, Redis, Kubernetes), решать нетривиальные задачи производительности и безопасности в финтех-домене.
Обязанности: -
Разработка микросервисов на Go: Создание нового и развитие существующего функционала платёжного агрегатора. Писать чистый, эффективный код на Go, реализуя бизнес-логику платежей, обработку транзакций и webhook-уведомлений от провайдеров в режиме реального времени.
- Интеграция с внешними API: Реализовывать соединения с банковскими и платежными API (REST) и обработку входящих вебхуков. Вникать в предоставленные API-спеки партнёров (документация, Postman-коллекции), корректно реализовывать клиентские запросы и обработку ответов. Обеспечивать идемпотентность операций (защита от дубликатов уведомлений) и проверку подписи/авторизации (SHA512, RSA) при интеграциях.
- Базы данных и хранение: Проектировать и оптимизировать схемы данных в PostgreSQL для финансовых операций (транзакционные таблицы, логи событий). Писать эффективные SQL-запросы, использовать индексирование, следить за производительностью БД. Интегрировать кэширование (Redis) для ускорения частых запросов.
-
Производительность и надежность: Профилировать и оптимизировать код сервисов под высокую нагрузку (~100k транзакций в сутки). Реализовывать конкурентные процессы на Go, грамотно работать с горутинами, каналами. Обеспечивать устойчивость сервисов – обработку ошибок, ретраи запросов к внешним системам, логирование важных событий.
- Тестирование и качество кода: Писать unit и интеграционные тесты для своего кода (например, симуляция webhook-вызовов, проверка корректности бизнес-логики). Участвовать в code review коллег, поддерживать единый стиль кодирования. Документировать ключевые решения и интерфейсы (в README, Swagger и пр.).
-
Взаимодействие с командой: Тесно сотрудничать с другими разработчиками (Go и Node), DevOps-инженером и QA. Планировать выпуски новых версий сервисов через CI/CD (ArgoCD). Участвовать в обсуждении архитектуры, предлагать оптимизации. При необходимости разбирать инциденты в продакшене, профилактировать проблемы до их появления.
Требования: - Опыт разработки на Go: 3+ года практики с Go в продакшене. Отличное знание стандартной библиотеки, понимание тонкостей работы горутин, конкурентных структур данных. Умение профилировать приложение (pprof) и устранять узкие места.
- Микросервисы и сетевые технологии: Опыт создания RESTful API (Echo, Gin или аналогичные фреймворки) и/или gRPC-сервисов на Go. Понимание принципов распределенных систем, умение строить коммуникации через очереди сообщений (Kafka) и вебхуки. Знание протоколов HTTP/HTTPS, основ аутентификации и авторизации (OAuth, JWT) будет плюсом.
- Работа с данными: Уверенное владение PostgreSQL – составление сложных запросов, оптимизация исполнения, понимание транзакций и изоляции. Опыт с NoSQL или in-memory хранилищами (Redis) для кэширования. Базовое представление о работе брокеров сообщений (Kafka или RabbitMQ) – умение публиковать и читать сообщения, понимать концепцию топиков и разделов.
- Качество и практика: Навыки написания тестов (testing, testify), отладки сервисов. Опыт CI/CD: умение собрать Docker-образ, написать Dockerfile, понимать основы Kubernetes (развёртывание, сервисы, конфиги). Готовность следовать принципам чистого кода, SOLID, делать качественную документацию к методам API.
- Понимание домена: Представление о принципах работы платёжных систем, вебхуков, идемпотентных механизмов (например, используете уникальные идентификаторы запросов). Базовое знание криптографии для разработки (хэширование, HMAC, RSA) – вы будете реализовывать и поддерживать проверку подписи запросов.
- Soft Skills: Самостоятельность в решении задач, умение оценивать время разработки. Умение внятно описывать проблемы и результаты, вести переписку в командном чате.
Плюсом будет:
- Опыт работы в финансовых или высоконагруженных проектах (финтех, банковские приложения, биллинг-системы). Понимание требований надёжности и безопасности в этих системах.
- Знакомство с облачной инфраструктурой: разворачивание сервисов в Kubernetes, работа с сервис-мешем (Istio), tracing (OpenTelemetry, Jaeger/Tempo) – чтобы легче взаимодействовать с DevOps и понимать окружение.
- Участие в open-source проектах или наличие своих pet-проектов на Go, показывающих вашу экспертизу.
- Знание TypeScript/Node.js на базовом уровне – для взаимодействия с коллегами fullstack-разработчиками и понимания смежных сервисов (не обязательно программировать на Node, но понимать общую картину).
Условия: - Занятость: полная, долгосрочное сотрудничество. Удалённо, с гибким графиком. Обязательно присутствие в общем core-time GMT+3 для синхронной работы с командой, остальное время распределяете под себя.