All posts
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.
Angular Basics #5: Service and Dependency Injection
Service and dependency injection (DI) — the tools that pull business logic and shared state out of components in Angular.
AWS Basics #6: Security Basics — MFA, Key Rotation, Least Privilege
Enforcing MFA on root and IAM users, automating access-key rotation, auditing permissions with IAM Access Analyzer, least-privilege patterns, and the incidents you actually see in production.
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
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
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
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
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
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
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)
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.