Build end-to-end Social Login screen in Nuxt & Django

Photo by Taras Shypka on Unsplash


Initially, building the social sign in flow was not hard at first, but I struggled with refreshing the JWT token in the web app. Most of the resources on the internet do not discuss how to refresh the JWT token. …

Personal technology preferences after building many projects in the past

This story is originally published here.

Photo by John Schnobrich on Unsplash

Over the past few months, I’ve been building many side projects in my free time for learning apart from working full-time as a software engineer for the past 3 years. When building the side projects, I intentionally use many different technology stacks that I’m not familiar with in order to learn and make more informed choices in the future.

Over that period, I’ve developed my preferences towards the tech stacks of choice and approaches on how I’m gonna build my next project.

  • Prefers API-first development that automatically generates API documentation for you. It’s always…

This is how I plan my future, and you should do it too!

This article is originally published here.

Planning my future be like…

Twenty-five years old is quite a young age for software engineers. Mostly, 25 years old engineers are Computer Science graduate students who just graduated from university or have 1 to 2 years of experience. So am I. We are still in the early stage of our career.

I have plenty of time to pursue what I like. I have plenty of time to make mistakes and learn from them. More importantly, I have plenty of time to identify what I want…

I am amazed by how easy to build a web app using Django

This post is originally posted here.

Photo by Faisal M on Unsplash

Previously, I have been working with Flask, Cherrypy, and Bottle to build a small and simple web app for a particular need. I was shocked after a few weeks of writing the…

My journey to relearn JavaScript after so many years and how you can start too

YAFIG Feed page

The picture above shows you what I’ve built after learning Vue.js and Nuxt.js in one week.

I am building an Instagram clone project called “Yet Another Free (OSS) Instagram Clone” (YAFIG). The front-end site is built entirely in Vue.js and Nuxt.js, in a week.

Who Am I

I am a full-time software engineer working on CDN products. I spent my entire professional career (~three years) working with back-end services, primarily in Python, Java, and Lua.

Sometimes I also work with DevOps toolchains (Jenkins, Docker, Kubernetes, Puppet, etc.). I have decent experience writing a server-side web app using Flask and Django.

However, one of…

Write your first event-driven workers

This article was originally published on my personal blog here.

Photo by Hal Gatewood on Unsplash.

What Is a Message Queue in the First Place?

Message queues (MQ) are a fundamental concept in programming and software development. In a distributed system, a message queue is the backbone of the system. A message queue allows inter-process communication between services/applications in your system (eg. Service A can talk to Service B).

In MQ terminology, the service that emits the message is called the producer worker, while the service that listens and reacts to messages is called the consumer worker. This is how communication happens between the services.

You can scale up or down the number of producer…

One of the most instructive ways to wrap your head around a new language

This blog is originally published on my personal blog.

Illustration by Mohamed Hassan on Pixabay

Why Golang?

I’ve wanted to learn Golang for a long time. According to a Stack Overflow survey, Golang was the third-most wanted programming language in the year 2019. Coming from a Python background, learning a new programming language like Golang gives me a unique perspective on how to write code.

I was inspired by a helpful tutorial by Keiran Scot. The following tutorial is heavily influenced by Keiran’s tutorial but is made to use MySQL instead of Mongo as part of my exercise to learn Golang.

Prsonally, I believe Golang is the…

Photo by Patrick Lindenberg on Unsplash

What we’ll learn here

  • What it takes to provision a PV in Kubernetes dynamically
  • What is Rancher’s Local Path Provisioner
  • How to use Rancher’s Local Path Provisioner
  • How dynamic storage external-provisioner works

Frankly speaking, I find it a bit hard for commoners like…

Kubernetes Dashboard lets you visualize your cluster interactively. Other than increasing your cluster observability, it allows you to interact with your Kubernetes cluster without memorizing the kubectl commands. If you are new to Kubernetes’ world, this is super convenient for you to get started by seeing what’s happening in your cluster.

There are many options available for Kubernetes Dashboard out there. VMWare Octant is one of the popular Kubernetes dashboards available for free as an OSS. I know that many Sysadmins and DevOps engineers would prefer to use the old-school kubectl commands instead of using the dashboard because they…

This article originally published here

When building a bare metal Kubernetes cluster, you might face a common problem as I do. You don’t know how to expose your Kubernetes service to the Internet other than using NodePort. If you are using the NodePort service type, it will assign a high port number, and you have to allow your firewall rule to connect to those ports. That is not good for your infrastructure, especially when you’re exposing the server to the outside Internet. Well, there is another neat way to expose your Kubernetes service to the world, and you can…

Mohamad Fadhil

Software Engineer, building tiny part of CDN. See me on

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