All posts

AWS in Practice #4: IaC — Terraform Fundamentals
10 min read

AWS in Practice #4: IaC — Terraform Fundamentals

Why IaC, Terraform shape of provider / resource / state, team collaboration with S3 + DynamoDB backend, environment separation through modules, and the flow of code-ifying the #1–#3 infrastructure line by line.

Django DRF #3: Filtering / Ordering / Pagination
8 min read

Django DRF #3: Filtering / Ordering / Pagination

Search filters with django-filter, OrderingFilter/SearchFilter, and a comparison of where PageNumber/LimitOffset/Cursor pagination fit best.

K8s Practice #1: EKS Cluster Setup — Terraform / eksctl / IRSA / Addons
12 min read

K8s Practice #1: EKS Cluster Setup — Terraform / eksctl / IRSA / Addons

The first post in the K8s Practice series. We follow the path of building a real operational cluster rather than a toy abstraction. Defining the VPC and EKS cluster with Terraform, setting up node groups and IRSA, laying on the essential addons (VPC CNI, CoreDNS, kube-proxy, EBS CSI), and comparing eksctl as a faster setup option along the way. The starting point for the imaginary service myshop-api used throughout the 6-post series.

Modern Python in Practice #5: Async and Background Tasks
7 min read

Modern Python in Practice #5: Async and Background Tasks

Where async routes fit, post-response processing with BackgroundTasks, the boundary where external queues (Celery, ARQ) become necessary, and how to safely mix sync libraries.

RHEL in Practice #3: Container Workloads — Podman, systemd (quadlet)
9 min read

RHEL in Practice #3: Container Workloads — Podman, systemd (quadlet)

The third post in the RHEL in Practice track. Putting the web and DB we stood up by hand in #1 and #2 back up as containers, we organize the operational flow of Podman, RHEL's standard container engine. Image pull and run, volumes and port mapping, rootless containers, and integrating containers as systemd services with quadlet for automatic startup at boot — all in one cycle.

Testing #5 — User Events and Form Tests: Where userEvent Belongs
8 min read

Testing #5 — User Events and Form Tests: Where userEvent Belongs

All about user input and form submission. The difference between userEvent and fireEvent, the patterns of type/clear/click/keyboard/upload, form tests on top of React Hook Form, validation error scenarios, and what a form test should really verify.

What the Padlock in Your Address Bar Protects — HTTPS and Encryption
4 min read

What the Padlock in Your Address Bar Protects — HTTPS and Encryption

This post explains, without any code, what the padlock icon and HTTPS actually protect. It covers how communication is encrypted, why services do not store your password as is, and how two-factor authentication helps, all at a non-developer's level.

Angular in Practice #2: Authentication and HTTP Interceptor
10 min read

Angular in Practice #2: Authentication and HTTP Interceptor

Filling the dashboard skeleton with an auth flow. Reactive Forms login, an AuthService that holds the token in a signal, a functional Auth Guard, and an HTTP Interceptor that automatically attaches the token to every request — a full lap around auth in modern Angular.

AWS Certified Cloud Practitioner (CLF-C02) #4 Domain 2-1 Security — Shared Responsibility Model and IAM Basics
9 min read

AWS Certified Cloud Practitioner (CLF-C02) #4 Domain 2-1 Security — Shared Responsibility Model and IAM Basics

The first half of Domain 2 (30%), the largest-weighted domain of the CLF-C02 exam. Where the responsibility line falls between AWS and the customer (and how that shifts with the service model), the four IAM essentials — users, groups, roles, and policies — and how they differ, operating principles for MFA and access keys, and a root user guide that often appears as an exam trap. The next post #5 continues with compliance certifications, AWS Artifact, and encryption.

AWS in Practice #3: CI/CD — GitHub Actions + ECR + ECS
10 min read

AWS in Practice #3: CI/CD — GitHub Actions + ECR + ECS

GitHub Actions without access keys via OIDC, ECR push, automatic Task Definition updates, ECS Service rolling deployments, deployment circuit breakers and auto-rollback, and a touch of CodeDeploy blue/green — a deployment flow that ends with a single git push.

Django DRF #2: Authentication/Permissions — Token, JWT, custom permission
8 min read

Django DRF #2: Authentication/Permissions — Token, JWT, custom permission

DRF authentication backends (Session/Token/JWT), permission classes, and object-level custom permissions like IsOwner — all in one place.

K8s Advanced #6: GitOps — ArgoCD / Flux
11 min read

K8s Advanced #6: GitOps — ArgoCD / Flux

The last post in the K8s Advanced series. GitOps — the operational model where the source of truth for manifests lives in git and a controller inside the cluster watches git to sync automatically. Covers the difference between push and pull models, ArgoCD's Application CRD and sync wave, Flux's Source / Kustomization / HelmRelease, directory structure patterns, and how to safely store secrets in git via Sealed Secrets / External Secrets. Also includes a 6-post K8s Advanced retrospective and a preview of the next track, K8s Practice.