Skip to content
Olusegun Olayinka
All work

2023 — 2024

9jaPay — Business banking, shipped in five weeks

Led the frontend architecture and delivery of a business banking MVP for Nigerian SMEs. From onboarding through KYC/KYB to transactions, owned end-to-end.

Client
9jaPay
Role
Senior Frontend Engineer · Frontend Lead
Year
2023 — 2024
Stack
ReactTypeScriptNext.jsGraphQLReact QuerySentryTailwind CSS
9jaPay business banking dashboard overview with account balances and recent transactions.

The brief

9jaPay's product team had a hard constraint: the business banking MVP had to be in customers' hands within five weeks. The platform needed to handle the full lifecycle — onboarding, business verification, account creation, transfers, and a credible-looking ledger — without cutting corners on the things banking customers actually notice.

I came in to lead the frontend architecture and ship the product end-to-end alongside a backend team and a designer.

Approach

  • Typed contracts first. I started by codifying the GraphQL schema as TypeScript types and building a thin React Query layer on top. Components consumed typed data — never raw responses — which made the testing story much simpler.
  • A small, opinionated component system. Buttons, inputs, money displays, KYC step indicators, transaction rows. Twenty primitives, composed everywhere, accessible from the first commit.
  • A real onboarding flow. Multi-step KYC/KYB with optimistic state, recoverable errors, and a saved-progress contract so users could pick up where they left off.
  • Observability from day one. Sentry was wired in before the first deploy, with custom breadcrumbs around financial operations. Production incidents were diagnosable in minutes, not days.

Outcome

  • Shipped in 5 weeks without sacrificing the testing and observability story.
  • Cut incident resolution time by giving every error a Sentry breadcrumb trail.
  • Held the regression rate flat across three subsequent releases — the type system and component contracts caught issues before they shipped.
9jaPay transactions table with filters and exportable rows.
9jaPay KYC/KYB onboarding flow with progress indicator.
9jaPay business account creation step with form validation.
9jaPay payment flow with confirmation summary.
9jaPay statements view showing exportable transaction history.