Distributed cache is a concept where instead of your application keep a local copy of cache in its memory, it retrieve the cache from remote server in the cluster. This helps improve your cache hits, cache coherency and prevent cache stampede/thundering herd. 
 Local cache means each server that’s making the expensive query/operation, cannot be discovered by other servers. As a result,…
Even though Goakt has always been a great technology for me to adopt, I was always reluctant to use it in my application because writing and managing Protobuf files wasn’t feel really elegant for my use cases (skill issue). Competing libraries like Ergo & Hollywood allows you to use actor without writing Protobuf files. 
 Fortunately, in Goakt v4 , the author has added a new pluggable…
If you are familiar with microservice architecture, you might heard the pattern “Database per service”. There are popular articles written by Chris Richardson , AWS and Microsoft on this topic. These articles suggest that microservices should not share data via database access, but only via inter-microservice RPC/API calls. This pattern ensures that the respective microservice owner…
Reflecting on the year 2025. 
 Starting a new job 
 Early this year, I started working at a new fintech startup company in a similar role as my previous role at Seek: Senior Engineer. The first team when I joined the company was building & selling a dedicated solution for our clients. In the beginning, I found myself disappointed a couple of times because a lot of things: the…
After 8 months joining a new company, I was promoted to Tech Lead in Aug 2025 at my $current_company. I am now leading a team that ships the company’s SaaS product. 
 When I first transferred into the team, there were only 2 engineers, 1 QA, and 1 Product Manager. The business grew so well and we’re planning a lot for next FY. Now, 4 months later, the team has grown to 3 backend…
There’s a popular saying that goes by: 
 
 The First Law of Programming: If it works, don’t touch it 
 It might sounds wise to some, but over time, this could eventually rot your entire system. 
 
 Courtesy: ProgrammerHumor subreddit 
 Have ever joined a company and when you were assigned to a task/project and you have to touch a codebase that everyone is afraid…
Microservice architecture is a popular approach to building scalable and maintainable systems. It allows teams to work on different parts of the system independently and deploy them independently. I have an experience working with a large microservice system, and feel the pain of it. 
 There are many benefits of using a microservice architecture, such as: 
 
 Organization scalability:…
Reflecting the year 2024. 
 Goodbye Seek 
 I tried frontend programming 
 After massive Unification project was done in early 2024, my manager has moved to Platform Engineering team, working on Kubernetes adoption project in the company. While me, still in the same team, Discover, the team that builds the front page of Seek and its other brands. We’re heavily focused on frontend…

 What is Actor model 
 Imagine that you’re queuing at a fast food drive-thru to buy your morning breakfast. Each meal has multiple lanes to get your order. The waiters are working very efficiently, and it only takes microseconds or nanoseconds to take your order and pass it to the kitchen. The order will be passed/routed to one of many chefs in the kitchen. They will eventually go…
Disclaimer: This is my personal learning experience with the Actor programming model. 
 How programming typically looks like 
 If you ask any web developer which programming language(s) they use, most will likely say they write code in Javascript/Typescript, PHP, Python, Go, or Ruby. 
 This code snippet shows how you can write a script that validates URLs using NodeJS. 
 const…
Somewhere in 2022, Cloudflare posted a blog announcing their partnership with Mailchannels, an email security company. Out of this partnership, they’re announcing something that blew my mind: 
 
 MailChannels has created an email sending service specifically for Cloudflare Workers that removes all the friction associated with sending emails…. But the absolute best part? Thanks…
Feeling grateful about my job 
 I’m incredibly proud of what I’ve done at my day job. I’m now working as an engineer in a squad in a product team. This year, I’ve led 3 projects and contributed to several projects in the team. All 3 projects come with their own challenges and satisfactions on their own. Here are some highlights: 
 
 I made a big bet and…
After working here for one and a half years, I’ve led four projects in my team. I’ve recently completed the most sophisticated project so far™ and am really proud of it. 
 
 At its peak, there were seven engineers, two business analysts and one engineering manager actively contributing to the project. It took around one quarter to be delivered. 
 This time, I’m…
What is NodeJS 
 
 As an asynchronous event-driven JavaScript runtime, Node.js is designed to build scalable network applications - https://nodejs.org/en/about 
 What is event loop 
 
 The event loop is what allows Node.js to perform non-blocking I/O operations — despite the fact that JavaScript is single-threaded — by offloading operations to the system kernel whenever…
I encountered Node Stream at my day job, and due to my unfamiliarity with the concept, I had a hard time understanding what it is and how it works. This article explains my approach to learning the basics of Node Stream with Highland JS. 
 What is Stream Processing 
 Stream processing is a concept where you start to process the data as soon as they become available and process them in…
TLDR: a ton of good things happened this year that I’m grateful for, although I have so many things to improve 
 Changed my job 
 Early this year, I was working in a local Fintech company. But then, in April 2022, I changed to work in a multi-national online employment company. 
 It was a life-changing experience for me. I wrote at length about this in my previous post . ~8…
Disclaimer: This article is personal to me and does not represent my colleagues or my company 
 In my previous company, I led a few projects in a local team of 3 to 5 engineers. The project requires a little collaboration with the team in England and Ukraine. Moreover, the whole company is also relatively small as we are operating as a startup. 
 After working for ~3 months in my new…
What’s new in SQLite 
 It’s exciting 
 Disclaimer: This is my personal learning note, and it may contain inaccurate information. I would appreciate it if you could point that out. Thanks! 
 SQLite is a great OLTP database. SQLite excels at handling high reads and low-write applications. 
 
 High Concurrency 
 
 SQLite supports an unlimited number of…
I started a new job as a Senior Software Engineer at Seek in April 2022. For context, Seek is an online employment company headquartered in Australia and has a presence in over 12 countries globally. 
 FYI I’ve worked at two different startups/small companies before as a junior/mid-level software engineer, and this is my first big company. All I can say is that things are very different…
What is pgbouncer 
 pgbouncer is connection pooling middleware software between the application servers & Postgres DB instance. The purpose of connection pooling is to make it efficient for applications to connect to Postgres instances. How does pgbouncer do this? By reusing the connections to the database. 
 In Postgres (and generally most databases), it’s really costly to establish…
Day job 
 Early 2021, I was working with Django & Kubernetes a lot. For the record, I’m working with a CDN company on an Over-the-top (OTT) video streaming product. I remember hacking iptables to add rate limiting rules in Kubernetes nodes. It was fun! One of the projects I was involved in was completely redesigning the company’s dashboard using the internal UI kit. I had fun…
Previously, the Online analytical processing (OLAP) databases were only available as proprietary software offerings like Greenplum, Vertica, Teradata, Paraccel, etc. At that time, it’s very costly to deploy the OLAP databases, and only companies with huge budgets have access to them. Small organizations won’t get a chance to use OLAP databases. Well, things have changed now. 
 What…
How it Started 
 There’re too much memories in here. I’ve spent over 1/5 of my life dedicated for Onapp. 
 I started working at the company as an intern in Aug 2016 for 6 months. That’s when I first learn Python and immediately fell in love with it. That’s where I wrote my unit test, integration test, working with RabbitMQ, Elasticsearch, Jenkins, etc. I remember…
What is a worker 
 A worker is a program that listens to the events in your system and performs actions in the background asynchronously. For example, when a new user is registered to your SaaS product, a worker will listen to the user registration event and send a welcome email. Asynchronous means the worker performs the action in the background outside the request-response cycle, so the user…
This article is inspired by Jonathan Lin’s post on the same topic and how Nike handles their Sneaker Drop sale . 
 Background 
 On 26th May 2021, the Malaysian government opens up vaccination slots to everyone in Kuala Lumpur and major cities in Malaysia. The registration form opens at 12 pm local time. Due to that, thousands (or perhaps millions) of Malaysians are getting ready in front…
You can find the first part of this tutorial here. In the first part of the tutorial, we have built a functioning frontend and backend app that allows users to authenticate via Google login. 
 Refreshing a JWT Token 
 Weare not done yet! Even though our app can authenticate a new user correctly, our still Nuxt app cannot refresh its JWT token. When the token is expired, and the token…
Overview 
 Over the past few weeks, I’ve been working on a side project. One of the requirements is to enable the user to sign in to the application using Google social login. The web app is built using Nuxt for the frontend and Django REST Framework for the backend.
Initially, building the social sign in flow was not hard at first, but I struggled with refreshing the JWT token in the web…

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…

 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…

 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…
For the past three months, I’ve been writing a web application using Django for our company’s new project. It hasn’t launched yet, so I couldn’t disclose too much information about it. However, I’ve learned a ton while working on this project while working on it along with the team. 
 Previously, I have been working with Flask, Cherrypy, and Bottle to build a…
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…
I always wanted to learn Golang for a long time. According to the StackOverflow survey, Golang is the 3rd 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 post by Keiran Scot. The following tutorial is heavily influenced by…
When building a baremetal Kubernetes cluster, you might face a common problem as I do where you don’t really know how to expose your Kubernetes service to the Internet other than using NodePort. If you are using NodePort service type, it will assign a high port number to be opened and you have to allow your firewall rule to connect to those ports. That is not good for your infrastructure…
For the past month, I’ve been researching for baremetal k8s distribution to use at our company. I’ve been using Rancher’s k3s , a lightweight kubernetes distribution and I find it very light and convenient to setup. Together with bunch of built-in tools bundled with k3s, I really like its super cool storage provisioner. Thank you Rancher, you guys rocks \m/ 
 What we’ll…
I am super excited for 2020. There were lots of announcements from AWS re:Invent and Kubernetes Conference recently that excites me for 2020. There were lots of things for me to catch up. 
 DevOps 
 AWS SysOps Certification 
 This is my top priority for now. I have been studying AWS SysOps Associate certification from A Cloud Guru in the past few months. Personally it is a bit hard for…
Hi! I’m Fadhil Yaacob (pronounce Fa-dale ), a software engineer at OnApp in Kuala Lumpur. I have been writing Python professionally for 2 years. 
 Year pre-2018 - University year 
 
 I graduated in year 2018 from University of Malaya in Bachelor of Computer Science majoring in Management Information System. This was where I learned Data Structures (in Java), Web Programming,…
List of my personal favourite talks on Youtube 
 All time favs 
 
 
 
 Title 
 Notes 
 Topic 
 
 
 
 
 [Facebook] USENIX ATC 2013 - TAO 
 Facebook share how they build their own graph database, supporting billions of QPS in 2010s 
 Database, Caching 
 
 
 [New Relic] The Evolution of a Planetary-scale Distributed Database 
…
My name is Fadhil Yaacob (pronounce Fa-dale ). I am a Senior Software Engineer writing Golang, Typescript, and Python, and work with AWS & Kubernetes. I’m based in Kuala Lumpur, Malaysia. 
 During my free time, I enjoy cooking with/for my family and shredding my guitar \m/ spending time with my family. 
 People that I admire: 
 
 Prophet Muhammad 
 Sirupsen 
 Randall…
I have over 5 years of experience building scalable system using many technologies including Python, Golang, Javascript, Ruby, etc. I have worked on high traffic websites. I would love to help you achieve a bigger target for your system. 
 How Can I Help You 
 I’m open to consulting work related to: 
 
 Architect & develop high performance, highly scalable and available…
This page records everything I’ve studied, learned or practiced. 
 The points with (*) are my favorites. 
 2026 
 
 Learning Terraform to manage Azure modules and resources 
 Learning Rust for fun on Twitter 
 
 2025 
 I quit my job at Seek and started working at iPiD, a local fintech startup. 
 
 Learning about security: encryption, pgp, mtls, rsa, csr,…
This is the list of weekend & side projects I did for fun and learning. 
 Commercial Projects 
 Personal Finance App (TBA) 
 Technologies Used : Loosely-coupled monolith architecture, Go, Goakt, hurl, Postgres, Fly.io, OpenTelemetry, Clickhouse, Tailscale 
 Simpan Cukai - Aug 2023 
 Visit the project at https://www.simpancukai.com . 
 Launching Twitter thread . The updates…

 Apple Macbook Pro 
 
 Apple M4 
 16GB RAM 
 512GB SSD 
 
 27" LG 27MP400 Monitor 
 The cheapest 27" I can get at local store. 
 Endesk Max Sit/Stand Desk 
 
 I bought this desk after having a back pain frequently after sat down for a long time. Good value purchase. 
 Steelcase Leap V2 
 Bought a used chair from a friend for half of the price.…