2024

Code Coverage: Misusage and Proper Usage

TL;DRs Blindly aiming for high coverage can degrade test quality as developers may prioritize increasing coverage metrics over writing meaningful, effecti...

Preventing Flaky Tests and Brittle Tests

Flaky tests and brittle tests are two common pitfalls that make our tests unreliable and hard to maintain. In this post, I will illustrate these concepts wit...

Back to top ↑

2023

Provision an Amazon EKS cluster with AWS CDK

Amazon EKS (Elastic Kubernetes Service) is a fully managed Kubernetes service that simplifies building, securing, operating, and maintaining Kubernetes clust...

Property Based Testing with Hypothesis

What is Property Based Testing? Property based testing, which is known to be originated by QuickCheck, is a testing technique which randomly generates test c...

Configuring GitOps with Argo CD

In this post, I am going to share my experience of configuring GitOps for a continuous deployment process. (FYI, you may refer to the following content for c...

Scheduling

A CPU scheduler is an operating system module that decides which process in the ready queue is allocated a CPU. It checks all of the tasks in the ready queue...

Thread Design Considerations

Thread Data Structures A user-level threading library has its own user-level thread data structure to represent threads in order to schedule and synchronize ...

Back to top ↑

2022

Consumer-Driven Contract Testing with Pact

Consumer-driven contract testing (or CDC for short) is a testing methodology that ensures that providers are compatible with the expectations that the consum...

pthreads

pthreads stands for POSIX Threads which is the de facto standard threading related API that operating systems need to support for thread managements. Almost ...

Threads and Concurrency

A traditional process has a single execution context that can only execute at one CPU at a given point of time. If a process can have multiple execution cont...

Processes

Definition A process is an instance of an executing program. It is also referred to as a “task” or “job”.

Operating System Overview

Definition An operating system, or OS, is just a software that abstracts and arbitrates the underlying hardware components in computer systems.

Back to top ↑

2021

Python Descriptors

A descriptor in Python is a class attribute which defines any of the special methods: __get__(self, obj, owner=None) -> value __set__(self, obj, valu...

Timsort

Most programmers would be familiar with some fundamental sorting algorithms such as bubble sort, selection sort, insertion sort, and merge sort. Then which a...

Understanding HTTP with netcat

Any web developer would know about HTTP buy may not be familiar with the exact syntax of it because it’s abstracted by the network libraries.

Back to top ↑