Mahmud Abdul Gafar

Mahmud Abdul Gafar
About Me

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 started in software in 2022 and went full product-focus 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.
Work With Me
I help teams ship with confidence — testing what you've built, or building it right the first time.
Pre-Launch QA Cycle
Full manual + exploratory test pass of your web or mobile app before release: every critical flow, edge case, and fallback state, with clear reproducible bug reports in your tracker (Linear, Jira, or GitHub Issues).
150+ defects caught on a fintech escrow platform — zero reached customers.
Test Automation Setup
Playwright end-to-end suites and Postman API test collections for your core user journeys, wired to run on every deploy — so regressions get caught by machines, not users.
Frontend Builds
Responsive, production-grade web apps and marketing sites in TypeScript, React/Next.js, and Supabase — from landing page to full product MVP.
Based in Abuja · working remotely with teams worldwide.
Featured Projects
A selection of projects that showcase my skills in design, development, and problem-solving.
Ketapay — Escrow Platform
An escrow platform securing payments for online transactions between Nigerian businesses.
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.
Ketapay
Escrow Platform for Nigerian Payments
The Problem
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.
What I Delivered
QA Ownership (MVP1)
Owned the full QA cycle: tested funding, holding, release, and every fallback state across TestFlight builds. Logged 150+ reproducible defects in Linear and ran a find → log → fix → verify loop with engineering. Zero of those defects reached customers.
AI-Assisted Testing Pipeline
Built an agent-driven exploratory testing workflow (Chrome DevTools MCP + Claude Code) that inspects live browser sessions — surfacing console errors, failed network requests, and UI state faster than a manual pass.
Engineering & Product
Built the public marketing site (Next.js, TypeScript, Tailwind) live at ketapay.com, and contributed to architecture decisions by mapping escrow state transitions and failure modes before code was written.
In fintech, the most valuable question is 'what happens if this fails?' — I asked it early enough that the answers shipped as working code, not incident reports.
Where We Are Now
MVP1 is built and QA-hardened; the team is executing the launch sequence. I continue to own quality as the platform heads to market.
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 learn in public: I say when I'm wrong, and I pivot fast when I've picked the wrong tool. That habit compounds — and it's been worth more than any single framework I know.
Core Strengths
Technical architecture. Product thinking. Reliability. How I approach building real systems.
System Thinking
See the architecture. Understand how parts connect before writing code.
Designed fintech escrow logic by mapping state transitions.
Ship Quality
Transform ideas into reliable products. Hands that build, test, and deliver.
Engineered and shipped production features end-to-end.
Reliability
What holds it all together. Attention to edge cases, fintech rigor.
Built custom validation engines and tested payment system edge cases.
Integration
Extend capabilities. Connect systems, automate workflows.
Designed scalable architectures for multi-service integrations.
05 / FOUNDATIONLearning Fast
Strong stance. Learn backwards from problems, stay grounded.
Self-taught from real problems.
Skills & Technologies
Work Experience
Filter by category, or pick a role to see the full story.
Builder — WatchList: AI Food-Label Scanner
Personal Product · 2026
Zero database, zero stored photos — privacy-first pilot validated on real Nigerian packaging.
Designed, built, and deployed WatchList, a food-label scanning web app for everyday shoppers in Nigeria: photograph a product's ingredient panel and get a plain-English breakdown, with ingredients "worth watching" flagged and the general, true-for-everyone reason why. Architected a deliberately minimal, stateless backend — a single Supabase Edge Function as the secure boundary, receiving the image, calling Claude (Opus 4.8) via Anthropic's API with a tightly constrained prompt, and returning a structured breakdown. No database, no stored user photos — a privacy-first pilot choice. Engineered the safety layer in the prompt itself: declines to guess unreadable labels, flags ingredients as "generally worth watching" rather than giving personal medical advice, and cites no numbers without a named source. Ran a friends-and-family pilot via a deployed URL against real Nigerian packaging — faded, curved, glare-hit labels — validating vision-model extraction on messy real-world input.
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
Download my full resume below.
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.