Farouq SerikiSenior React Native Engineer · Full-stack · Native iOS/Android

I build the whole feature: screen, app, server, database.

Senior React Native engineer who builds and runs whole mobile products (the app, the Swift and Kotlin underneath, the API and the cloud behind it) and fixes what breaks in production.

Download resume (PDF)
16
products shipped or in build
9
apps live in the App Store and Google Play
6+
years in production
Lagos
remote, full overlap EU

The work

Consumer socialteam of two, weekly releases

RecDek

Social film and TV: watchlists across streamers, personalised suggestions, festival award tracking.

No app release
to publish an event

Publishing an event used to mean a native release: build, submit, wait for review, release, then wait for users to update before they could see it. I built a server-driven event system with a publishing dashboard, so the payload ships without a binary.

I built an AI badge pipeline: artwork for 639 collections generated with Gemini, with a second model checking every title before it ships.

React Native, NestJS, TypeScript, PostgreSQL, GraphQL

Collection
Collection
Recording
For you
For you
Achievements
Achievements
Add to watchlist
Add to watchlist

Release path for one event

same payload, two delivery models
Native releasebuildsubmitApp Reviewreleaseuser updates appApp Review + user updates
Server-drivenpublish from dashboardlive in the running applive on next app open

No rebuild, no submission, no forced update.

Most recent buildiOS and Android

Remoting

Shipped and live on the App Store, though not on the Nigerian storefront, so this is one to install from a non-NG account.

2026
most recent production release

I built a native AI support assistant with streaming chat, push-to-talk voice and hand-off to a human video call, plus AI job-description generation.

Not on Nigerian storefronts

React Native, TypeScript

Dashboard
Dashboard
Team
Team
Onboarding
Onboarding
Settings
Settings
Live Activity
Live Activity
Trading platformJP Markets and Vault Market

Neobrokers

White-label trading: real-time market data, deep linking, iOS and Android parity.

2
deployments from one codebase

“He played a key role in helping us deliver a stable, scalable mobile platform used across multiple international markets.”

Eugene De Waal, founder-level CTOManaged Farouq directly

React Native, TypeScript, WebSocket market feed, deep links, secure API integration

Dashboard
Dashboard
Transactions
Transactions
Get started
Get started
My wallet
My wallet
Menu
Menu
Mobile bankingiOS and Android

3kle

Mobile banking: payments, savings, QR, peer-to-peer lending, bill splitting.

4
API surfaces taken over: flow errors, idempotency, rate limiting, auth

“Farouq single-handedly optimized our platform, transforming our vision into reality with precision and creativity.”

Innocent Anenih, co-founder at 3kleManaged Farouq directly

React Native, TypeScript, Redux, Firebase

Pay bills
Pay bills
Home
Home
Send money
Send money
All products
All products
Tier details
Tier details
GovernmentLagos State Parks and Gardens Agency

LasPark

Tree planting: planters document every tree they put in the ground, anywhere in the state.

Zero bars
the app records a full planting with no network at all, then reconciles when a signal returns
100%
of the workflow available offline

Planters work in places the network does not reach. The architecture is offline-first rather than offline-tolerant: writes land in a local store as the source of truth, photographs and GPS fixes queue against the record, and a resync pass replays the queue in order and resolves conflicts server-side. Nothing is lost between the field and the agency.

Distributed to agency planters

React Native, TypeScript, local-first store, background sync, geolocation, camera

Assigned tasks
Assigned tasks
Confirm planting
Confirm planting
Photo proof
Photo proof
Enable location
Enable location
Onboarding
Onboarding
LogisticsInsta Delivery by ISDS

ISDS

Delivery, from three sides: customers order, vendors fulfil, drivers deliver.

3
apps maintained in parallel, all three live on the App Store
1
shared codebase and design language behind them

Three separate builds, three sets of permissions, three release trains, kept in step by one shared component layer, so a change to the order model lands in all three without three rewrites. Maintaining them together is the work: a driver-side release cannot break a customer-side order that is already in flight.

React Native, TypeScript, shared component layer, live order tracking, role-based auth

Customer: home
Customer: home
Customer: tracking
Customer: tracking
Vendor: dashboard
Vendor: dashboard
Driver: online
Driver: online
Vendor: dimensions
Vendor: dimensions
Driver: login
Driver: login

Also shipped

The last five are pre-launch or under agreement. The screens and the work are shown, the names are not.

Insta Delivery

ISDS customer app: order, pay, watch it arrive.

LiveApp Store, iOS
Home
Home
Food market
Food market
Order tracking
Order tracking

Insta Delivery Vendors

ISDS vendor app: accept, prepare, hand off, reconcile.

LiveApp Store, iOS
Dashboard
Dashboard
Shipment request
Shipment request
Onboarding
Onboarding

Insta Delivery Driver

ISDS driver app: routes, proof of delivery, earnings.

LiveApp Store, iOS
Online, waiting
Online, waiting
Login
Login
Splash
Splash

Myitura

Telemedicine: consultations, records, scheduling. iOS.

1App Store release, live now
Home
Home
Itura
Itura
Appointments
Appointments

Tradelenda

Lending: origination and repayment. Android.

1Play Store release, live now
MSME finance
MSME finance
Digital finance
Digital finance
Sign up
Sign up

Flappy Bird

A React Native game clone. Unpublished, source on GitHub.

RNgame loop, collision, sprite timing
Start
Start
Gameplay
Gameplay
Name withheld

Food delivery: browse restaurants, build a basket, check out, and watch the order change state. Designs complete, not yet in a store.

Soonpre-launch
Meal plans
Meal plans
Select a kitchen
Select a kitchen
Weekly menu
Weekly menu
Pre-launch, name withheld
Name withheld

Ride hailing and ride sharing in one app: request a car, or share a seat on a route someone is already driving. Two ride models against one map surface.

2ride models, one map surface
Home
Home
Price agreed
Price agreed
Ride feedback
Ride feedback
Name and store link withheld
Name withheld

Sport: fixtures, teams, and a social layer around them. Designs complete, build in progress.

Soonpre-launch
Sign up
Sign up
Log in
Log in
Pre-launch, name withheld
Name withheld

Fintech: flights, foreign currency accounts, international debit cards, business registration, scheduled payments. Taken from two working features to a full suite.

2 → 7working features to a full suite
Foreign accounts
Foreign accounts
Card details
Card details
Add money
Add money
Pre-launch, name withheld
Name withheld

Property: shortlet stays searched on a map, with a first-run walkthrough over the live map. Not yet public, in build.

Soonpre-launch
Map search
Map search
Map walkthrough
Map walkthrough
Pins explained
Pins explained
Pre-launch, name withheld

Idea to production

One request from a product meeting (“this event has to be live in the app today, not in the next release”) and every decision between that sentence and a customer seeing it. Six steps, one person accountable for all of them.

“He knew what was required from a mobile perspective, but also took the time to resolve backend related issues.”

Nikki Sing, senior business analyst
1

Why the obvious answer fails

The normal route is a new version of the app, which means a review queue and customers who update whenever they feel like it. Most of the audience would see the event after it stopped mattering.

days, at best
2

The decision: send the screen, not an app

Instead of shipping a new app, the server sends a description of the screen and the app draws it. Nothing about the event is baked into the version on anyone's phone.

no release needed
3

The contract between server and app

Both sides agree on a written, versioned format. A phone still running last year's version skips a field it has never seen instead of breaking on it.

old apps keep working
4

Who is allowed to publish

A dashboard the product team uses without an engineer. Every payload is checked against the format before it can go out, so one bad edit cannot take the screen down.

product ships it, not engineering
5

Getting it to every phone at once

The payload is cached at the edge and cleared on publish, so thousands of apps asking in the same second do not all land on the database.

one publish, every device
6

What it changed

An event goes out without a release cycle, and the screens it drives keep changing without shipping an app at all.

an event goes live without a release
Farouq Seriki

Lagos, 2026.

Farouq Ayodamola Seriki

F.A.S.Which is what everyone calls me.

I build mobile products in Lagos and ship them to users I will never meet, in markets I have never lived in. That is the part of the job I like most, and it is why I care about the layers under the screen.

Six years in, the pattern is the same on every product here: I start on the interface, find the failure at the edge of it, and follow that failure down, into the native module, into the API, into the schema, until the bug has nowhere left to hide. That is what full-stack means to me on mobile. Not a résumé line, a debugging habit.

I test on real mid-range Android hardware, not just a simulator on a fast Mac, because that is what most of my users hold. And I write up the things that fail silently, so the next engineer loses an afternoon instead of a week.

Based in
Lagos, Nigeria
Working
Remote, full EU overlap
Writes at
freeCodeCamp
Tests on
3 Samsung Galaxy devices
Last year on GitHub
Contributions

Recommendations

Seven on LinkedIn, every one verifiable. Each card opens the original.

“The most exceptional developer I’ve collaborated with in my 25-year career.”

In full on LinkedIn: “… in my 25-year career as an enterprise information security architect. His drive and self-motivation are unparalleled. In my professional opinion, he merits the title of Full Stack Software Architect.”

Horatio Huxham
Chief Technology and Information Security Officer
Collaborated with FarouqRead on LinkedIn

“One of the most dependable and technically solid React Native developers I’ve worked with. He played a key role in helping us deliver a stable, scalable mobile platform used across multiple international markets.”

Eugene De Waal
Founder-level CTO
Managed Farouq directlyRead on LinkedIn

“Farouq single-handedly optimized our platform, transforming our vision into reality with precision and creativity.”

Innocent Anenih
Co-founder at 3kle
Managed Farouq directlyRead on LinkedIn

“He went very often way above the scope with the goal to improve our product quality. Whoever hires this guy will have a very well done job.”

Damir Demirovic
DevOps
Managed Farouq directlyRead on LinkedIn

“He knew what was required from a mobile perspective, but also took the time to resolve backend related issues.”

Nikki Sing
Senior business analyst
Same teamRead on LinkedIn

“Consistently delivering high-quality results on time and within budget. Not only reliable but also proactive.”

Blake Esra
Senior to Farouq
Worked above FarouqRead on LinkedIn

“He not only rocks the technical side, consistently delivering top-notch work, but also brings a positive and collaborative vibe.”

Peace Adeniji
Mobile team lead at TechBeaver
Managed Farouq directlyRead on LinkedIn

Native depth

Most React Native developers stop at the JavaScript. I write the Swift and Kotlin underneath: ActivityKit widgets, NotificationCompat channels, and APNs and FCM clients from scratch, no libraries.

“I write about the parts that fail silently.”

remoting.work Live Activity on the lock screen
The Live Activity itself, cropped close, updating with the app closed
DropTrack Live Activity in the Mac menu bar
The same Live Activity, live in the Mac menu bar
The React Native Live Activities Handbook
freeCodeCamp62 minutesJuly 2026
Read the handbook
The iOS NFC Handbook
freeCodeCampSeptember 2026
Read the handbook

My second handbook, written while I built TapCard: reading, writing and permanently locking NFC tags from React Native, with my own Swift module through Expo Modules.

Original research

Tested across three Samsung Galaxy devices and found a hardcoded six-app allowlist in One UI 8.5. Promoted notifications are granted to a fixed set, so the capability check can pass and still never show.

Three that cost real days
APNs 200

A 200 from APNs means Apple accepted your bytes, not that the card changed.

ActivityAttributes

Two copies of the same Swift struct, one renamed field, and the Live Activity silently never renders.

One UI 8.5

hasPromotableCharacteristics() and canPostPromotedNotifications() disagree on the same Samsung build.

Remote (UTC+1, Lagos, Nigeria) · open to relocation

Open to senior
mobile roles

Lagos, Nigeria. Remote, with full overlap across European hours and most of the US morning. Fintech, media, hiring, marketplaces, health and logistics: products where the failure cases matter.

The wall behind the desk

Six things pinned up where I work. None of them are about code.