Perfect's tip and tricks on different topics in Software Engineering
Get updates about new articles:

Exploring Go's Functional Iterators (Range-over Func...

Go’s latest version, 1.22, introduces some exciting changes to the language. One of these changes includes an experimental function called… Read more

March 09, 2024

I generated my last article with ChatGPT. Did you no...

My last article on Using Postgresql as a Task Queue was generated mainly by ChatGPT. If you still need to read it, I recommend you read it… Read more

January 09, 2024

Using Postgres as a Task Queue

Introduction In the world of software development, task queues are essential for managing background jobs and asynchronous tasks. While… Read more

January 02, 2024

Verifying Performance with Simple Benchmarks - Go Be...

I am reflecting on how certain programming language features make it easy to iterate and test changes, specifically benchmarking. I recently… Read more

November 06, 2023

Monitor your Postgres DB Performance Before Launch

As the final touches are given to a development project ahead of the grand launch, one area is often tucked away: monitoring Database… Read more

September 11, 2023

Postgres and Null Comparison

I was recently reviewing a Ruby code for a colleague that had a function used to fetch some records from a PostgreSQL database. The function… Read more

September 04, 2023

How I Automated the Pgbench Tests using Terraform an...

I recently ran tests to benchmark the performance of Postgres databases offered by various Cloud Providers. The overall steps of running a… Read more

August 29, 2023

Comparing Postgres Performance (Part 2)

This article is a follow-up to a previous article that compares the performance of managed Postgres database from AWS, GCP and Digitalocean… Read more

August 18, 2023

Can multiple threads run on less than 1 vCPU in Kube...

In today’s fast-paced world of application development, containerisation and orchestration have become crucial components for deploying and… Read more

August 08, 2023

Comparing Postgres Performance across Cloud Providers

I’ve been working with cloud databases for a few years now, and I’ve always been impressed with the performance of PostgreSQL. However, I… Read more

August 01, 2023


Welcome to the Official Perfects Engineering Blog. This website’s content is primarily curated by Perfect Makanju (@perfectmak). Its… Read more

May 01, 2019

Quick C++ Input Stream Explanation

This post is written to address this question raised on twitter: The issue is with the way the different c++ input stream readers/extractors… Read more

February 26, 2018

K Means and Image Quantization [Part 2]

This is the second part of a two part tutorial series. If you are yet to read the first part, I recommend you start from there. In part 1, I… Read more

January 28, 2018

Build a realtime counter using Kotlin

It is important to show realtime updates of what is happening in an application, and one form of this is a realtime counter. A realtime… Read more

December 09, 2017

K Means and Image Quantization [Part 1]

I was having a random discussion with a colleague of mine about the University he graduated from, and I realized that there are some… Read more

August 23, 2017

Build a typing indicator with RxJs and Pusher

In this tutorial, we will walk through how to build a who’s typing feature in a Chat Application. Below is a video of how the final… Read more

August 22, 2017

Build a collaborative text editor in Android

In this tutorial, we will learn how to build a collaborative text editor in Android. We will be using Pusher to make the collaboration part… Read more

May 11, 2017

Build a typing indicator in Android using Pusher

In this tutorial, we are going to build a typing indicator in an Android chat application using Pusher. A basic knowledge of how to build… Read more

March 22, 2017

Robotics in Nigeria: My “Eye Opening” Trip to the Wo...

I had the opportunity of accompanying the Team from iLab ROC for their Contest in the National World Robotics Olympiad (WRO) Finals 2015 in… Read more

October 02, 2015