As everyone was preparing to go for the holidays in December, we launched our 1st Developer Challenge to engage software developers during the holidays. Organising this challenge required a lot of collaboration across multiple teams, and we wanted to make sure it was a good competition for the contestants and us.
In this article, we’ll be walking you through how we organised the challenge, why we did it, the scenario question, the solutions, how we chose the top 10 and then the final winners.
Why We Organised It
Here are some of the objectives we were looking to achieve by organising the challenge:
- We wanted to see how software developers could use their creativity to build products using our V3 APIs.
- We also wanted to encourage developers to try their hands on building fintech products. Some people are quite afraid of fintech because it involves money — and you don’t want to mess with people’s money.
- To encourage the growth of software development in Africa.
The Process (Announcement – Submission)
When we announced the challenge in December, we directed all interested participants to the challenge website. Here, they got more details about the competition and the prizes to be won and filled a form with their details (name and email) to enter.
After sharing their details with us, we then sent a more detailed email containing the challenge question, instructions and all the needed information.
Participants were required to send us an email before the deadline to submit their solutions.
We worked with our engineering team to create a scenario-based question that we shared with the contestants. For the contestants that filled the form, this was the email we sent to them, it contained all the information they needed for the challenge.
Original Challenge Instructions (Email sent to contestants)
“We’re excited to welcome you to the Flutterwave developer challenge. The task is simple: take a look at the scenario question below and use your understanding of our v3 API endpoints to solve the challenge faced by the company in question.
First, here are the instructions:
1. You have 3 weeks for this challenge (Start date is December 30, 2020 and Stop date is January 19, 2021.)
2. Task may be carried out individually or as a group of not more than 2 developers. The prizes are tilted in favour of single winners, although you can decide to share the spoils with a teammate if having one improves your chances of winning.
3. Send a link to your completed work (your GitHub repo for the project with a readme doc that explains your work) to email@example.com with the title “FLW Dev Challenge – Your FirstName” by 11 PM WAT on January 19, 2020. (If you’re a team, replace FirstName with GroupName — which should be written as “FirstName1 & FirstName2”)
4. Submissions later than 11 PM WAT on January 19, 2021 will be considered invalid.
A group of business owners want to create an e-commerce market place (Codename: Jumga). Something like Jumia or Konga. They hope to set up their services in Nigeria, Ghana, Kenya and the UK for starters. You have been tapped as one of the possible dev candidates to handle setting up the payments side of things for the marketplace.
Their MVP requirements for payments are as follows:
1. Each seller setting up on the platform pays a small token for approval.
2. For every sale, the total sale amount is broken down to be shared as follows:
As an example, if a t-shirt from a seller (Digital Wears Ltd) costs $2,000 and the delivery fee is $150.
A sale of the t-shirt will result in the below breakdown:
(a) Jumga gets a commission of $50
(b) Digital Wears Ltd gets $1950
(c) The dispatch rider gets $120 while
(d) Jumga gets another $30 delivery commission
Jumga has decided to use Flutterwave because of their awesome reputation and the fact that they have support for accepting payments in the countries Jumga wants to start with.
As a tapped dev candidate, your job is to develop the Jumga platform with Flutterwave v3 APIs. Sellers can create shops on the platform, each shop will be assigned a Jumga dispatch rider. Sales from the shops will be split according to the breakdown above.
The most attention will go to your implementation of the payment processes, however building a platform with a great UI and UX could earn you extra points.
Things to note:
- Merchants can create shops on Jumga
- Each shop is assigned a dispatch rider
- Each shop can collect payments from Ghana, Nigeria, Kenya and UK
- Each shop created on Jumga pays a token of $20 to Jumga, once payment is confirmed, the shop will be approved.
- Every sale will be split according to the appropriate percentages between Jumga, the shop owner (merchant) and the dispatch rider
We don’t own your code nor will we reuse it for any purposes other than to assess your work. You can license the repository under your name as a private property.
After we close the competition, we will review all submissions then announce and award winners in 1 month.
Here’s wishing you the best of luck.”
After submissions closed and we commenced reviews, we found out that some people didn’t include some vital information in their submission. And because we wanted to give everyone a fair chance, we decided to extend the deadline.
How We Graded The Submissions
Out of the 753 people who entered the challenge, only 53 people eventually sent in submissions. Yes, you read that right!
To grade the submissions, we collaborated with some of our engineers across multiple stacks to help look through them. We graded them in different phases:
Selected judges looked through and tested the shared demos. The key grading metrics here were: level of creativity and extensiveness with respect to Flutterwave API usage. Each judge could only promote one team from the list of teams assigned.
The selected teams from Phase 1 were sent to our QA team and they did another look-through. QA graded based on usability and other QA-related things like – homepage (layout, content, navigation), customer experience, seller experience & payment breakdown. They helped us select the Top 10 teams.
The top 10 from Phase 2 were invited to a live demo session with members of our team. They showed us their “workings” which helped us better understand their processes and mistakes. The top 3 teams were selected based on their performance at the live demo. During the demo, they showed us:
- Their processes
- The Flutterwave services they used
- Their Flutterwave dashboard showing the transactions after a sale was made.
- How they implemented the split (and which Flutterwave feature was used).
From 753 people who entered the challenge, the following candidates emerged winners, having garnered the most points based on the criteria described above.
Ezekiel Kolawole and Tosin Ogunfowote, who are still students of the Obafemi Awolowo University. Ezekiel is a Backend Engineer while Tosin is Frontend Engineer. Ezekiel heard about the challenge on Twitter and got his friend, Tosin involved.
They had the best solution, they had the best integration of the APIs. You can check out their solution here.
Tosin was particularly interested because he was learning the cart system in e-commerce and this was a great opportunity to implement what he had learnt. He also wanted to work with Flutterwave APIs because he had never done that before.
In 2nd Place, we had Jayson Kile, a freelance developer. Jayson’s friend saw the challenge on Twitter and knowing that Jayson was a developer, he sent it to him.
Jayson did something out of the ordinary, he opted to build an android (Kotlin) solution and he built a very functional one and also integrated the APIs well. He was actually afraid his solution won’t be considered because he built an android app and most people built web products. You can download his app here. Interestingly, this is Jayson’s first time working with financial APIs.
Jayson said, “I never thought I was going to get to the top 3, I just wanted to do it.”
In 3rd Place, we had Stanley Onwuka & Enyioma Osondu who are students of the University of Lagos. Enyioma is a Backend Engineer while Stanley is a Frontend Engineer and interestingly, this is Stanley’s first major UI design. Enyioma saw the challenge on Twitter and because he was learning Golang, he decided to use the project to improve his Go skills.
We particularly loved the UI of their web product and they also integrated the APIs well. You can view their solution here.
Talking about their experience working on the challenge, Stanley said “It was a great experience. I was bored and because school had not resumed, I jumped on the challenge. I also wanted to implement some of the designs I had worked on.” Enyioma said, “I had a great experience and I learnt a lot. I used a lot of new tools and we were still working on our solution 1 hour before the deadline.”
Enyioma told us that he was always afraid of integrating financial APIs and he finally got over it after he worked with the Flutterwave APIs.
Our Key Learnings
- Software developers love challenges and will definitely participate if instructions & processes are clearer.
- Activities like this are important for helping software developers, especially newbies, better understand how finance & technology can be used to solve problems.
- Competitions can help software developers sharpen their skills, which increases the number of tech talents ready to solve various problems.
- Students can build their skills and gain more experience building products with competitions like this.
- Sometimes, money is not a motivation for participating in competitions, some people just want to grow their skills and gain more experience.
To close out this piece, shout out to our colleagues across these departments for their hard work and collaboration – Engineering, Design, Storytelling, Developer Experience & Product.
This is not the last challenge we’ll organise, to stay updated about all our engineering activities, follow us on Twitter.