Review On Core Kubernetes

During my journey to learn Kubernetes, I came across lots of books, courses, and documents—each packed with useful information. Today, I want to talk about the books I’ve read. Among all of them, two really stood out and added a lot to my knowledge. The first one is…

Common GORM Mistakes You Should Avoid

GORM is a powerful ORM tool that makes Go development much easier and faster. It’s basically the most popular ORM in Go. But like any abstraction or encapsulation, we need to be careful when using it. Misusing GORM can lead to unwanted errors or performance issues. In this post,…

See your reflection in GO

Recently I am working on a project with dynamic data types. In my case, I do not have strict data types and abstractions over user needs, but users define their own data types and their own rules. So it was kind of metaprogramming. When dynamic data types appear, developers will…

Deep Dive into Goroutines, Channels, and Runtime Internals in Go

This week at the office, I had a pretty normal day, but during a chat with one of my friends, they asked me some interesting questions about Go specifically, how Go’s locks, mutexes, and channels actually work under the hood. They were curious about how channels guarantee exactly-once delivery…

Replace Rabbits with Elephants: Use PostgreSQL as Message Queue

in one of my recent projects, I had a need for a message queue to handle background jobs across multiple services. But here’s the thing — this was the first version of my service, and I wanted to keep my Kubernetes cluster simple. I didn’t want to introduce another…

How to Use Web Workers in Angular for Heavy Tasks Without Freezing the UI

In modern web apps, especially in enterprise-level Angular projects, it’s easy to run into performance issues when handling large datasets, complex calculations, or background processing. One common problem? Your UI freezes because everything is running on the main thread. That's where Web Workers come in. In this…

Supercharging Go with CEL: Making Your Code More Dynamic

Lately, I’ve been working on some new projects, and one thing they all have in common is the need for a ton of flexibility — think dynamic filters, custom conditions, user-defined queries, and more. Basically, I needed a way to let users define their own logic without hardcoding every possible…

K8s Log Collection Using Loki and OTEL Collector

Logs are one of the fundamental pillars of application monitoring and observability. They are essential tools for debugging and troubleshooting—when something goes wrong, the first thing a software engineer typically does is check the logs. As a DevOps engineer, one of my key responsibilities is to make logs more…