WRITING ARTICLES
I write articles on various topics. I write about mobile app development with Flutter, about Tech Communities, web development, my stories, and anything worth sharing.
The topic list has widened over the years into AI agent tooling, product analytics, authentication and security, backend design and Firebase architecture, Angular and Vue on the frontend, and career notes from the Google Developer Expert path. The pieces vary from short walkthroughs to longer teardowns, and many ship with companion source repositories.
Here are articles I've written over the years. For some, I published them on my blogs. For others, they were guest authorship for blogs like CSS-Tricks and freeCodeCamp, and outlets like Medium, Hashnode, Dev.to, and SweetCode.
What Every Dev Should Know About Tracking Product Data
Three categories of product data every developer should track, when to start, event naming that stays useful, and how to handle privacy responsibly.

How to Make Your Antigravity Agent Skills Configurable (Without Forking Them)
Make Antigravity Agent Skills reusable and customizable across teams without forking, using a default-plus-override YAML config pattern.

Road to Mastery - Being a Google Developer Expert
Becoming an Expert has catapulted my developer career. I have learned much more and met more industry leaders thanks to the GDE program.

How to Implement RBAC in a Community Dashboard with Nuxt
Learn how to integrate Role Based Access Control (RBAC) with Permit.io in Nuxt to create different access levels in an example app.

How to Use Streams and Services for Flutter State
Explore an Easy and Flexible State Management Architecture in Flutter with rxdart's Stream manipulations and singleton classes.

How is Flutter Platform-Agnostic?
Explore how Flutter is platform-agnostic through how it renders user interfaces and through platform channels.

How to Always Have A BuildContext in Flutter Outside of UI Code
How to get a valid BuildContext where the widget tree does not reach: background services, HTTP interceptors, domain models. Walks through wiring a global NavigatorState key so snackbars, dialogs, and route pushes work safely from anywhere in the codebase.

How to structure any booking/reservation system with Firebase
Design a real-time booking and reservation engine on Firebase that survives concurrent slot grabs, using Firestore atomic transactions to kill double-booking races and scheduled Cloud Functions to reap expired holds automatically.

Hosting a Tech Community Event
How to handle your event in real time and things you should do when the event is taking place.

How To Improve Flutter Forms
Small UX moves that dramatically lower drop-off on Flutter forms: chained FocusNode transitions with TextInputAction.next, debounced remote validation to stop input stutter, and error messaging that does not shift the layout as it appears.

How to Prevent Account Loss When using Two-Factor Authentication
How multi-factor authentication can lock you out of your own account, and how to avoid it. Covers authenticator app sync, cryptographic backup codes, hardware security keys (FIDO2 and WebAuthn), and why SMS 2FA fails as both a security guarantee and a recovery fallback.

How to Brand Your Flutter app
Set up a coherent design system in a Flutter app with Material 3: unified ThemeData, ColorScheme.fromSeed for automatic light and dark schemes, a typography scale, custom splash screens, and native launcher icons across Android and iOS.

Firebase CORS Proxy Server
Learn how to bypass CORS issues making API calls through a CORS server that you setup for free yourself with Firebase.

Guide to Testing Angular apps
Learn the basics of testing Angular apps, including guide for unit testing, component testing, and end-to-end testing.

Flutter For Front-End Web Developers
A translation guide for web developers picking up Flutter: which HTML and CSS mental models carry over (Flexbox, the box model), which do not (declarative Element tree, constraints-down-sizes-up), and how to reason about widget hierarchies without a DOM.

Why I Chose Angular to Build a URL Shortener
Reviews the available tools, decision choices, and factors that influenced choosing Angular for the project's frontend.

How to Use Stacked Architecture
Explains what Stacked architecture is and guides you through creating a simple Todo App in Flutter with Stacked.

Why You Should Use Flutter
A technical and business case for adopting Flutter: sub-second stateful hot reload, a single codebase compiling natively to iOS, Android, web, and desktop, high-performance Impeller rendering, and the depth of the pub.dev package ecosystem.

How to Implement Any UI in Flutter
A guide that will help you convert any user interface image, piece, or screen into Flutter code.

How to Promote a Tech Community Event
A promotion playbook for community organisers: crafting an event message that lands, sequencing across social media, email, blogs and partner communities, and timing the cadence so interest peaks the week of the event.

How to Plan Your Community Event
Don't just start hosting the event. Please, first plan it. Planning is like being in the event before it happens.

Grow a Tech Community
Grow a tech community because you want to mentor people (where you can). You will impact people's lives and become a leader.

5 things you will Gain from Tech Communities
Community works for many people and it will work for you too. We are talking of huge benefits you won't find in other places.

10 Ways to Contribute to Tech communities
Give back to the community. The active participation of community members is the fuel that fires the life of a given tech community.

On Tech Community Events
Community events are moments of bonding and celebration. They are organised to keep the community alive.

Understand Tech Communities
A primer on what tech communities actually are: self-organised groups of people who share (or want to share) digital skills, built on peer learning, mentorship, and inclusive governance rather than institutional hierarchy.

Understand Serverless Architecture
A primer on serverless computing: how function-as-a-service platforms let you ship business logic without provisioning servers, why pay-per-execution and auto-scaling change the cost model, and the trade-offs (cold starts, vendor lock-in) to weigh before adopting it.

How To Build Flutter Form for Managing Questions
Build a dynamic Flutter question form: add and remove rows without losing internal state, validate fields in real time with visual error hints, and coordinate multiple controllers so the whole form stays in sync as users type.

How I first perceived TEDx
A personal reflection on why TEDx keeps pulling me in: local speakers, world-class ideas, and the specific feeling of walking out of a talk holding a thought that reshapes something you were already carrying.

Becoming a Developer
The full arc of how I became a developer: secondary school beginnings, scholarship acceptances, first shipped projects, volunteer work with student communities, and the eventual step into organising the kinds of events I used to attend.

Making GitHub-Invite
The story of building GitHub-Invite: why the ask first sounded pointless (why not just paste invitations manually?), the two realisations that changed my mind, and what it took to ship a small tool that quietly saved organisers hours per cohort.

Taking Part in ECX #30DaysOfCode
A retrospective on completing the ECX #30DaysOfCode backend track during the COVID lockdown: 30 mentor-set tasks in 30 days, a public leaderboard that kept everyone honest, and the way a daily challenge structures an otherwise shapeless week.

My #GADS Story
How the Google Africa Developer Scholarship shaped my early career: full access to Pluralsight, the Enugu GADS meetup community, and the moment those two things compounded into the confidence to build and share work in public.