All posts

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.

Why Simple-Looking Features Take So Long — Development Estimates and Technical Debt
5 min read

Why Simple-Looking Features Take So Long — Development Estimates and Technical Debt

This post answers the question, "It's just adding one button, so why does it take two weeks?" Without any code, it unpacks the work hidden behind a small visible change, and what technical debt is and how it eats into development speed.