In 1675, Sir Isaac Newton said this famous quote: “If I have seen further than others, it is by standing upon the shoulders of giants.” He was telling us that he was only able to make those life-changing contributions to science because of the amazing work other scientists who preceded him had done.
In this article, I will be attempting to help other software engineers interested in building fintech products stand upon the shoulders of giants. Working at Flutterwave has given me a front seat to see how excellent fintech products are built, as well as help me know some of the brilliant software engineers building them. So, I reached out to some of them to share some of the lessons they have learnt in this journey of building products for Africa’s biggest payment company.
Here are some of the lessons:
1. Understand The Business & The Problem You’re Trying To Solve
It is not enough to have the technical skills, you must have a clear understanding of the business or company as the case is. It is extremely important to understand, end-to-end, what the business wants. This will enable you to build exactly what is required.
2. Build For Customers, Not Yourself
Put the customer at the centre of whatever you are building. When building products don’t expect the customers to already understand how the product works; you are not building for yourself. Speak to your users to get feedback from them. Review all of them, implement those you can fit on your roadmap, and make a plan to accommodate the rest. Customer satisfaction is one of the most important things in business.
3. This Is Not Child’s Play
Money matters are critical and should be treated as such. Transaction issues can potentially make it difficult for your users to move on with their lives or complete something of great consequence to them — especially when their money gets stuck. For example, imagine a user trying to pay for flight tickets or school fees using your payment system — any issue with such a transaction can put the user in a precarious position. Hence, the speedy resolution of money issues should be considered a high priority.
4. Security Is Of Utmost IMPORTANCE
There is a reason why importance was written in capital letters. You can not underestimate the importance of security. Your users need to feel safe about giving you access to their money or important information. It is a sad reality, but hardly can a system be 100% secure. However, every little effort put in towards improving the security of your payment system will pay off immensely. The bottom line is that the users of your product need to feel safe. According to Veriff Identity Fraud Report 2020, in 2019, 20.3% of all FTC complaints were reports of identity theft. Of the 3.2 million reports received by the Consumer Sentinel Network, 1.7 million were fraud-related and over 650,000 were identity theft complaints with a reported loss of $1.9 billion – an increase of $293 million from 2018. In 2020, due to increased online activities as a result of the pandemic, there was a >3x increase in overall fraud rates in the fintech and mobility sectors.
You can learn more about how Flutterwave ensures the safety of our merchants & their customers in this article.
5. Not Every User Means Well
Not every user of your product has good intentions. There is always that customer that will try to use your product in ways you least expect — and if you are not vigilant, you might just have opened up a platform for someone to lose money, launder money or even finance terrorism. Hence, when building any fintech product, be sure to consider these kinds of users.
6. Keep Growing & Stay Informed
It is important that you keep growing, improve on your skills and create time to build more skills. Try keeping up to date with enterprise and startup payment provider solutions, as they tend to put out interesting feature updates frequently. Give room for growth while building; payment integration standards can scale quite quickly.
7. Ask Questions
When you are not clear about anything, ask questions. In payments, never assume anything. By talking to the stakeholders, you increase your ability to grasp what they want and how you are expected to implement it. Sometimes, when you probe some unclear requirements, it helps the business see some gaps in the requirement. When you are dealing with people’s money, trust me, there are no foolish questions.
8. Payment Products Can’t Exist In Isolation
No payment product or system can exist in isolation. More often than not, for every payment that happens within a payment system, there are other parties involved. This synergy between different parties in the financial space is what makes payment products what they are. It is very common to see problems with one or more parties (such as service disruptions) affect payment products that are dependent on them — although that’s not desirable, it is a necessary evil.
9. Code Reviews, Source Control & Unit Testing
When you work in an engineering team, you need to carry out code review sessions. This will help identify code smells, bad practice, identify potential bugs and actual bugs. Another important benefit of code review is, you learn from one another too!
Make use of source control. Git repositories can be very helpful. Ensure you commit your codes more often. Even if you are not done with the feature development, practice the habit of committing daily.
Unit testing is very important. This will help you identify issues quickly. Also, always maintain your test cases to capture new feature development.
10. Your Product Can Always Be Better
Although perfection is quite impossible, it doesn’t mean your product can not be better than it is. There is always a better way of doing things; that it is working doesn’t mean that it cannot be improved upon. Getting feedback from users – your customers, colleagues and other engineers can help you see how your product can be better.
I hope these 10 valuable lessons can help you understand more about building fintech products and some of the things you need to consider when building.
Flutterwave is Africa’s top payment company, we help Africans take their business online and receive payments across the world as we support over 150 currencies. If you are a software engineer building a product, let’s help you take care of payments. Learn how to integrate our payment solutions into your product here.
Thank you, Rasheed, Cleopatra, Oluwatosin, Glad, Kolawole and Akachukwu for sharing your thoughts & lessons with me. Thanks to Sol for reading the earlier drafts of this article.