Building Wallet — The Process & The Engineering
In the early days of the Moni App, we made the decision to go with timed virtual accounts for collections. We had several issues with collections failing — we decided to implement a wallet system for our tied to a virtual account that is not timed.
— Ayodeji Ogundijo (Mobile Engineer, Moni Africa)
I originally had mixed feelings about the decision to switch to a Wallet based System. I had several conversations with Seun, our Engineering lead, and also our Product and Growth teams to understand why this was something we needed to implement immediately above the other features we wanted to add to the app.
I learned very quickly from conversations with the Growth team that Agents on Moni were running into issues with the old system we had.
We had Agents requesting to deposit their loan repayments in bits before their repayment day. We also had Agents who sometimes forgot to generate a new timed virtual account number (accounts that last for 15 -30mins) to make their repayments into and would end up complaining about the transactions failing.
Our product and growth teams decided that the best way to solve these issues our users were running into was to build a wallet system into the app.
The Design team handed over the UI Screens to me using Figma — a tool that allows our Design and Engineering teams to collaborate. After reviewing the designs and having back and forth discussions with design, I got started on implementing the screens.
Once everything was ready on the design end, I got on a call with our Engineering lead to discuss how the APIs will work and what the flow should look like on the Mobile end.
When I started implementing the designs, I didn't want to just recreate what I was given in the pixels. I had my eyes on possible scenarios, flaws, and details that could easily be missed. I remember particularly, working hard on the space management and text component. I spent time ensuring that it worked in different formats and on multiple devices, that the UI wasn’t failing. When I got the required data from Seun, our Engineering Lead, I didn’t just go into implementation. I asked a lot of questions and tried to account for a lot of cases, including those that you think can’t happen.
I considered the different types of users we could have using this feature; at least 10 different types of users and I accounted for all these when implementing the wallet feature.
There were mornings I would wake up to a flaw in the system and I had to go back to the drawing board, jump on calls, edit and adjust. I had to be thorough with building wallets and one of the most important highlights for me was the lessons learned.
Overall, the experience made me happy. I get excited when I hear our Community leaders share feedback from the agents on how easy the wallet is to use and how it has made loan disbursement and repayment so much easier.
It warms my heart that I did that.