All posts
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
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
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
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
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
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__
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
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
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
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.