Photo by Torsten Dettlaff from Pexels

In building out web applications using React.js, I’ve had to manage both component and application state. While the component state is managed with built-in methods, the application state is managed using tools like Redux.

How does Redux work? The documentation talks about actions, constants, and reducers. Which I and much everyone else uses. However, I’d struggled to internalize this concept and how it’s all put together.

I recently asked Meabed to explain to me in his terms, how state management works and he did just that. I’m writing to you to explain using an HTML file and the browser window

Photo by Jametlene Reskp on Unsplash

Excuse the barrage of doggos in the banner image. I searched for a stock image on unsplash for “Puppies with different colors being named by their mom”. I do search in the tackiest of ways 😃

I hope they brighten your time also.

Recently, I found a ‘funny’ JS syntax when reviewing a pull request by Sigo, a colleague. I hadn’t used it previously. It looks like this:

const dataFromAPI = 'age';

let existingObject = {
name: 'John',
[dataFromAPI]: 25

// Output {age: 25, name: "John"}


I looked up variables in object keys and decided to share it…

Photo by Elevate on Unsplash

For small React projects, it’s cool passing props between React components, from the Arctic to Antarctica 😃. With increasing complexity, we pass a bit more props and possibly throw in React Context to manage some state data between nested sibling components.

As the project grows, the need for a proper state management tool becomes unavoidable. This is the sweet spot for a tool like Redux in React projects. However, setting up Redux is considered herculean due to the amount of boilerplate required.

In this post, we’ll set up a redux store suitable for large projects without shedding tears. This post’s…

I recently completed the Artificial Intelligence Product Manager Nanodegree Program on Udacity and I’d like to share a summary of everything I learned with you. This also includes bits from my experience as a technical product manager.

This all a huge dump from my mind, written from the first stroke to last on my keyboard so kindly excuse any details I may miss or depths I didn’t hit.

Why the AI program?

It would be great to start with “why” and what motivated me to complete this program. In the past year, I’ve been working as a full-time product manager, sitting at the intersection…

Working with people can get pretty tough. It could be on a school project, at work, or even by just a normal casual conversation.

The persistence of differing views is a key contributor to multiple disagreements between people. Over time, working with people and currently on my product team, I encounter numerous unavoidable challenges with both internal and external stakeholders.

Previously, I thought we have different interests and views. However, after a thorough empathetic retrospective, I realize we sometimes have similar interests only humanity in me won’t let me see beyond my nose and to their view.

How does “Why” make people feel?

Humans are in…

Asides from the smooth development experience of using JavaScript, APIs, and Markup to build out JAMstack apps, the deployment process is also splendid. Multiple providers are available to deploy JAMstack, and we will discuss a preferred top 5.

In this post, we’ll deploy a sample Gatsby.js application to Digital Ocean using the App Platform for static sites, in seven steps.

You can find the sample Gatsby repository with the default starter here.

Like most hosting providers for JAMstack apps, Digital ocean provides a generous free tier to host and manage web apps. Digital Ocean issues a $100 credit on signup…

Banner Photo by Denys Nevozhai on Unsplash


I promise you’ll get a summary of this post at the end.

Asynchronous operations are at the backbone of implementing interactivity in modern JavaScript applications. These are used when making API calls, network requests, or even via a basic delay function.

Asynchronous operations utilize promises, callback functions, or async/await. Commonly, these operations are singular and do not require aggregation of multiple async operations into one.

Recently, I started working to build an aggregation service that utilizes multiple 3rd party APIs and aggregates the resulting data. In this post, we’ll learn how we make concurrent async requests using Promise.all() in…

Background photo by Grant Durr on Unsplash


Since the introduction of React hooks, the creation and utilization of functional components became even more seamless. With useEffect and useState lifecycle methods previously available to class components are also available in functional components.

React's very purpose is to provide reusable blocks of code that form the various parts of an application. In this post, we'll explore how to use custom hooks to abstract component functionality reusable across a React application.

To follow through with this post, you should be conversant with React.js.

Why use custom hooks

You may wonder why you should even bother with writing custom React hooks when we can…

Let’s talk about tech, speed, a late night and a hackathon — with grit from somewhere to the east.

It’s a long time coming, been on the road and unavailable to give you the juice, apologies, here’s what happened!

Hackathons are a great place to collaborate with people on really awesome projects, the forLoopOAU hackathon was one such instance. See this previous post introducing the hackathon.

Obafemi Awolowo University, OAU as fondly called is touted as one of the better schools encouraging the development and utilization of internet technologies and prides itself with notable alumni who have gone on to…

It’s a Hackathon and this time we’re going to Ghana!

The #forLoopUniGhana Hackathon is one of a series of Hackathons — I call them hack parties — happening across Africa. This edition themed “APIs for Good” aims to ingrain the concept of open source software creation, utilization and contribution on the participants.

Participants would be required to work with stated API’s to build awesome applications, softwares and tools. Also, there is the flexibility to utilize any other APIs as required by the hacker.

This Hackathon has little to no limitations and anybody of any skill level can participate, I mean…


Human, Developer, Developer Advocate… I like and a couple of other cool stuff. William Imoh!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store