Systems-minded product engineer

I build products, infrastructure, and the machinery required to know whether either is actually working.

Mobile is where I have spent most of my career, but the work has rarely stopped at the app. I have worked across financial systems, data infrastructure, native interaction, security, observability, and the internal tools that make complex product work easier to trust.

This is a working record of the systems I have helped build, the parts I owned, and what the work changed in how I approach engineering.

Open to senior product, mobile, and infrastructure engineering work

Selected work

Current

HelpBnk

Mobile engineering

Building a native product without stopping the existing one

App Store

When I joined, HelpBnk's mobile app was a WebView shell around the existing web product. I have been moving it toward React Native incrementally: first the shell and navigation, then selected surfaces including the home feed, search, notifications, deep-link handling, and media. Both runtimes still serve users, so each new surface needs a clear owner.

The difficult work lived in the seams: routing between web and native worlds, feed rows that stayed cheap under load, video moving between inline and fullscreen ownership, gesture interruption, startup, and enough instrumentation to distinguish a real improvement from a convincing demo.

What I learned

An incremental migration only works when ownership is legible. The same applies to performance: a benchmark matters when it is anchored to a named user journey and the evidence survives the profiling session.

Sep 2022 — Aug 2025

Lenox Park Solutions

Senior Software Engineer

One role across the data system and the product using it

Roundtables

I worked across Lenox Park's data and mobile systems. On the data side, I built and operated ETL pipelines processing more than ten million demographic records each month, along with scoring, benchmarking, survey ingestion, anonymisation, audit, and multi-tenant reporting infrastructure. On the product side, I was the sole mobile engineer for Roundtables on iOS and Android.

That combination was unusually valuable. I could follow a product question from the interface, through the API and scoring model, to the data lineage and operational evidence behind the answer. It made reliability a property of the whole system rather than a concern assigned to one layer.

What I learned

A polished interface cannot compensate for ambiguous data. The useful systems make provenance, tenancy, versioning, and failure visible before they become reporting problems.

May 2021 — Jul 2022

Risevest

Software Engineer / Lead Mobile Engineer

Mobile and backend work across investment and payout flows

App Store

I worked across the Risevest mobile app and the investment systems behind it. The product connected Nigerian users to dollar-denominated assets, so ordinary-looking flows carried foreign exchange, custody, compliance, and cross-border payout constraints. I helped ship the Naira Currency Vault and payout flows across five or more countries, alongside biometric access, MFA, secure storage, and native compliance checks.

The app served at least one million users. I introduced CodePush for controlled delivery, added Detox coverage around critical paths, and tightened native error handling as the reported crash rate moved from 1.8% to 0.4%. On the systems side, idempotent endpoints and queue-based retries made payout failures safer to recover from.

What I learned

In financial software, reliability includes the recovery path. A request can time out while money continues moving elsewhere, so retries, audit trails, and idempotency belong in the product design.

Mar 2022 — Sep 2022

Lykke Business

Senior Mobile Software Engineer

Shared mobile infrastructure across several financial products

BBVA Trader CFD

I co-developed Lykke Business Wallet and Bloom in a React Native and Expo monorepo, integrating shared native capabilities across iOS and Android. My work covered biometric authentication, automated testing, accessibility, a Storybook-backed design system, and the native modules beneath the shared interface.

I also worked on BBVA Trader CFD, where real-time market data, third-party trading SDKs, CI/CD, security, and rendering performance met in the same product. The useful engineering decisions were the ones that kept those concerns separate enough to change safely.

What I learned

Shared code pays for itself when the boundary is stable. Native behaviour, product policy, and release ownership still need room to diverge without forcing every application to move in lockstep.

Jan 2021 — Dec 2022

Bridge Marketplace Inc.

Lead Engineer and co-founder

Building the product and the company at the same time

I co-founded Bridge and led engineering across its SME marketplace: backend APIs for vendor discovery, procurement, orders, and payments; the Bridge and Bridge Pro apps; and the companion web product. I defined the technical roadmap with my co-founders, managed AWS delivery and CI/CD, and mentored engineers across frontend and backend.

It was a parallel founder role, and it gave me direct responsibility for the distance between a business assumption and the system needed to test it. Transaction integrity, operational cost, delivery speed, and product scope were parts of the same decision.

What I learned

Early products benefit from technical range, but range is only useful when it improves the next product decision. The job is to keep the system capable without building past what the business has actually proved.

Complete chronology

Bridge ran as a parallel founder role alongside later employment. The chronology is explicit because the overlaps are part of the record.

  1. CurrentHelpBnk

    Mobile engineering · hybrid-to-native migration

  2. Sep 2022 — Aug 2025Lenox Park Solutions

    Senior Software Engineer · data infrastructure and mobile

  3. Mar 2022 — Sep 2022Lykke Business

    Senior Mobile Software Engineer · financial products

  4. Jan 2021 — Dec 2022Bridge Marketplace Inc.

    Lead Engineer and co-founder · marketplace and payments

  5. May 2021 — Jul 2022Risevest

    Software Engineer / Lead Mobile Engineer · investments and payouts

  6. Jan 2020 — Apr 2021Parseal Technologies

    Full Stack Developer · APIs, transactional systems, Azure serverless

  7. May 2019 — Oct 2019Andela StackUp Program

    Full Stack Developer · Node.js, PostgreSQL, React

Independent systems

I build tools around problems I keep running into in product work. These are the ones I have made public.

Active · Open source

Agent Scenario Loop

ASL is an evidence-first orchestration layer for agent-driven mobile development. The application owns its scenarios; ASL plans the runners and evidence providers needed to execute them, then keeps health, verdicts, artifacts, and comparisons in a stable contract. It does not replace device or automation tools.

I built it after using agents on HelpBnk every day and finding that a plausible run summary was not enough. Runners can change without taking the application's proof history with them.

Released · Open source

React Native Biolink

A biometric authentication, secure storage, and signing library for React Native's new architecture. Biolink uses Nitro Modules to expose iOS Keychain and Secure Enclave capabilities alongside Android Keystore and device credentials, with an API designed around real fallback and lockout behaviour.

Work in progress · Open source

VisionRTC

A React Native media pipeline for turning native camera, ARKit, OpenCV, or ML output into WebRTC tracks without pulling every frame through JavaScript. It is plugin-based, type-safe, and deliberately unopinionated about signalling. The current implementation is still evolving and has not reached its first stable release.

Product · In development

Varmply

A creator-sponsor marketplace designed around campaign escrow, verified outcomes, and reputation. I have been shaping the product and system around a simple problem in influencer marketing: the parties can see activity, but often cannot agree on what was promised, what was completed, or when payment became deserved.

How I work

I tend to be most useful when a product has outgrown the assumptions it began with and the next change crosses several parts of the system.

I usually begin by making ownership and proof explicit. That means deciding which layer owns state, navigation, interaction, and recovery; then choosing evidence that will still make sense after the profiling tool, agent, or implementation changes.

When performance is the problem, I measure a named user journey instead of optimising an isolated number. When migration is the problem, I add boundaries and better defaults without pretending the existing product can pause for a rewrite.

I am comfortable moving from the product surface into native code, backend services, data infrastructure, delivery systems, and the tooling around the work. The point is not to touch every layer. It is to follow the problem far enough to solve the actual one.