All posts
TypeScript + React in Practice #5: Context and generic components
Type-argument patterns for createContext, a safe useContext helper, and how to build reusable List/Select-like components with generic components.
Angular Intermediate #7: Testing — TestBed and Component Tests
Verifying Services and components with Angular's standard test environment, TestBed, plus mock injection, the HttpTestingController pattern, and ComponentHarness.
AWS Advanced #1: ECS and Fargate — Container Deployment
ECS and where it fits (vs EKS), the four pieces (Cluster / Service / Task / Task Definition), EC2 launch type vs Fargate, hooking up ALB / VPC, and your first container deployment — how to put a container on AWS, end to end.
Django Intermediate #7: Testing — Django TestCase, fixtures, pytest-django
TestCase and Client, fixtures vs factory_boy, the fixture model of pytest-django — Django ecosystem testing tools, all in one place.
Docker in Practice #1: Containerizing FastAPI — uv, Multi-stage, non-root
First post of the practice series. Containerizing the most common scenario — a FastAPI app. Slim base on uv, multi-stage to separate build from runtime deps, a non-root user, and HEALTHCHECK — in a shape that goes straight to production.
K8s Intermediate #4: resources.requests / limits — Pod Resource Requests and Limits
[#3](/en/posts/k8s-intermediate-3) covered the path of external traffic into the cluster. This post moves the viewpoint back inside the Pod — the model of how a container requests and is limited on CPU and memory. `resources.requests` is what the scheduler sees when picking a node; `resources.limits` is the runtime cap kubelet enforces. This post walks through the separation of the two, QoS classes (Guaranteed / Burstable / BestEffort), the difference between CPU throttling and OOMKilled, JVM/Go runtime cgroup awareness, and the pattern of setting namespace defaults via `LimitRange` — all in one cycle.
Modern Python Advanced #2: Descriptors and __set_name__
How property works — the __get__/__set__ protocol and data/non-data descriptors, and clean validation fields with __set_name__.
RHEL Intermediate #7: Intro to Containers — Podman/Buildah/Skopeo
RHEL 9's container standard is Podman. This post looks at how it uses nearly the same commands as Docker while running without a daemon, defaulting to rootless mode, and integrating naturally with systemd — all from an operational perspective. Also covered: building images with Buildah and moving them between registries with Skopeo.
TypeScript + React in Practice #4: Typing events and forms
What types to use for React event objects and how to type controlled/uncontrolled forms in TypeScript — with practical patterns.
Angular Intermediate #6: Guards and Resolvers
Angular's Guards and Resolvers — tools that intercept the flow before a route is entered. Function-based canActivate, canMatch, canDeactivate, plus Resolvers that pre-fetch data.
AWS Intermediate #7: CloudFront for static site delivery
AWS's global CDN, CloudFront. The Origin / Behavior / Cache Policy flow, the S3 + CloudFront static-hosting pattern, how OAC fronts S3 safely, and the operational side of invalidations.
Django Intermediate #6: Static/Media Operations and Storage Backends
The difference between STATIC_* and MEDIA_*, the meaning of collectstatic, and storage backends like S3/WhiteNoise — the place where development crosses over to production.