Команда Баланс-Платформы состоит из 200+ разработчиков, аналитиков, инженеров DevOps и QA. Большинство из нас пишет на Ruby, но также практикуем Python, JavaScript, PHP, Elixir.
Наша работа сводится к замене бумажно-человеческого процесса в банках на автоматизированный процесс проверки и принятия решения. В нас закидывают пачку сканов и фотографий, который мы преобразуем в текст, распознаем количество заемщиков, определяем достаточно ли информации для принятия решения, проверяем людей по всем доступным источникам на проблемы с законом, долги, банкротство. Далее принимаем решение об одобрении или отказе в кредите по риск-модели банка. Описанный процесс позволяет сообщать результаты по заявке на кредит быстрее - вплоть до 15 минут, если это потребительский кредит. Правила рынка таковы, что кто первым ответил клиенту, тот скорее всего кредит и выдаст.
Для обработки документов и преобразования их в текст в нашей компании разработан сервис "Верификация". Работа сервиса строится на классическом машинном обучении, глубоком обучении, компьютерном зрении и обработке естественного языка (NLP). Два десятка роботов обрабатывают 1 млн сканов в месяц. 100% точность распознавания - предмет нашей гордости.
Специфика нашего бизнеса не предполагает HighLoad, если измерять в RPS. Нагрузку измеряем в млрд. руб., которые проходят через наши приложения. Поэтому мы не можем позволить себе потерять запросы. Используем RMQ, чтобы при возникновении ошибки можно было повторно обработать сообщение.
В каждом проекте настроены Grafana и Prometheus для сбора критичных метрик и отправки уведомлений, за которыми следит наша служба поддержки. Для наших партеров мы гарантируем доступность сервисов 99.99%.
Проектируя наши приложения, исходим из принципа кратного резервирования, поэтому каждый процесс поднят минимум в 3-х экземплярах. Для повышения отказоустойчивости приложений храним данные в кластерных БД: Postgres Patroni, Redis Sentinel, ClickHouse.
Используем Kubernetes для новых проектов и постепенно переводим старые. В этом нам помогает сильная команда инженеров DevOps, которые пишут автоматизацию на Ansible для разворачивания наших сервисов.
В качестве тестового окружения используем Yandex.Cloud. Продакшн-окружения никому не доверяем, поэтому разворачиваем на собственных серверах.
Для того чтобы снизить стоимость и сроки разработки, мы выделяем общие библиотеки и сервисы. Гибкая сервисная архитектура позволяет подбирать подходящую технологию под конкретную задачу. У нас развернуты сотни сервисов на Ruby, Python, Elixir и PHP.
Мы гарантируем корректность расчета и не получаем комиссию партнеров в случае, если расчет выполнен неверно. Поэтому каждый наш сервис покрыт автоматическими тестами. Кроме того наши QA-инженеры пишут E2E тесты для проведения смоук и регрессионного тестирования.
Несмотря на требования к безопасности, оперативно обновляем версии библиотек и интерпретаторов. Покрытие кода автотестами дает возможность сделать это без риска что-нибудь сломать.
Активно используем автоматизированные CI проверки: линтеры, проверки безопасности и производительности.
Работу строим по гибким методологиям - Scrum и Kanban. Jira используем для ведения задач, Confluence - для документации. Также при необходимости используем другие инструменты, например доски для совместной работы в Miro или диаграммы Ганта в Smartsheet.
Люди - наш главный актив, поэтому делаем упор на развитии сотрудников: