- Industry: Personal Finance
- Location: Seattle, Washington, the US
- Partnership period: A total of 8 years, the most recent round of cooperation started in January, 2019
- Team size: 5-7 experts
- Software product: Progressive Web Application
- Expertise delivered: Software development, testing, feature improvement
- Backend: Kotlin, Spring, JUnit, Flyway, GraphQL
- DB: PostgreSQL 10.0, Jooq
- Frontend: TS, React, Enzyme + Jest
- DevOps: Docker, Kubernetes, Terraform
- Computing: Google Cloud
- PMS: Club House
- Design: Figma
- Documentation: Google Docs, Storybook & Bitbucket
Don't have time to read?
Book a free meeting with our experts to discover how we can help you save time and money.Book a Meeting
Our client Mogami has a team of professionals who have worked for PayPal, T-Mobile, Uber, Linked-in, and Samsung, and built around two dozen businesses. They wanted to create an effective tool for guided personal finance and improve the way people save and spend money.
From the beginning, the client’s team aimed to build a full-fledged financial planning application that would eliminate most of the hassles and inconveniences in personal finance management such as, for instance, the need for personal meetings, payment of multiple fees, and the need to understand unnecessary financial jargon. The application was also supposed to be scalable and customizable enough for any future needs of users.
SPD Group’s partnership with Mogami began many years ago, in 2013. While working on the Mogami startup, the project’s Co-Founder and the CTO, Sasha Ovsiankin invited our team to take over their software development as he had worked with us previously.
During the project’s first iteration, our team successfully developed a web-only version of the application. Initially, the app had some architecture limitations that made it difficult to add any new features and scale the software. This, along with the need to shift to the mobile platforms has become one of the primary reasons for the decision to completely overhaul the application. In September 2019, our client decided to build an entirely new application from scratch and engaged our R&D team for the job.
The main goal of the project is to develop a modern Progressive Web Application that would allow a user, regardless of their age, net worth, or assets to make an efficient personal finance plan, achieve their goals, and achieve great results. The application must cover multiple various aspects of the user’s life, including suggestions on vacation savings, educational goals, daily expenses, and retirement plans. Our team was entrusted with building the Progressive Web Application in its entirety.
The application’s performance became the project’s biggest challenge. The app needed to gain access to all the users’ personal banking information in order to perform transaction analysis and offer comprehensive financial advice.
Incorporating the banking integration feature slowed down the app’s performance dramatically, as user profiles were now connected with their bank accounts. As a result, the slow loading of multiple screens by multiple concurrent users became a major issue.
Need help with software development services?
Book a free meeting with our experts to find out how we can help you to build your project according to your business vision.Book a Meeting
The old application was built using React and Java and got shut down completely in 2018. As a consequence, our team switched to the Progressive Web Application approach. The PWA allows one to avoid using App Store and Google Play, and it can be set it up on the user’s desktop. This is a tab for a website, but it looks like an app on a mobile device to the end-user. The client decided that the PWA was a perfect fit for the project.
As mentioned earlier, performance lags represented the biggest hurdle during the project’s second iteration. To deal with this issue, our team implemented a microservice-based architecture that separated the financial business logic from the core application processes.
To determine the exact cause of the performance problem, we used the logs. Our project team tracked the time taken for the same request to undergo a quick check-up, bank integration, and addition of pay stubs to compare the time of execution. The request time for each profile’s task on the localhost was 26-30ms. However, in production, for the actual users, this number was as high as 175-200ms. The repository execution time was also higher in production – between 5-15ms, as compared with 5-8ms at localhost.
The logs helped us understand that there were problems with some of the elements in the user profile. We discovered that the performance would slow down immediately at the repository level after pay stubs were added. This happened because they were decrypted for each request when a user profile was needed.
We decided to move the pay stubs and job info out of the user profile and call them by using fetchers, so as to avoid modifying the raphQL schema. We also decided to extract the problematic elements from the profile as separate entities. Each entity was now represented by a table and was extracted with the help of fetchers. It solved the problem of the application’s slow overall performance when pay stubs were added.
These changes necessitated changes to a number of the application files. In many of them, one had to move the destinations of paychecks and bank info’s storage from the user profile to a repository.
SPD Group’s project team managed to build an entirely new application from scratch, release it, and improve its performance by optimizing the processing of requests.
Here is what the GUI of the application looks like.
The client is highly satisfied with the performance of our team, but there is still a lot of work to be done. As of June 2021, we continue our cooperation with Mogami with regard to testing and the feature improvement process. The next big goal we have in mind is to wrap up the React code of the app into React Native and make it available in Google Play. We will start this process in the near future.
“SPD-Ukraine has done a great job of maintaining the lifeblood of their codes. They’re transparent with prices and deliver within budget. Their dedicated team acts as an extension of the partner’s company. Responsibility and a committed long-term partnership are two hallmarks of their work.”
— Alex Samano, Co-Founder & CEO, Life Dreams Inc.
ARE YOU INTERESTED IN DEVELOPING A PERSONAL FINANCIAL APPLICATION?
Contact our experts to get a free consultation and time&budget estimate for your project.Contact Us