All posts

Docker Intermediate #3: docker compose Basics — web + db in One File
8 min read

Docker Intermediate #3: docker compose Basics — web + db in One File

A tool for defining several containers in one file and starting them with a single command. The service / network / volume structure of compose.yaml, a real web + postgres setup, and the day-to-day flow of up/down/logs/ps.

K8s Basics #1: What Is Kubernetes — Why Do We Need a Container Orchestrator?
12 min read

K8s Basics #1: What Is Kubernetes — Why Do We Need a Container Orchestrator?

You can run a single container with Docker. But what if you need 100 — and they need to restart on failure, scale with traffic, and survive a node going down? This first post in the series covers the limits of single-container tools, the problem container orchestrators solve, and the big picture of a Kubernetes cluster.

Modern Python Basics #6: Errors and exception handling
4 min read

Modern Python Basics #6: Errors and exception handling

The roles of try/except/else/finally, raise and user-defined exceptions, and the ExceptionGroup and except* introduced in 3.11.

RHEL Basics #7: Basic Security — firewalld, SSH Hardening
11 min read

RHEL Basics #7: Basic Security — firewalld, SSH Hardening

RHEL's firewall abstraction firewalld and its zone model, the firewall-cmd command set (permanent vs runtime), the four standard SSH hardening steps — disable password auth, key-based auth, lock down root login, change the port, split sshd_config.d. The final post of the series.

TypeScript Basics #1: Getting Started and Setup
8 min read

TypeScript Basics #1: Getting Started and Setup

What TypeScript is, why you would use it, and how to compile and run your first piece of code — all in one go.

Angular Basics #3: Data Binding and Events
8 min read

Angular Basics #3: Data Binding and Events

How Angular templates exchange data and user input — the four binding styles, plus reactive state management with signals.

AWS Basics #4: AWS CLI and SDK Setup
9 min read

AWS Basics #4: AWS CLI and SDK Setup

Installing aws cli v2, aws configure, profiles and the credentials file, how SDKs like boto3 / aws-sdk-js fit in, and the order in which the credential chain flows.

Build a Blog with Next.js #5: SEO and Deployment (Wrap-up)
8 min read

Build a Blog with Next.js #5: SEO and Deployment (Wrap-up)

Optimize for search engines with the metadata API, build sitemap and RSS, and deploy to Vercel. Wrap up with a retrospective across the series and the 31 React posts in total.

Django Basics #3: Models and ORM Basics
7 min read

Django Basics #3: Models and ORM Basics

Define Django models, walk the migration flow, set up ForeignKey/ManyToMany, and use QuerySet filter/get/exclude/order_by — all in one place.

Docker Intermediate #2: Build Cache — BuildKit and Layer Ordering
8 min read

Docker Intermediate #2: Build Cache — BuildKit and Layer Ordering

BuildKit-era build caching, in earnest. Spotting where layer cache breaks, sharing npm/pip caches across builds with --mount=type=cache, parallelizing builds with COPY --link, and external caches via GHA / registry.

Modern Python Basics #5: Functions — argument patterns
5 min read

Modern Python Basics #5: Functions — argument patterns

Defaults, *args/**kwargs, positional-only(/), keyword-only(*) — every tool for writing function signatures expressively.

RHEL Basics #6: Filesystem Basics — XFS, mount, /etc/fstab
10 min read

RHEL Basics #6: Filesystem Basics — XFS, mount, /etc/fstab

RHEL 9's default filesystem XFS and how it differs from ext4, viewing disks with lsblk / df / du, the full cycle of partitioning a new disk, formatting with mkfs.xfs, mounting it, registering permanently in /etc/fstab via UUID, and managing swap.