70 человек, свои инструменты разработки. Разбор технологии финтех приложения KoronaPay
В 2021 году пользователи мобильного приложения «Денежные переводы KoronaPay» отправили $7 миллиардов. Сервис расширяется и продолжает хайрить разработчиков. Рассказываем о том, что в нем интересного с технологической точки зрения, чем занимается команда и какие возможности для роста есть у сотрудников.
История
Мобильное приложение «Денежные переводы» появилось в 2016 году. Разработка началась в феврале в томском офисе и уже к лету вышла рабочая версия. На первом этапе команда состояла из восьми человек: разработчиков на Android и iOS, бэка и веба. Все они пришли из других отделов «Золотой Короны» и работали с технологиями, которые использовались на внутренних проектах: Java, Objective-C. После запуска мобильный продукт показал хорошие финансовые результаты и руководство компании продолжило его развивать.
Как работает сервис
Мобильное приложение KoronaPay уникально по трем аспектам:
- Его делают более 70 человек. У большинства похожих команд из других компаний состав гораздо меньше. Приложение «Денежные переводы» — это несколько интегрированных между собой продуктов, в том числе переводы из РФ и СНГ, переводы из Европы, «Займы». Технически это приводит к большому бэклогу с задачами из разных областей бизнеса. Эффективно с ним может справиться только большая команда, состоящая из экспертов в каждой из этих областей.
- В него легко можно добавлять новые функции и вносить изменения. Сервису уже шесть лет — это большой срок для подобных продуктов. За это время изменились технологии, языки программирования, характеристики девайсов. Но приложение «Денежные переводы» ни разу не переписывалось заново. Развитие происходит за счет эволюции решений, которые были заложены в 2016 году.
Даже на этапе MVP в приложениях была выбрана архитектура, которая позволяла добавлять новые возможности, быстро реагировать на изменения. Разработчики понимали, что нужно выйти на рынок быстро, но все равно проинвестировали усилия в создание надежной базы. Время выиграли на переиспользовании наработок из приложений, которые уже существовали в компании.
Еще одно решение — минимизация количества сторонних решений в приложениях. «Денежные переводы» создается уже шесть лет и по планам компании будет существовать еще долго. Команда разработчиков говорит, что не может положиться на third party со временем жизни в три-четыре года. - Под него создаются собственные инструменты разработки. Например, собственные фреймворки для DSL, система доставки билдов до тестировщиков, сервисы локализации другие. Это позволяет финтех-продукту оставаться защищенным, а масштабным проектам работать без сбоев.
Стек технологий выбирается таким образом, чтобы минимизировать внешние зависимости и обеспечить максимальную безопасность приложения. Для iOS это Swift и SDK, для Android — Kotlin, Coroutine и Jetpack Compose.
Разработка
Приложение «Денежные переводы» единое для европейского рынка и для СНГ. Поэтому с точки зрения разработки оно адаптировано к финансовым системам в разных странах. Так, в Европе популярны переводы по реквизитам на банковский счет. В СНГ же люди привыкли получать переводы наличными или зачислять на карты национальных или международных платежных систем.
В некоторых странах закон требует, чтобы пользователь подтверждал личность каждый раз, когда достигает лимита по переводам. Все это нужно учитывать на этапе работы над фронтом и бэком приложения: добавлять системы списания и «приземления» денежных средств, модули для распознавания документов пользователя.
Особое внимание при разработке уделяется безопасности сервиса. Кроме службы информационной безопасности в этот процесс вовлечены и разработчики. Для этого создана инициатива Security Ninja. Фактически, Security Ninja — это игровая форма подхода к SDLC-разработке.
Как это работает:
- Все желающие проходят дополнительное обучение на базе платформы Ninja Dojo.
- Получают материалы по теме от службы безопасности.
- После этого можно ревьюить код на предмет уязвимых зон.
За активное участие разработчики получают Ninja Coins, которые обменивают на особый мерч. Он подчеркивает то, что сотрудники помогли усилить безопасность продукта. Для некоторых разработчиков роль Security Ninja — это возможность расширить свой кругозор и инженерные навыки в ситуациях, когда им кажется, что они уже достигли своего максимума и стремиться более не к чему.
Команда
Типовая команда состоит из семи человек. Это два Android-разработчика, два iOS-специалиста, тестировщик, бэкенд-разработчик и бэкенд-тестировщик. Такой юнит сбалансирован и способен выполнить задачу полностью. Но есть и целиком платформенные команды, состоящие, например, только из Java-разработчиков. Такие команды могут прийти на помощь, если фича требует доработок на платформе, или берут те задачи, где не нужны изменения в мобильных приложениях.
Каждый специалист может развиваться горизонтально и вертикально. Это значит, наращивать техническую экспертизу в смежных платформах, становиться T-shape специалистом, либо углубляться в рамках своей платформы и становиться техлидом. Перейти из одной роли или команды в другую также возможно — для этого в компании существуют внутренний конкурс вакансий и карьерное консультирование. Все зависит от желания и возможностей человека.
Какие инструменты для роста есть в компании:
- Индивидуальный карьерный трек. Сотрудник может поговорить с HR-ом, наставником или руководителем, чтобы вместе с ними определить зоны роста и запланировать шаги для достижения цели.
- Программы развития hard и soft skills: тренинги, мастер-классы, курсы.
- Участие в ИТ-событиях в качестве слушателей и спикеров, членов программных комитетов.
Команды мобильной разработки участвуют во всех этапах производства:
- планирование
- работа с требованиями
- разработка
- сопровождение и поддержка фич
Эти задачи имеют понятную бизнес-ценность и направлены на развитие продукта. Инфраструктурные команды тесно работают с командами разработки, выявляют потребности в инструментах, формируют архитектурные подходы для дальнейшего развития приложения, поддерживают конвейеры CI/CD. Задачи у таких команд направлены на повышение технического совершенства продукта и инструментов.
Читать на dev.by