All posts

Django Basics #5: Templates and Static Files
8 min read

Django Basics #5: Templates and Static Files

Django template syntax (variables/tags/filters), template inheritance, and handling static files (CSS/JS/images) — all in one place.

Docker Intermediate #4: Compose Deep Dive — depends_on, healthcheck, profiles
8 min read

Docker Intermediate #4: Compose Deep Dive — depends_on, healthcheck, profiles

Adding operational sense to compose.yaml. healthcheck for whether the DB is actually ready, depends_on with conditions for meaningful startup order, and profiles to fork dev/test/prod inside one file. Plus override files and restart policies.

K8s Basics #2: Local Environments — minikube / kind / Docker Desktop k8s
10 min read

K8s Basics #2: Local Environments — minikube / kind / Docker Desktop k8s

Time to actually meet the control plane / worker picture from [#1](/en/posts/k8s-basics-1). Compare the three ways to run K8s on a laptop (minikube / kind / Docker Desktop k8s), install kubectl, and bring up your first cluster with kind — through to inspecting the nodes and system pods.

Modern Python Basics #7: Modules/packages and pyproject.toml
4 min read

Modern Python Basics #7: Modules/packages and pyproject.toml

The import system, the difference between modules and packages, __init__.py and __main__, and pyproject.toml for dependencies, tool config, and distribution — all in one place.

RHEL Intermediate #1: Intro to SELinux — Enforcing/Permissive, Labels, Troubleshooting
14 min read

RHEL Intermediate #1: Intro to SELinux — Enforcing/Permissive, Labels, Troubleshooting

A beginner-friendly introduction to SELinux, RHEL's last security layer. Covers the three modes Enforcing/Permissive/Disabled, the shape of labels (context) attached to every file and process, viewing them with ls -Z / ps -Z, fixing labels with chcon/restorecon, making permanent changes via semanage fcontext, toggling booleans, and troubleshooting AVC denials with audit2allow and sealert.

TypeScript Basics #2: Basic Types
4 min read

TypeScript Basics #2: Basic Types

The basic types you will use every day — string, number, boolean, array, tuple, object, enum, any/unknown — all in one place.

Angular Basics #4: Directives and Pipes
9 min read

Angular Basics #4: Directives and Pipes

Two tools that take template expressiveness up a notch — Directives and Pipes. Centered on Angular 17 new control flow (@if, @for, @switch), this post covers built-ins and how to write your own.

AWS Basics #5: CloudShell and IAM Identity Center (SSO)
9 min read

AWS Basics #5: CloudShell and IAM Identity Center (SSO)

CloudShell — the in-browser terminal — and IAM Identity Center (SSO), the standard login for multi-account, all the way through to the aws cli sso login flow.

Django Basics #4: URL and Views (FBV)
7 min read

Django Basics #4: URL and Views (FBV)

URLconf path/include, URL parameters, function-based views (FBV), render/JsonResponse/get_object_or_404, named URLs and reverse — all in one place.

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.