This form uses Akismet to reduce spam. Learn how your data is processed.

    Infinite Marquee
    Enhancing the banking app’s code and performance to support the client’s tech-driven business goals—scaling for more users and higher transaction volumes.
    Enhancing the banking app’s code and performance to support the client’s tech-driven business goals—scaling for more users and higher transaction volumes.
    Enhancing the banking app’s code and performance to support the client’s tech-driven business goals—scaling for more users and higher transaction volumes.
    Enhancing the banking app’s code and performance to support the client’s tech-driven business goals—scaling for more users and higher transaction volumes.

    01. Our client

    01. Our client

    Our client is part of a leading financial services consortium in Central Africa, consisting of seven banks. To provide a next-level online banking experience for both B2B and B2C customers, they created a white-label app that other banks in the group could customize and adopt.

    The app quickly attracted over 200,000 users. But the client had even more ambitious plans: to expand the user base further and increase transaction volumes. To make this happen, the app needed some critical upgrades. The client turned to Teamvoy for the job, trusting our successful work on another part of their solution and our strong reputation as a reliable partner.

    Emoji Cursor

    02. Challenge

    02. Challenge

    Our client had bold goals for their banking app. They wanted to:

    • Attract more money into the app from various sources
    • Expand spending opportunities to increase transaction volume
    • Encourage users to make daily payments via app transfers, turning it into a habit

    However, during the discovery phase, we found a major roadblock: performance issues were limiting the app’s transaction processing capacity. An outdated infrastructure, a lack of monitoring, missing logs, and the absence of system health tracking were holding everything back. As a result, the app was so unstable that even existing users couldn’t use it as intended.

    So, to achieve the client’s product goals, we first needed to address these critical technical challenges:

    • Optimize app performance and transaction speed
    • Refactor the codebase for efficiency and scalability

    System requirements were not documented, which only added to the complexity. We had to reconstruct them from the existing code.

    03. Cooperation

    03. Cooperation

    Given the app’s complex infrastructure, implementing all changes at once wasn’t an option as it would have extended the stabilization period in production. To avoid this, we followed an incremental approach, breaking the project into smaller parts. This allowed us to gradually expand functionality while ensuring stability and delivering faster results for specific improvements.

    Part 1. Stabilization

    Before any major upgrades, we had to bring the app to a reliable state. Our first step was eliminating critical errors to ensure stable performance. We could only move forward after securing this solid foundation.

    Part 2 (a). Enhancing the app’s functionality

    With the app stabilized, we shifted our focus to upgrading its functionality while simultaneously working on refactoring and performance optimization—covered in Part 2(b). We structured the scope into phases, which allowed us to refactor the code while enhancing or replacing certain modules.

    The planning stage had the following steps:

    • Defining the architecture and database structure
    • Gathering requirements based on the existing code and functionality 
    • Planning backend team tasks to create the new architecture
    • Collaborating with a DevOps expert to build the new infrastructure
    • Writing database migration scripts

    Next, we moved into development, setting high code quality standards. Our team improved the app’s functionality and interface to align with the client’s new product goals:

    • To increase the inflow of money into the app, we developed a new version of API services and improved the UI/UX, making wallet top-ups more visible and intuitive.
    • To expand spending opportunities and boost transaction volume, our team enabled wallet-to-wallet transfers for effortless peer-to-peer transactions. Now, users can easily enter an amount, generate a QR code, and have another user scan it for an instant fund transfer. 

    To encourage daily payments, we introduced a passcode for faster authentication. Our team also expanded top-up and spending locations and implemented new notifications nudging customers toward frequent app usage.

    On top of that, we ran functional and load tests and integrated SonarQube to assess test coverage and ensure code quality. 

    Once everything was ready, we prepared the upgraded functionality for rollout to production. The patterns and templates we created during this phase can be easily reused when upgrading other app features.
    All these changes were supported by crucial code and performance enhancements, which our team worked on in parallel.

    Part 2 (b). Refactoring and performance optimization

    While working on the feature-related tasks, we also optimized the app’s architecture and rewrote the old code.
    Refactoring was a must because the code had significant performance issues that could no longer be patched with hotfixes. Additionally, the lack of code monitoring in production made it difficult to assess the project’s true state.

    The scope of our work included: 

    • Developing a new backend (v2) to support the upgraded functionality
    • Encapsulating wallet and authentication services for the upgraded features to make them more flexible and scalable
    • Implementing a new architecture for upgraded features designed to handle increased loads 
    • Rewriting old code to use it for new features and integrating it into the new architecture
    • Setting up code monitoring with Sentry as a quick fix before integrating more sophisticated tools
    • Using Apache Kafka to improve the performance

    Our collaboration on this project lasted four months, with a team of two backend developers and a DevOps expert handling the work.

    04. Results

    04. Results

    The project’s impact went far beyond the client’s initial goal of upgrading the app’s features. Along with the expected functionality, the client gained a range of critical improvements:

    • Improved app stability
    • Significant performance boost with a newly implemented CI/CD flow
    • Over 10x more requests per second and 5x faster response time after load testing
    • Refactored codebase with code analysis applied to new code and 70%+ test coverage
    • Well-documented product requirements
    • Updated test cases

    From a business value perspective, the load testing results helped the client reduce server and maintenance costs while unlocking greater scalability.

    Refactoring also proved to be a cost-efficient decision for the client. Previously, 30% of the client’s monthly development resources were spent on bug fixing. After we stabilized the app, bug fixing was no longer needed. This meant the client didn’t have to increase their budget. The entire refactoring process was funded by the same 30% of the development budget that used to be allocated for bug fixes.

    Beyond these gains, this project set the stage for the next phase of the client’s product development: creating a hybrid cloud-based architecture, also handled by Teamvoy.

    05. Results

    05. Results

    We delivered branding, mobile, and web development services for CardB, significantly contributing to the client’s business success. Here’s what CardB has accomplished so far:

    • Welcomed over 40,000 users in just the first two months
    • Launched three marketing campaigns, with the most intense one bringing in as many as 10,000 new users in just five hours
    • Earned a rating of 4+ in the App Store

    05. Info

    05. Info

    Client: Bank
    Services: IT audit, Code refactoring, App performance optimization

    Industry: Banking & Finance
    Technologies: Java, Flutter

    06. Let's Talk!

    06. Let's Talk!

    Use the power of robust technologies to drive better business results, with our high-quality team

    Talk To an Expert