Skip to content

My 12,016 Year in Review

Posted in Personal

12,016, as Kurzgesagt – In a Nutshell‘s video titled, A New History for Humanity puts it, has been a very busy year for me.

last 3d render of 2016
‘Cross Over’ – My last 3D Render of the year 12,016

So, let’s get straight to it then:

Earlier this year, I was hired to work on a project related to a basic Kickstarter-like web application for a company with their founders based in the US. In the process, I got up to speed with Stripe and making payments integrated with Django Python. The article, Charge Stripe in Actual Dollars, not Cents, was born.

As the above project was unplugged, I moved onto learning a new skill, which was the Ionic Framework. Quickly I realized how undocumented difficult it was setting up Side Menu Tabs in Ionic 2, so I pushed one of my all-time most visited article of the year, Ionic 2 – Side Menu and Tabs along with a Github project. And since I’m at Ionic, I went ahead to offer simple tips on handling Ionic 2 Formbuilder. I am happy to have spent time with Ionic 1 and 2 and the experience was and are still amazing.

Ionic 2 Side Menu Tabs
Ionic 2 Side Menu Tabs

Google Spaces was launched somewhere within my coding time ‘space’, and I did a Brutally Honest piece on how Google+-ish Google Spaces felt to me. I ended up being called a Naysayer. Learned a new word that day! Google fanatics just can’t see the truth said about their ‘Dad’. Is Google Spaces dead? I don’t know, as I hardly hear anything about the platform in the news. In other news, as much as I love Chromecast, I shared some of the annoying features of the world’s leading streaming device!

Searching for Chromecast

As I sharpened my Ionic 2 Framework skills, I took on the Stanbic Bank Money App Challenge. In short, I didn’t get shortlisted. The app, namely, StanPiggy, was built with Ionic 2 and featured an SQL as a Service part. I shared the piece with all in a post!

Firebase was my next found interest. 12,016 was a year of learning and finding a job, and the learning process part was coming up quickly and fast. I threw in Firebase, and in the process, tested my skills with building the CodeBySide app – a 100% client-side app, with Authentication, Storage and Hosting reliance on Google Firebase – built using AngularJS on the frontend.

I started the UI with Foundation CSS Framework, but eventually switched to Bootstrap, as I prepared for my Senior Web Developer Nanodegree [more on this below]. I shared my experience with the use of Firebase in building the CodeBySide app, and listed some of the missing features I found.

It was great having someone from Firebase explain things about how and why the Firebase Realtime Database was built the way it is. An icing on the sugar was a video of Security in Firebase presented at the I/O this year. It gave me a fresh look on how to structure data and secure them in Firebase.

CodeBySide Logo
CodeBySide Logo

Still on Firebase, my article on Simple Firebase Email Verification was helpful to many, I believe, considering the feedback I received, both in the comments and ones I received via email inbox. I was busy with Firebase this year, as the Firebase tag indicates.

On the server side, hosting three WordPress sites, two Django apps, a RADIUS Server, static sites (like and and other ones like the (more below) which is NodeJS, required and still requires extensive reading on getting all to work.

I am proud to say although I did tons of experiments, upgrades, mistakes, software switches behind the scenes and server maintenance, there were not more than 30 minutes of downtime this year for all of the and its related subdomains.

Monit LEMP in Action

I might do a detailed look into how I have structured my server to serve requests (which ain’t any mystery, same techniques everyone is doing) to get the most of my now 10$ droplet in a separate article sometime later.

DigitalOcean has been phenomenal and the services and documentations are all any developers might want to have, in order to concentrate on deploying great apps and services. How easy configuring subdomains is on DigitalOcean via their ‘Networking’ page is just amazing.

I turned on Fail2Ban and OSSEC IDS this year on my server, providing a bit of extra security against brute-force attacks. As always, SSH is turned on full-flank!

Sign up with this referral code: and get 10$ bonus on DigitalOcean.

I had to migrate my entire droplet to PHP7.0, which took a bit of substantial time and revamp of configurations and the pointing of services running, such as the Nginx to the right Unix sockets. To that effect, I wrote the piece on doing the slight migration.

An article about getting up and running with Monit was shared later on, which covers how to install and serve server updates to your browser to check on system health, storage capacity, system load, and via the browser, start or stop configured services, such as Nginx and MySQL.

My love for Blender was not dead. A piece on how to build Blender from scratch took readers throw how to compile Blender from the source code using CMake on Ubuntu. Blender is the software behind my creations at and the recent image at the start of the article.

Blender 2.77 Build

MaterializeCSS become one of my favorite CSS Framework, and did a couple of projects, like the homepage and Laravel Survey App [more details below] with it.

Customizing the Sass files all the time via the command line got boring for me. To save myself from the misery, I transferred the entire process into the browser, hooked it up to the web, and squeezed all the customize-and-build steps into click-and-clicks, with everything happening behind the scenes. In fact, I shared how all the ‘behind the scenes’ happen in the Custom MaterializeCSS Download article series.

Test Custom MaterializeCSS and lemme know what you think.

Survey App in Laravel Screenshot
Survey App in Laravel Screenshot

Now, for a Job interview, I built the Laravel Survey App, using, well, Laravel. I never liked or used PHP as my daily driver, however, in the name of pleasing my potential employer, I got up to speed with Laravel 5 in some seven days.

My experience with Laravel (PHP) was just amazing and inspiring. Within days, after the frustration phase, I came to love Laravel. I shared my experience in building the Laravel Survey App with all in the 10 Days of Laravel Series. An attached Bitbucket project gave readers the opportunity to get their hands dirty if they wanted to.

When job interviews help me learn new things, I get excited, even if I don’t get the job. I remember some years back, a job interview task got me going deeper into Beautiful Soup for scraping through HTML pages. It was fun!

By the way, the Laravel tag holds other Laravel related articles I shared, like the how to save JSON object in Laravel Database.

On the fun side, I entertained myself and the many readers from Ghana with the episode reviews of the popular show, YOLO (You Only Live Once). I deployed a

I deployed a Discourse-based discussions platform dedicated to the chattering and sharing of thoughts and comments from viewers around the country and beyond. It is currently deprecated and no longer functioning. Getting Discourse to work on Ubuntu, with minimal server specs was a hassle, but my article on how to Install Discourse behind Nginx covered many useful aspects of the process.

Discourse in Action

Via RSS, I built the Simple Mobile Blog – an App which pulls the contents of your blog and displays them nicely within an Android App on your mobile phone. The app was built using the Ionic Framework and one could adapt for their own use quickly. An accompanying Github project was useful and puts an icing on the cake.

For a Weekend project, what I usually referred to as a Weekend-thon, I built the MadeWithFirebase website, using, you guessed right, Firebase. MadeWithFirebase is meant to showcase apps built on top of Firebase or using Firebase in one way or the other.

I had to switch my Khophi Blog to Accelerated Mobile Pages sometime this year. The speed at which my pages load on mobile via AMP skyrocketted. As a developer for blog too, I extended the Accelerated Mobile Pages courtesy to the site, all enjoying great speeds on the mobile.

My piece on AngularFire2 Authentication rippled wide. So far, the accompanying Github project has at least 10 stargazers! The article, which revolves around using Angular 2 in union with Firebase 3 to handle user authentication was one of my favorite pieces this year.

Ionic has been a major theme for me this year. One article I shared about how to Create and Import Modules in Ionic 2 helped me, and I’m sure many have benefited from it over the weeks. With the Ionic 2 Framework revamps and final release of Angular 2, things shifted and moved around a bit, including how to import modules. See how to get all working fine with the article!

adeton dashboard
Adeton Dashboard

I did my first sponsored blog post this year too – 12,016! The sponsored post was from Blackgrounds Labs and was about their brand new shiny mobile application for creating websites, a perfect touch for business owners to start a website, update and reach audience and visitors and customers easily, conveniently. The server maintenance and reliability is on them. Just launch, and sell!

Learn more about Adeton.

My article titled, “Where is my Money? – Fidelity” saw some 83 users flock to it, resulting in some 381 Page Views. The issue was resolved, and my held-hostage money was refunded. The money too was even less than $40. Ha-ha!

In recent weeks, deploying the RADIUS implementation, Freeradius. I’m working on a Wi-Fi hotspot business in my neighborhood, and the technology is fascinating. Getting Freeradius, DaloRADIUS and its related technologies working is just wow, and I’ve shared some of the difficulties I faced, but with how I overcome them!

Khophi's Dev Hotspot System
Khophi’s Dev Hotspot System

In 12,017, one of the projects outlined on my calendar will be to revamp the DaloRADIUS Web Management UI from ground up. It is a daunting task, but with the help of experienced developers like Liran (author of DaloRADIUS), I’m sure we can do this!

chillispot configuration dd-wrt
Chillispot Configuration on DD-WRT

I wish I could cover all the tech articles I wrote, but the above pretty much sums what I’ve been up to.

Last but not least, I passed my goal for the year on StackOverflow, which was to gain over 1k reputation. I revamped my Developer Story too with all latest and recent changes.

StackOverflow Rexford
StackOverflow Rexford

Did you enjoy any of my articles? Lemme know in the comments below.


MongoDB: I started this year by completing two courses on the MongoDB University website. I later went on to try the M101P exams. Yes, I failed! Somewhere later in 12,017, I hope to retake the exams, including the M102 and the ones on Security.

Nanodegree: I started a Udacity Nanodegree later in the year, and completed the Senior Web Developer Nanodegree.


Not much to go on in this section except to say I got a job at a startup. In just 2 months, within my 3 months probation, I quit! The motivation to quit was heightened when I was called ‘a Disappointment’. I guess that was one point that broke the camel’s back!

I moved onto another job. Initial talks were great, would work remotely full time. Before we could build enough rapport, the discussions were terminated after a ‘Client from Hell’ was brought into the picture.


Met Oral Ofori and family for the first time after becoming close friends some 7 years ago. Produced three interviews on the first day meeting TheAfricanDream himself.

Danny Beatz, AJ Da Hottest and Gyedu Blay-Ambulley graced our meetup.

Photos of our meetup on Google Photos and our trip to the Boti Falls.

Danny Beatz, myself and AJ DaHottest


In my year 12,016, a lot happened, and when I look back, I think I have a cause to celebrate

Celebrate 12,016
Celebrate 12,016

See ya all in 12,017