All posts

K8s Basics #4: Deployment and ReplicaSet — Declarative Deploys and Rolling Updates
14 min read

K8s Basics #4: Deployment and ReplicaSet — Declarative Deploys and Rolling Updates

A follow-up to the closing line of [#3](/en/posts/k8s-basics-3) — Pods are mortal, they just disappear when they die. This post writes a controller manifest for the first time. We pin down the three layers Deployment / ReplicaSet / Pod, watch auto-recovery when one Pod is deleted under replicas: 3, see how a one-character image-tag change drives a rolling update, and roll back a bad version with one command.

Modern Python Intermediate #2: typing in earnest — Generic, Protocol, TypedDict, Literal
4 min read

Modern Python Intermediate #2: typing in earnest — Generic, Protocol, TypedDict, Literal

The next step from basics type hints — Generic for parameterizing types, Protocol for precise duck typing, TypedDict for dict shapes, and Literal for narrow unions.

RHEL Intermediate #3: Advanced Storage — Stratis, NFS, Samba
11 min read

RHEL Intermediate #3: Advanced Storage — Stratis, NFS, Samba

Storage operations that reach beyond a single machine. Stratis is a storage manager built on top of LVM+XFS that lets you handle thin provisioning and snapshots with ease. NFS is the standard for sharing directories between Linux machines, and Samba is the file-sharing protocol that Windows clients can use. This post covers the setup and operation of all three tools in one place.

TypeScript Basics #4: Union / Literal / Narrowing
5 min read

TypeScript Basics #4: Union / Literal / Narrowing

Union types and literal types for expressing values that are one of several possibilities, plus narrowing patterns to refine the type inside branches — all in one place.

Angular Basics #6: Router Basics
7 min read

Angular Basics #6: Router Basics

How to lay out the skeleton of a multi-page SPA with Angular Router. From provideRouter setup to routerLink, dynamic parameters, child routes, and lazy loading — all in one place.

AWS Basics #7: CloudWatch Intro — Logs and Metrics
10 min read

AWS Basics #7: CloudWatch Intro — Logs and Metrics

CloudWatch Logs / Metrics / Alarms / Dashboards, log groups and retention, Metric Filters, and the basics of Logs Insights queries — the eyes of every production system.

Django Basics #6: Forms and ModelForm
8 min read

Django Basics #6: Forms and ModelForm

Validation, error display, and CSRF in one Django Form, auto-generate forms from models with ModelForm, and the file-upload pattern.

Docker Intermediate #5: Environment Variables and Secrets
8 min read

Docker Intermediate #5: Environment Variables and Secrets

The shapes of env-var injection, .env files and variable interpolation, env_file vs. environment, compose secrets, BuildKit build-time secrets, and the most common mistake of baking secrets into an image.

K8s Basics #3: kubectl and Your First Pod
13 min read

K8s Basics #3: kubectl and Your First Pod

Time to put your first workload onto the cluster from [#2](/en/posts/k8s-basics-2). We pin the kubectl command pattern in one table, bring up a first Pod imperatively with kubectl run, then rewrite the same shape as a YAML manifest. We inspect the Pod with describe / logs / exec, and end on the question — why one Pod is not enough, which is exactly why the next post needs Deployment.

Modern Python Intermediate #1: dataclass and __slots__
4 min read

Modern Python Intermediate #1: dataclass and __slots__

Every option of @dataclass for short, safe data classes — frozen, kw_only, field() — and __slots__ for memory savings.

RHEL Intermediate #2: LVM — PV/VG/LV, Snapshots, Expansion
13 min read

RHEL Intermediate #2: LVM — PV/VG/LV, Snapshots, Expansion

LVM, the standard for RHEL 9 disk operations, covered in depth. The abstraction layer between physical disks and the filesystem, the three-layer relationship of PV/VG/LV, the full flow of adding a new disk to expand an LV, capturing a pre-backup state with snapshots and rolling back, and thin provisioning and RAID options — all in one post.

TypeScript Basics #3: interface and type alias
5 min read

TypeScript Basics #3: interface and type alias

Two tools for naming and reusing object types — interface and type alias — how to use them, the differences, and when to pick which.