Tech

TIL: Docker Namespaces

Ever wondered how containers have their own processes, networks, and even file systems — completely separate from the host? That magical isolation isn’t just some Docker black box, it’s built on a powerful Linux kernel feature called namespaces. But first, don’t confuse Docker namespaces with Kubernetes namespaces, they are completely different. Docker namespaces are about…

Tech

My Experience with LG Ultragear 32GS60QC (32 inch)

As a backend engineer who spends long hours juggling IDEs, terminals, browser tabs, and dashboards, the right monitor setup is more than just a luxury — it’s a necessity. After weeks of research, I picked up the LG UltraGear™ 32GS60QC, a curved 32-inch QHD monitor with solid specs at a reasonable price. Here’s my review…

Scala

TIL: Value Classes

Value classes are a super neat way to improve type safety in your code without paying the price of object creation at runtime. In many programming languages, especially on the JVM, it’s easy to pass around raw primitives or strings like IDs, tokens, etc. But doing that often leads to bugs like accidentally swapping a…

Tech

How to Check If a Private Key Matches a Certificate

When working with SSL, SAML, JWT, or other cryptographic systems, it’s essential to ensure that your private key and certificate actually belong to each other. A mismatch can lead to hours of frustrating errors like: Failed to decrypt Invalid signature No matching private key found I have encountered few of those errors and didn’t explored…

Scala

How to Serialize and Deserialize UUID in Json4s

When working with UUIDs in Scala using json4s, you might run into issues serializing and deserializing UUID objects by default. Json4s does not handle java.util.UUID out-of-the-box. Fortunately, there’s a simple and elegant solution using JavaTypesSerializers. To enable UUID support in json4s, you can add JavaTypesSerializers.all to your implicit formats: When working with Java types like…

Tech

IdP-Initiated SAML Flow vs SP-Initiated SAML Flow

In Single Sign-On (SSO) using Security Assertion Markup Language (SAML), there are two primary flows: Identity Provider (IdP)-initiated and Service Provider (SP)-initiated. Here’s a detailed comparison between the two: 1. SP-Initiated SAML Flow Flow: User Requests Access: The user tries to access a resource or application (the SP). Redirect to IdP: The SP redirects the…

Tech

What is kube config in rancher?

Rancher is a widely-used open-source platform for managing Kubernetes clusters. It provides various features and tools to simplify the deployment, management, and operation of Kubernetes clusters. One important aspect of working with Rancher and Kubernetes is understanding the kube config. What is kube config? In Rancher, the kube config is a configuration file that contains…

TIL

TIL: What is gotmpl

Gotmpl is a command-line tool designed to simplify the management of configuration templates in Go projects. It is inspired by the popular template engine in Go’s standard library, text/template, but adds several enhancements and features tailored specifically for managing configuration files. We can use to for helm configurations Key Features of gotmpl: Templating Engine: Gotmpl…

Helm
Tech

Solving “no matches for kind PodDisruptionBudget in version “policy/v1beta1” in helm install

If you’ve encountered the error message “no matches for kind PodDisruptionBudget in version ‘policy/v1beta1′” while installing a Helm chart, don’t worry; you’re not alone. This error often occurs when trying to deploy Helm charts on Kubernetes versions 1.25 and later because these newer versions no longer support the apiVersion policy/v1beta1 for certain resources, including PodDisruptionBudget….