All posts
Docker in Practice #4: Building Images in CI — GitHub Actions and BuildKit Cache
The standard for building and pushing Docker images in GitHub Actions. docker/build-push-action, BuildKit GHA cache (type=gha), multi-arch (amd64+arm64) builds, build-time secrets, and build-time optimization — all in a single workflow.
How LLMs Predict the Next Word — AI Explained for Non-Engineers
Learn how large language models like ChatGPT do not understand text but instead predict the next word by probability, explained so that anyone without a technical background can follow.
K8s Intermediate #7: RBAC / NetworkPolicy / ResourceQuota — Security and Resource Policy
The final post in the K8s Intermediate series. Through [#6](/en/posts/k8s-intermediate-6) we covered the workload operations model — controllers, persistent data, external entry points, resource model, health checks, autoscaling. This post covers the three objects `RBAC`, `NetworkPolicy`, and `ResourceQuota` that fill the last gap of multi-tenant operation, where multiple teams and environments share one cluster. The three dimensions of who can create objects, what traffic flows, and how much can be made are all bundled as namespace-level policy, and the real value of Namespace briefly noted in [Basics #7](/en/posts/k8s-basics-7) is unfolded by these three objects. Since this is the last post in the series, a 7-post retrospective and a preview of the next track (K8s Advanced) is also included.
Modern Python Advanced #5: GIL and concurrency — threading vs multiprocessing vs asyncio
What the GIL is, the role of threading/multiprocessing/asyncio, and the free-threaded build of Python 3.13–3.14 (PEP 703/779) — all in one place.
RHEL Advanced #3: Performance Analysis — sar, top/htop, iostat, vmstat, perf
Where to look first when a RHEL machine becomes slow. Get the first picture with top/htop, see CPU/memory/IO at once with vmstat, drill into disks with iostat, follow time with sar, and find CPU hotspots with perf — all framed by the USE (Utilization, Saturation, Errors) methodology in one cycle.
TypeScript Advanced #1: keyof and typeof
The two most fundamental tools for building types — using keyof to gather keys, typeof to derive types from values, and the patterns that become possible when they meet.
Angular Advanced #2 Signals in depth — computed, effect, model
A deep dive into Signals, Angular's new reactive model. We bring computed, effect, input/output/model, linkedSignal, and the cooperation with RxJS together in one place.
AWS Advanced #3: Lambda Basics
Where Lambda fits (vs ECS / EC2), runtime / handler / event / context, sync vs async invocation, cold start and Provisioned Concurrency, concurrency / limits, logging and monitoring — your first AWS serverless building block.
Django Advanced #2: Custom management commands
From what manage.py actually is, to BaseCommand subclassing, argument parsing, cron integration, call_command, and testing — the full picture of custom commands as one axis of Django operations.
Docker in Practice #3: React/Next.js Build Containers — standalone and the NEXT_PUBLIC Place
Wrapping a Next.js app into a container. The deps → build → runner three-stage pattern with standalone output, the build-time-baking issue with NEXT_PUBLIC env vars, the static-export option, and hosting a Vite SPA with nginx.
K8s Intermediate #6: Autoscaling — HPA / VPA / Cluster Autoscaler
The model covered through [#5](/en/posts/k8s-intermediate-5) was at the dimension of a single Pod's resources and health signals. But operational load swings with time, user patterns, and events, and having a person manually adjust `replicas` each time quickly hits a wall. This post walks through the three dimensions of autoscaling that fill that gap — `HPA` which auto-scales Pod count, `VPA` which auto-recommends and adjusts a Pod's resource requests/limits, and `Cluster Autoscaler` which auto-adds and removes nodes themselves — in one cycle. The metrics-server precondition, HPA's `autoscaling/v2` manifest and algorithm, the asymmetric `behavior` of scale up/down, custom metrics and KEDA, VPA's three components, HPA/VPA conflict, Karpenter — all included.
Modern Python Advanced #4: Async in depth — event loop, gather/wait, async generator
The next step from intermediate intro — how the event loop actually works, the difference between Future and Task, gather vs wait, async generator, and async iteration.