Наша команда делится на несколько частей:
- Онлайн-обработка платежей: платёжное окно, API2-запросы для взаимодействия с системой, терминалы для обработки уведомлений от платёжных систем и админка. Тут 3 человека, в основном это perl-монолит, рождённый примерно 15 лет назад, но мест с непонятным legacy мало и залезать туда надо редко. В основном почти всё самописное, стек Perl 5.41 в качестве баз используем MariaDB 11 и Postgres. Активно используем Redis, самописные очереди на MySQL и Redis
- Офлайн-обработка платежей: выгрузка в систему АБС, сверки по отчётам от платёжных систем и тому подобное. Набор демонов на Perl и Go, занимаются 2 человека
- Go-сервисы для взаимодействия с внешними системами: НСПК (для СБП), smev3, esia, сервис донатов, paymobile и тому подобное. В команде 2 человека
Высоких нагрузок у нас нет (около 900K платежей в сутки), упор на надёжность, отсутствие багов, тестирование, regress-проверки при изменении существующего кода, мониторинг.
Занимаемся приёмом и выводом платежей группы. Самые популярные способы оплаты: карты, СБП, мобильная коммерция, SberPay.
Задачи
- Поддержка монолита на Perl
- Написание новых сервисов и перенос частей монолита на Golang
- Проектирование и разработка сервисов
- Проведение код-ревью
- Реагирование на инциденты
Требования
- Глубокое знание Perl
- Написание интеграций с новыми платёжными системами, новые продуктовые задачи, поддержка существующих интеграций
- Знание основ работы с СУБД и key-value хранилищами (Redis)
- Знание основ работы unix like подобных ОС (у нас AlmaLinux9)
- Желание изучать Golang и переносить наиболее часто меняемые части системы в отдельные Go-сервисы