A look into the stories behind my side projects, the lessons learned, and how I’ve benefited from them

Photo by Markus Winkler on Unsplash

Working on side projects is a great way to practice and learn new skills. There are many articles about the benefits of working on side projects. In this article, I’m going to take a different approach. I’ll dive into a few of the side projects that I’ve worked on and the skills and opportunities they resulted in. Hopefully, some of you can relate, get inspired, or be entertained.

Poppit (2013)

Clearing up the confusion around GraphQL

Image by TeeFarm from Pixabay

So, tell me why I was having a debate with a staff engineer on my team about the benefits of GraphQL and he tried to shut it down by saying: “You only like it because it is good for front-end developers.”

Honestly, I was a little bit upset because I thought it was one of the few times in my career where another engineer who knew only serverside development was looking down on my opinions because I love building user interfaces.

After giving it a little thought, I realized he was right. GraphQL is really good for the client-side. …

Link a native plugin to your Apollo client to avoid CORS errors and run network requests in a background thread

Image source: Author


The recent release of Ionic React had me very excited about hybrid applications, so I decided to dive in and build a demo mobile app. Things were going smoothly till I had a CORS error on my iOS simulator. I was under the assumption that I wouldn't encounter CORS issues because I was running this on a device. This reminded me of two facts:

  • Ionic mobile applications still use the browser’s network layer since they are basically web apps.
  • iOS enforces CORS restrictions on hybrid applications.

Practices that bring you joy as you grow and scale your software projects

Photo by Andrea Piacquadio from Pexels

If you have the misfortune or fortune of working with me, one thing you will notice is I usually have more questions than answers. For the past few months, there have been a few questions that have been keeping me up at night.

  • Why do a lot of software engineers over-complicate things?
  • Why don’t we focus more on simplifying our software projects?
  • What are the objective metrics that can be used to measure simplicity in software projects?
  • What makes the top open-source projects gain traction?
  • Why is working out and eating healthily so difficult? …

Photo credit: Freepik

I spent this recent summer participating in YC startup school and one of the things I noticed was the prevalence of founders looking for technical cofounders. It is a difficult situation to be in since engineering is costly. In case you have funds, contracting it out to a third party is not as simple as it seems. I have come across many horror stories on this topic. Here is a list of things I think are good to keep in mind when searching for a technical cofounder.

1. Build knowledge about the problem you want to solve.

If you can’t…

Working on side projects are very fun but not as easy as they seem especially when you have a fulltime job. Picking great tools to help you execute and keep track of your work is a great way to maximize the limited time and resources you have to spend on them. Here is a list of 5 tools have helped boost my side projects over time.

  1. Figma

Tired of managing passwords for many remote servers? You have come to the right place. If you are reading this I’m pretty sure you already know about ssh key authentication for servers. Apart from the security they provide, they can be very convenient especially if you use the same computer to access these servers most of the time.

Hold on! lets not get into all the technical fights of ssh key vs password authentication. That is a topic for another day. Lets dive straight into how to make your life easier.

  1. Generate ssh keys (Skip this step if you already…

Lets break down the traditional Hello World program in java

This program starts with the declaration of the HelloWorld class. Since Java is an Object Oriented language, everything runs in a class.

Main Method

Every java application has a main method which serves as an entry point for the application. This always has the signature of

public static void main (String[ ] args)

The string parameter name args is used to pass command line arguments. The parameter is ignored in this hello world example but can be very useful.

The System.out.println("Hello World"); statement is using a static java method that prints…

William Kwao

Software Engineer @ Facebook. Currently bootstrapping on fedup.co. Startup Shell Alumnus. 🔗 kwao.io

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