Skip to content

Open to senior mobile & full-stack roles

I build the software that lives in your pocket. Mostly for money that has to arrive.

Five years turning “wouldn’t it be good if…” into apps that stay fast on a three-year-old phone with two bars of signal.

Most of it in fintech, where a rounding error ruins someone’s day and “it works on my machine” is not a defence.

Flutter, Swift and Kotlin today. Backend, systems and the teams that build them next.

Based
Lagos, Nigeria
Hours
WAT · UTC+1
Focus
Fintech · Flutter · Native
Next
Backend & systems

Shipped for

  • First Bank of Nigeria
  • Zedcrest
  • MAX
  • Platnova
  • Creative Advanced Technologies
  • MedPal

In short

The work I’m proudest of is rarely the work you can see. Empty states. The offline path. The retry that doesn’t double-charge anybody. A release that doesn’t page you at 3am. Good software should feel quiet.

01Selected work

Four problems, and the
options I turned down.

Anyone can list what they built. These are the calls I made, why I made them, and the credible alternative I rejected in each case, because the rejected option is where the reasoning actually lives.

02Experience

Six years, mostly
where money moves.

Lagos, Dubai, Riyadh, remote. Retail banking, lending, wallets, card-present payments, mobility, healthcare, e-commerce. Every one of them taught me something about failure states I couldn’t have read.

  • Mobile Engineer · Full-time · Lagos, Nigeria · Zedvance, personal & business banking

    Built ExtraCash, an embedded lending product inside a live retail banking app, covering open-banking underwriting through to disbursement and card repayment, plus the POS and business-banking surfaces around it.

    • Drove loan eligibility from open-banking statement analysis (Mono), KYC and employment/income capture, with automated decisioning and re-assessment when income changes.
    • Shipped the full money path: instant disbursement to wallets, repayment by debit card via Rave/Flutterwave, OTP and email verification, KYC-tier gating.
    • Built a Flutter POS application driving a native Java/Kotlin card SDK over Platform Channels for card-present payments.
    • Extended the core banking app with cable, electricity and advanced search modules, and built a separate business-banking app for SMEs.

    Stack

    • Flutter
    • Dart
    • Kotlin
    • Java
    • Mono
    • Flutterwave
    • Platform Channels
03AI practice

Agents can write code.
Keeping them safe in yours
is the engineering.

I run agentic engineering workflows end to end, model-agnostic and platform-agnostic. Not autocomplete. A loop with guardrails, and a codebase prepared to be worked in.

01

Prompt engineering

Structured, role-scoped, context-bounded instructions that produce output a reviewer can actually review. The goal isn’t a clever answer, it’s a reproducible one.

02

Loop engineering

Plan, act, verify, correct. With explicit guardrails and, the part most people skip, explicit stopping conditions, so the loop terminates on a definition of done rather than on the model running out of enthusiasm.

03

Harness engineering

Decomposing a large production codebase into composable, on-demand context files so an agent loads only what a task needs and operates inside real conventions. This is what makes the difference between a demo and something you’d point at a live fintech app.

Evidence

  • Published flutter_skill_gen on pub.dev, a CLI that generates these context files from a Flutter project’s actual structure.
  • Applied it to SnapPay, a live fintech app, by splitting the codebase into modular, feature-scoped skill documents agents could safely load.
  • Read the argument in full

What I reach for

Languages
Dart · Swift · Kotlin · TypeScript · JavaScript · Python · Java
Mobile
Flutter · SwiftUI · UIKit · Jetpack Compose · Kotlin Multiplatform · Platform Channels
Architecture
Clean Architecture · MVVM · BLoC / Cubit · Riverpod · Provider · get_it · go_router
Fintech
Card & POS SDKs · Open banking (Mono) · KYC (Prembly, HyperVerge) · AES transport · Paystack · Flutterwave
Backend & web
Node.js · Express · Prisma · PostgreSQL · Redis / BullMQ · Next.js · React
Ship & operate
GitHub Actions · Bitrise · Codemagic · Fastlane · Shorebird · Firebase · Sentry · GCP

Failure states are the product

The happy path takes a week. The other paths take the rest of the quarter, and they’re what people remember.

Decisions beat opinions

I can tell you what I chose. I can also tell you what I rejected and the specific way it breaks. If I can’t do the second one, I haven’t finished thinking.

Boring reliability

Idempotency, feature flags, a rollback you’ve actually rehearsed. Cleverness is a cost you pay every time someone new opens the file.

Write it down

Architecture that only exists in one head is a single point of failure with a notice period.

04Open source & side work

Two packages on pub.dev,
and the things I build
when nobody asked.

flutter_skill_gen

Dart · MIT · since 2025

Context scaffolding for AI agents working inside a real codebase

A CLI that scans a Flutter project and produces SKILL.md context files describing its architecture, state management, navigation, dependency injection, data layer and conventions, so an assistant arrives already knowing how the codebase is meant to be written, instead of guessing from whichever file it opened first.

multi_image_layout

Dart · MIT · since 2022

Responsive multi-media layouts without doing the layout maths

A Flutter package for arranging multiple images, videos and audio in adaptive gallery layouts: single, grouped or grid, network or local, with optional captions. Maintained across successive releases since 2022.

  • Ofin Eko

    Jan 2025 - Jul 2025

    Every law of Lagos State, offline, in two languages, read aloud

    Architected and built solo: a bilingual (English / Yorùbá) app for reading and listening to Lagos State law. Offline-first with an aggressive cache so it works without a connection, text-to-speech and audio streaming for every statute, and deep links straight to a specific law or bookmark. Shipped and maintained on both the App Store and Google Play.

    • Flutter
    • Offline-first caching
    • Text-to-speech
    • Deep linking
    • App Store + Play Store
  • Job scraper platform

    2026 - present

    The backend half of the transition, built in public

    A TypeScript service I’m building to learn the other side of the wire properly rather than by reading about it: Express and Prisma over PostgreSQL on Supabase, Redis and BullMQ for the scraping queue, JWT auth, and a typed API surface consumed by a separate frontend.

    • TypeScript
    • Express
    • Prisma
    • PostgreSQL
    • Redis / BullMQ
    • JWT
  • kmm-notes-app

    2023

    One domain, two native UIs

    A Kotlin Multiplatform notes app sharing a domain layer across a Jetpack Compose Android UI and a SwiftUI iOS one, written to understand where KMM’s seam actually falls in practice, rather than where the marketing says it does.

    • Kotlin Multiplatform
    • Jetpack Compose
    • SwiftUI
  • Fluid level monitor

    2023

    Final-year project: hardware to phone, in real time

    A hardware device measuring the level and temperature of a fluid, streaming to a Flutter application that renders it live. My first properly end-to-end system: sensor, transport, and interface.

    • Flutter
    • Embedded hardware
    • Real-time telemetry
05Writing

I write to find out
what I actually think.

Six pieces on Medium, mostly in Level Up Coding, mostly about the parts of Flutter that only bite you in production.

Off the clock

When I’m away from the editor I’m usually still writing: poetry, mostly, and prose that never quite becomes anything. It keeps a different kind of syntax sharp, and it’s where I learned that the second draft is where the thinking actually happens.

Both of those took longer to get right than most functions I’ve written.

I have always lived with the misconception that a star shines. But I have come to learn that it burns, with every moment of burn bringing it closer to its end...
I stared into the Sea today and it stared back into me. It felt like a minute but was twenty...

Education

University of Lagos

B.Sc. Computer Engineering

Lagos, Nigeria · Class of 2023

Five-year engineering degree. Final-year project: a hardware/Flutter system streaming fluid level and temperature in real time.

Also

  • Melodia Academy

    Lead Tutor · 2022

    Mentored three engineers through Flutter and ran code review on their projects. The first time I found out I liked the teaching part.

  • Andela Hackathon for Justice

    Participant · 2021

    Built a prison record-keeping app addressing overcrowding and lost paperwork.

06Contact

If any of this sounds like your problem, say so.

Practicalities

Relocation-ready for Ireland, Netherlands, Denmark, Germany, France, Canada, UK.

  • Visa sponsorship required (Nigerian passport). Familiar with Critical Skills, EU Blue Card and Specialist permit routes.
  • Comfortable overlapping with CET/GMT/EST, after five years of fully-remote delivery across Lagos, Dubai, Riyadh and the US.
  • Also open to fully-remote contract work.