Zoona is a mobile payments company founded in 2009. They partner with local entrepreneurs to provide a variety of financial services to unbanked consumers and small businesses: person-to-person money transfers, salary payouts, bill payments and supplier payments. Their characteristic green Zoona-kiosks can currently be found in a wide variety of locations all over Zambia, Malawi and Mozambique.
Although Zoona has become an established player in the over-the-counter (OTC) market, their success was not primarily dependent on continuous technological innovation. The company rather counts its ability to partner with local entrepreneurs and its competent logistical execution as key elements of their success. Now however, the team has its eyes set on an ambitious goal that requires the revamping of their technological infrastructure: scaling operations to 10 African markets by 2020.
We talked to André Penderis who joined Zoona in January this year as CTO. Since joining, André has focused on two things: restructuring the tech team and replatforming.
Zoona’s tech team
The tech team at Zoona consists of about 40 people who are now split into six groups with the following focus areas:
- Zoona’s products
- Infrastructure tooling (DevOps)
- Technical support
- Predictive and guided data analytics
- Security
- Release and process
The developers who build Zoona’s products are organised into six full stack teams who are integrated with each of the different product teams. Each product team consists of two parts: one part (the non-devs on a product team) reports to the Chief Product Officer (CPO) and the other (the devs and data engineers on a product team) reports to the CTO via a Dev Manager.
“To make this group of developers product orientated is a conscious decision that reflects how we think about Zoona in general,” André says. “We’re a very customer-centric company. The CEO is on a six week road trip as we speak, meeting with agents in a lot of different locations. The product developers are also responsible for engaging directly with customers. They fly to the different countries, launch products themselves and set up Slack-chats with agents.” The teams have complete ownership of their products (frontend, backend and support functions) and take responsibility for shipping value to their specific customers.
These teams use a variation of scrum in their development process. “I’ve had my rounds with scrum, and I completely understand why it’s referred to as the death march - it often turns into an obsession with the process that squeezes the creativity and life out of people,” André says.
As a way to circumvent the dangers inherent to the scrum methodology, Zoona’s team has introduced the concept of the lifecycle of a feature into their process. This idea implies that a feature goes through various stages with different types of users before it is fully launched. The specifics of the lifecycle determine how zealously the scrum methodology should be followed.
“If a feature is in a pilot phase and being tested within a controlled group of users, for example, we don’t worry about writing regression tests. We have different definitions of done for features in different lifecycles,” André explains. “As the consumption of a feature grows, we increase the rigour with which approach the product development process.”
Replatforming
Zoona’s decision to replatform and move to a new tech stack was influenced by two factors: the need to meet international compliance standards and the technical challenges of expanding to new countries.
The Zoona tech stack
Most of the old platform was built in PHP, ASP and Java with an MS SQL database, but after some consideration, they decided to move to Clojure and Datomic as their main stack. In addition, Zoona is moving towards a microservices architecture and already has more than 20 services in an auto-scaling and self-healing system.
The microservices are architected around Kafka as the middleware, and services are written in Clojure. They also use open source modules whenever it makes sense.
Zoona uses Gitlab for their continuous integration (CI) pipeline and Terraformer, Nomad and Docker to wrap and ship the services to the CI environments in AWS. Logs are streamed to Kafka and exposed via Prometheus and Grafana.
Meeting ISO standards
Although compliance standards are not currently being pushed on Zoona, some international standards serve as helpful guidelines for building a robust financial services platform. Being compliant also becomes useful when the company deals with fundraising.
“We’re really lucky that we don’t have to go through many due diligence processes in the countries that we operate in, but compliance to ISO standards is an absolute requirement if you want to do business in any European country, for example,” André says.
When he started out at Zoona, one of the first things André focused on was ensuring the company’s compliance with ISO 27001 - an information security standard. “I am familiar with the standard, because I implemented it during my time at PayU,” he says. “I started working on the things that would give us the most immediate value. ISO 27001 is very focused on operational aspects of a system: access to the production environment, password policies and data security.”
ISO 20022 on the other hand is a standard for the electronic data interchange between financial institutions. This was helpful for Zoona when rethinking the structural elements of their platform. According to this standard, financial services platforms have to be ACID-compliant (atomic, consistent, isolated and durable). This ensures the auditability of a system and is why Zoona chose for a Datomic database - it is read-optimised ACID-compliant.
A flexible platform
The second stimulus for revamping the platform was the planned expansion to the DRC, a multi-currency and multi-time-zone country - a landscape that the old platform was not geared to handle.
Instead of spending six months to prepare the old platform for the DRC rollout, Zoona decided to build a whole new platform to deal with all similar future situations. “This also took us six months, but now we have an incredibly flexible platform,” André says. “It can deal with any amount of currency conversions needed: A transaction at the teller can happen in Congolese Francs, we can charge transaction fees in Rupees and the payout on the other side can be in US Dollars.”
Thanks to this, they are now in a position to scale really fast - both horizontally and vertically. Their system can easily deal with variation and allows them to create new products fast. “We’re set up in such a way that creating new products is a matter of configuration,” André says. “We don’t have to write much code. To give you an example: Boost, our credit product, is really complicated but we built it in less than a month. We can now construct commercial models, accounts, parties, mandates and how a product relates to an account by way of configuration.”
Ready to scale
Meeting Zoona’s 2020 goal of expanding to 10 African countries requires two things: entering more markets and going deeper into each of them by expanding their product offering. According to André, they’ve now addressed the core aspects of their scalability challenge:
- Scaling transactional throughput: Zoona has positioned Kafka at the heart of their architecture to allow for horizontal scaling. Their load-balancer monitors the queues in Kafka to see which microservices need to auto-scale on demand.
- Scaling delivery: The different teams are set up to easily iterate on a product and to spin up new products facts, and the CI is in place to keep the collaboration running smooth.
In order to start the rollout to the DRC, Zoona will focus on migrating all the consumer products to the new platform. Each of the specific engineering teams is responsible for the migration of their own product. Operations in Zambia, Malawi and Mozambique will continue to run on the legacy platform - except for anything related to the consumer products. The other parts of the system will then start migrating in the first quarter of 2018.
In André’s opinion, the biggest challenge for tech teams of fintech companies is ensuring the ability to pivot fast if the business strategy changes. “If you are in the early phase of a product, like we really are with our credit product, the business demands can require a lot of pivoting. ‘Should it be a line of credit product? Do they want revolving credit?’ Previously, those kinds of demands would’ve caused a train smash. Now we simply say: ‘Sure, let's do it for you.’"
Zoona is hiring on OfferZen. Click here to sign up.