All posts
TypeScript Basics #7: Utility Types and tsconfig
Standard utility types you will use every day (Partial/Pick/Omit/ReturnType, etc.) and the key tsconfig.json options that control compile behavior — wrapping up the series.
Angular Intermediate #2: Template-driven Forms and a Comparison
Angular's other form approach — Template-driven Forms — and how it compares to the Reactive Forms we just covered. Which one to pick when, and why.
AWS Intermediate #3: S3 — static hosting and presigned URLs
AWS's oldest object storage, S3. The shape of a bucket and the global uniqueness of names, policies and Public Access Block, static site hosting, presigned URLs, and how to lower cost with storage classes.
Django Intermediate #2: ORM Advanced — annotate, aggregate, F/Q, prefetch_related
The proper Django ORM tools — aggregation, expressions, complex conditions, relation prefetch. The N+1 problem and how to solve it.
Docker Advanced #2: Multi-Architecture Images — amd64 and arm64 Together
The "image built on Apple Silicon doesn't run on the production server" incident vanishes with one multi-arch build line. The shape of a manifest list, the cost of QEMU emulation, native ARM builders, and verifying results with docker buildx imagetools.
K8s Basics #6: ConfigMap and Secret — Splitting Out Configuration
Through [#5](/en/posts/k8s-basics-5), one thing in our manifest is still awkward — image tags, ports, and domains are written directly into it. This post pulls those out into two objects: ConfigMap and Secret. The K8s way to apply the 12-factor "store config in the environment" rule, three injection methods (env / envFrom / volume), the one-line caveat that Secret is not actually encryption, and why a Pod restart is needed when config changes.
Modern Python Intermediate #4: Iterables/generators/yield from
How for works — the iterable protocol, generator functions and expressions, delegation with yield from, and send/throw — all in one place.
RHEL Intermediate #5: Log Management — journald, rsyslog, log rotation
RHEL 9 uses journald as the primary log tool and rsyslog as the secondary, with text log files rotated automatically by logrotate. This post covers journald's retention policy and disk usage control, rsyslog's continuing role as the old-guard standard, the flow of collecting logs on a central server, and how to write logrotate rules from scratch — all from an operational perspective.
TypeScript Basics #6: Generics in Depth
Tools that draw out the real expressive power of generics — constraints, multiple type parameters, generic interfaces/classes, keyof, and indexed access types.
Angular Intermediate #1: Reactive Forms and Form Validation
Wrapping up Reactive Forms — the standard for production Angular forms. FormGroup, FormControl, Validators, plus custom Validators, FormArray, and async validation, all in one go.
AWS Intermediate #2: EC2 Operations — security group, key pair, SSM
The daily tools of EC2 operations — designing Security Group rules, how NACLs sit differently, the limits of key pairs and SSM Session Manager, plus baking your AMI to harden the instance skeleton.
Django Intermediate #1: Class-Based Views in Depth
From FBV to CBV — Generic CBVs (ListView/DetailView/CreateView/UpdateView/DeleteView), Mixin patterns, and the override points you need to know.