01 / HELLO

Mahmud Abdul Gafar

Software Engineer
Portrait of Mahmud Abdul Gafar
03 / FOCUSFull-stack · FintechShipping with quality & speed
04 / STACK
React
TypeScript
Java
Spring Boot
Node.js
Next.js
Tailwind
Git
Get to know me

About Me

Profile

I'm a versatile software engineer and founding member of Ketapay, an escrow platform securing payments for Nigerian businesses that buy and sell online. Originally trained in the sciences, I transitioned into software engineering in 2023 and have since taken on full product ownership, hands-on QA, and engineering leadership.

I build responsive, user-centered web and mobile products across the stack — from React and TypeScript front-ends to Java/Spring Boot services. I move fluently between writing code, reading and reasoning about unfamiliar codebases, and shaping raw ideas into clear, buildable solutions.

I'm known as a fast learner and dependable problem solver who ships reliable software in collaborative teams. When I'm not building, you'll find me playing football or basketball, exploring board games, or working on side projects.

Abuja, Nigeriamahhir09@gmail.com

Core Technologies

TypeScriptJavaScriptHTML / CSSTailwind CSSNode.js
0+
Projects Built
0+
Companies
0+
Tech Stack
0+
Years in Tech
Case Study

Ketapay

Escrow Platform for Nigerian Payments

Pre-Launch
Building in Public
01 / PROBLEM

The Problem

1 · funds in2 · released on confirmationBUYERESCROWSELLER

Nigerian businesses lose money to payment fraud. A buyer gets goods but doesn't pay. A seller ships products but gets scammed. We built Ketapay to secure both sides—hold the buyer's money safely until everyone confirms the transaction is complete.

02 / ROLE

My Role (Product Thinking > Just Code)

QA Testing

Built test cases for payment flows, escrow logic, and edge cases. Caught issues before they cost real money.

UI/UX Testing

Tested user flows end-to-end. Made sure a seller could actually use the app without confusion. Sometimes design looked good but felt clunky in practice.

System Design

Understood the escrow transaction flow—how money moves, how states change, what happens if a payment fails halfway. This is where the reliability matters most.

03 / LESSONS

Challenges That Taught Me

The short version below — expand any row for the full story.

04 / INSIGHT
Ketapay taught me that product thinking > just coding. QA caught bugs before launch. Understanding system design meant I could spot issues in architecture meetings. The biggest value wasn't in the code I wrote—it was in asking "what if this fails?"
05 / NOW

Where We Are Now

App is built and ready. Website is live. We're working through the launch sequence. This is where the real learning happens—talking to early users, handling the unexpected, iterating fast.

Why This is in My Portfolio

Ketapay isn't a finished project to brag about. It's where I learned that building matters more than the outcome. It's messy, it's ongoing, and that's the point. It shows I can handle ambiguity, learn fast, and think beyond "did this feature work?"

How I Think

These principles aren't borrowed from blogs. They come from building real things, making mistakes, and learning what actually works.

Right Tool for the Problem

I used to chase the shiniest framework. Now I ask: "What's the simplest tool that solves this?" TypeScript over JavaScript when types matter. Supabase over complex backend when I need quick iteration. Sometimes the answer is just a shell script.

Example: At OneStop, I refactored to TypeScript. At Ketapay, I stuck with what the team knew rather than introducing new tools mid-launch.

Test the User Path, Not Just the Code

A function works. But does the user know how to use it? QA for me isn't automated tests (though those matter). It's walking through the flow, clicking every button, asking "is this confusing?"

Example: Built dynamic cart logic that technically worked. Actual users got confused about persistence. Fixed the UX, not the code.

Learn Backwards from Problems

Instead of "let me learn Docker," I asked "how do I deploy this?" Instead of "let me learn system design," I drew the escrow flow and found gaps. Problems pull knowledge, not the other way around.

Example: Needed to understand JWT. Didn't read a course. Built authentication, hit errors, searched those errors, understood JWT through debugging.

Ambiguity is the Actual Job

Most of my time isn't writing code. It's understanding what to build. "Build a secure escrow system" is vague until you map out state transitions. That mapping is the hard part.

Example: Spent 2 weeks understanding escrow logic before writing a line of code. That was the most valuable 2 weeks.

The Real Story

Building Ketapay, I realized I'm not a "write perfect code" engineer. I'm a "understand the problem deeply, ask hard questions, catch things others miss" engineer. Some of my best contributions weren't lines of code—they were "wait, what happens if the payment fails here?" or "this flow is confusing, let me test it with a real person." The transition from Zoology to Software felt like I had to learn everything. Turns out, that's an advantage. I don't take for granted how things work. I dig into the "why." That's served me well in fintech where getting it wrong costs people money. I'm not done learning. Not even close. But I'm comfortable learning in public, admitting when I'm wrong, and pivoting when I realize I chose the wrong tool. That's probably more valuable than knowing everything.

What I work with

Skills & Technologies

TypeScript

JavaScript

HTML / CSS

Tailwind CSS

Node.js

Supabase

Java

My portfolio

Featured Projects

A selection of projects that showcase my skills in design, development, and problem-solving.

ConstructHQ

A construction-company operations platform with staff attendance and clock-in, expense approvals, project tracking, and payroll dashboards.

Next.js
TypeScript
Tailwind CSS
PostgreSQL

Watchlist

Scans food labels and explains ingredients in plain English, flagging ones worth watching — built for Nigeria.

Next.js
React
Vite
Tailwind CSS

Escrow Platform

An escrow platform securing payments for online transactions between Nigerian businesses.

React
TypeScript
Tailwind
Node.js

DataViz Analytics

An interactive analytics platform with customizable dashboards, advanced charting, and automated reporting for business intelligence.

Python
React
D3.js
PostgreSQL

E-commerce website for wool knitting

A modern e-commerce platform for wool knitting enthusiasts, featuring product listings, custom designs, user reviews, and a community forum.

Typescript
Supabase
Node
Tailwind CSS
Career path

Work Experience

Click any card to expand and see full details

Founding QA/Software Engineer at Ketapay, an escrow platform protecting online transactions between Nigerian businesses. Joined as a founding team member, starting in QA and growing into core software engineering — building and testing critical transaction flows, writing test plans, and shipping features across the platform. Collaborated closely with design, engineering, and operations to translate product requirements into reliable, well-tested code.

Tech Stack

Docker
Postman
Testing Library
Deno(Unit test)

💡 Key Takeaway

Product thinking matters more than perfect code. Understanding the problem (escrow logic, fintech edge cases) was harder than implementing it. QA wasn't just testing—it was the gap between "this works" and "users won't be confused."

Latest Update

What I'm Working On Now

Not a past achievement. What's actually happening right now.

Ketapay Launch

  • Working through final QA before launch
  • Gathering early user feedback and iterating
  • Understanding system design at scale (what if we get 10K transactions/day?)
  • Learning deployment and monitoring (the unsexy but critical part)

Learning & Growing

  • Grokking the System Design Interview (expanding mental models)
  • Fintech regulations and compliance (context for better design)
  • How to think about reliability when money is involved

Side Exploration

Exploring small automation projects and reflecting on what I've learned building

Resume & Education

Download my full resume or view my education and credentials below.

Education

B.Sc. Zoology

Kwara State University

2015 – 2019

Grokking the System Design Interview

Interview Ready

2024 – Present

In-depth coursework on scalable system architecture, distributed systems design, and enterprise-grade software design patterns.

What I Bring

1

Full-Stack

React • TypeScript • Java • Node.js

2

Code Fluency

Debug • Refactor • Extend

3

Problem Solving

Design • Plan • Ship

4

Quality First

Test • Iterate • Deploy

Let's connect

Get In Touch

Have a project in mind or want to chat? Feel free to reach out — I'm always open to new opportunities and collaborations.

Your information will be stored securely and used only to respond to your inquiry.

Contact Info

mahhir09@gmail.com
Abuja, Nigeria

Follow Me