Debugging bash scripts

Unlike many programming languages, shell(bash) scripting has no official tool for debugging. Besides the classic “prints”, I was not aware that bash has some built-in mechanisms for tracing, until I...

Have you heard of Heap's algorithm

I recently encountered a problem on HackerRank named “Bigger is Greater”: https://www.hackerrank.com/challenges/bigger-is-greater/problem. The problem statement is as follows: given a string, the solution program needs to find the...

Resolving cert-manager HTTP-01 challenge behind a Hetzner load balancer

If you are running Kubernetes on the top of Hetzner cloud, you may have encountered an annoying issue when trying to obtain a TLS certifcate for a domain through the...

Solving Flatland Space Stations on HackerRank: Golang vs Python

Solving programming puzzles is a good way to get reminded of software engineering fundamentals like algorithms and data structures. For this reason, I try to pick up a programming puzzle...

adding default values to github.com/gorilla/schema

Around July 2021, I made a proposal to add a new functionality to github.com/gorilla/schema library: the possiblity to set default values when the target struct field value is nil...

Helm contribution note: fixing post install hook deletion failure due to before-hook-creation policy

After over one year and 4 months, I was happy to see the PR #11387 that I have submitted to the helm project finally accepted and merged. I...

a Kubernetes Operator for renewing ECR credentials cluster wide

If you have used AWS ECR service (AWS container registry) before, you must be already aware that the registry credentials are only valid for 12 hours. It can...

I survived a disastrous upgrade from Ubuntu 20.04 to 22.04

Last time I upgraded Ubuntu from 18.04 to 20.04, I almost swore I will never upgrade again. I encountered a kernel issue which prevented the pc from booting up. The...

ArgoCD & helm: help, my configmap keeps on getting reset!

I needed recently to track an issue with a kubernetes configmap that was reset after each ArgoCD (continuous delivery for Kubernetes) synchronization. I have to say that I...

Launched a new course about extending Keycloak (in Udemy)

After working on extending Keycloak extensively for the past few years, I decided to compile all the best practices, the tips, the...