All posts

How Does Google Search Work? The Basics of Crawling, Indexing, and Ranking
5 min read

How Does Google Search Work? The Basics of Crawling, Indexing, and Ranking

This post explains, without any code, how Google returns millions of sorted results in under a second. It walks through the three stages — gathering pages by crawling, organizing them into an index, and deciding their order by ranking — at a non-developer's level.

Python Data Analysis #6 Visualization: matplotlib Fundamentals and Choosing Charts
7 min read

Python Data Analysis #6 Visualization: matplotlib Fundamentals and Choosing Charts

The minimal matplotlib structure understood through Figure and Axes, fast plotting with DataFrame.plot, picking the right chart for each purpose, fixing broken fonts in CJK environments, and saving with savefig — the visualization fundamentals in one post.

Red Hat Certified Engineer (RHCE) #8 Error handling: block/rescue/always, failed_when, ignore_errors
9 min read

Red Hat Certified Engineer (RHCE) #8 Error handling: block/rescue/always, failed_when, ignore_errors

The eighth post of the Red Hat Certified Engineer (RHCE) series. We cover the error handling that controls the flow when a playbook fails mid-run. From the exam point of view, we work through structuring exceptions with block/rescue/always, letting failures slide with ignore_errors, defining your own failure conditions with failed_when, and shoring up the idempotency of the command module with changed_when.

Red Hat Certified System Administrator (RHCSA) #5: Local Storage 1 — Partitions, swap, LVM basics
11 min read

Red Hat Certified System Administrator (RHCSA) #5: Local Storage 1 — Partitions, swap, LVM basics

The fifth post in the Red Hat Certified System Administrator (RHCSA) series. We check disks with lsblk and fdisk, create partitions with fdisk,parted, add swap with mkswap,swapon, build LVM with pvcreate,vgcreate,lvcreate, then mount it permanently with mkfs and fstab (UUID) — all typed out by hand. We carry RHCSA's most common task, "create an LVM and mount it," all the way through so it survives a reboot.

AWS Certified Developer - Associate (DVA-C02) #6 Domain 1-5 Development with AWS Services — SDK Development Patterns
5 min read

AWS Certified Developer - Associate (DVA-C02) #6 Domain 1-5 Development with AWS Services — SDK Development Patterns

The fifth post of the DVA-C02 development domain. It covers the common patterns that recur when calling services with the AWS SDK: pagination, exponential backoff and jitter for handling throttling and transient errors, idempotency implementation, S3 multipart upload and presigned URLs, and the SDK credential provider chain along with region and retry configuration, all at the exam level.

Build an Online Shop with Next.js #1: Getting Started and Design
9 min read

Build an Online Shop with Next.js #1: Getting Started and Design

Build an online shop from scratch with the Next.js App Router. The first post covers requirements, tech decisions, route structure, the product data model, and project setup.

Certified Kubernetes Administrator (CKA) #15 Resource Management: requests/limits, QoS, LimitRange, ResourceQuota
10 min read

Certified Kubernetes Administrator (CKA) #15 Resource Management: requests/limits, QoS, LimitRange, ResourceQuota

The 15th post in the Certified Kubernetes Administrator (CKA) series. We lay out how requests and limits reserve and cap cpu and memory, the difference between CPU throttling and memory OOMKilled, and how the three QoS classes — Guaranteed, Burstable, BestEffort — decide eviction order. Then we work through the operational policies that enforce container defaults with LimitRange and namespace totals with ResourceQuota, all in YAML.

Certified Kubernetes Application Developer (CKAD) #10 Kustomize: The Overlay Pattern and Per-Environment Manifests
10 min read

Certified Kubernetes Application Developer (CKAD) #10 Kustomize: The Overlay Pattern and Per-Environment Manifests

The tenth post in the Certified Kubernetes Application Developer (CKAD) series. It covers Kustomize, which transforms manifests per environment without templates. From the core fields of kustomization.yaml to the base/overlays structure, patchesStrategicMerge and JSON6902 patches, the hash-based rolling of configMapGenerator and secretGenerator, and the build-and-apply flow via the -k flag — organized from a hands-on exam perspective.

Certified Kubernetes Security Specialist (CKS) #8: kernel hardening, capabilities, /proc protection
11 min read

Certified Kubernetes Security Specialist (CKS) #8: kernel hardening, capabilities, /proc protection

The eighth post of the Certified Kubernetes Security Specialist (CKS) series. We cover how to strip privileges from containers with securityContext to shrink the attack surface. From the drop-ALL-then-add-only-what-you-need pattern for Linux capabilities, to the dangers of privileged and allowPrivilegeEscalation, runAsNonRoot and readOnlyRootFilesystem, /proc masking via procMount, and blocking hostPID/hostNetwork/hostIPC and host path mounts — all pulled together into a hardened YAML example.

How Do Chatbots Answer? The Difference Between Rule-Based and AI Chatbots
4 min read

How Do Chatbots Answer? The Difference Between Rule-Based and AI Chatbots

This post explains, without any code, how a support chatbot produces its answers. It covers the difference between rule-based chatbots that follow a fixed path and AI chatbots that understand sentences, how the two are mixed in practice, and the limit of hallucination, at a non-developer's level.

Python Data Analysis #5 Grouping and Joining: groupby, pivot_table, merge
6 min read

Python Data Analysis #5 Grouping and Joining: groupby, pivot_table, merge

Starting from the classic sales-by-branch-by-month question, we build a mental model for groupby, multi-stat aggregation with agg, pivot_table for Excel users, and merge and concat as the pandas counterparts of SQL JOIN — plus the habit of checking row counts after every join.

Red Hat Certified Engineer (RHCE) #7: Jinja2 Templates — Filters, Control Flow, and lookup
4 min read

Red Hat Certified Engineer (RHCE) #7: Jinja2 Templates — Filters, Control Flow, and lookup

The seventh post in the Red Hat Certified Engineer (RHCE) series. We render .j2 files into per-host configuration with the template module, cover Jinja2 syntax for variable output, for, and if, plus filters like default, upper, join, and to_nice_yaml, read files and environment variables with lookup, and even handle whitespace control — all in the form the exam asks for.