All posts
TypeScript Advanced #6: Modules and .d.ts
How to handle and extend the types of external libraries — declaration files (.d.ts), the declare keyword, module augmentation, and adding global types.
Angular Advanced #7 Performance tuning — Virtual Scroll, Image, Profiler
Angular app performance, organized by three layers — build, runtime change detection, and resources. Virtual Scroll, NgOptimizedImage, Angular DevTools Profiler, and the defer block — the tools that actually pay off in large apps, all in one place.
AWS Certified Cloud Practitioner (CLF-C02) #2 Domain 1-1 Cloud Concepts — Value, Economics, and the Cloud Adoption Framework
The first half of CLF-C02 Domain 1. The six value propositions of the cloud that show up in the exam, the cost-structure shift from CapEx to OpEx, the six perspectives of the AWS Cloud Adoption Framework, and how the global infrastructure (regions, AZs, edge) gets reshaped into exam questions. Series #3 continues with the second half of the same domain — the six Well-Architected pillars.
AWS in Practice #1: Deploying FastAPI/Django to ECS Fargate
Push a container image to ECR, write a Task Definition, and stand it up as an ECS Fargate Service behind an ALB — the full flow of putting a small blog API into production, in a single post.
Django Advanced #7: Deployment security — settings split, ALLOWED_HOSTS, CSRF, secret management
Settings split patterns, django-environ, DEBUG/ALLOWED_HOSTS/CSRF/HSTS, SECRET_KEY management, and manage.py check --deploy — what to verify before putting Django into production.
K8s Advanced #4: CRD and the Operator Pattern — controller-runtime
One reason K8s is powerful is that you can extend its API itself. Defining new object kinds with CustomResourceDefinition and writing a reconcile loop for those objects with controller-runtime makes domain objects live as standard resources on top of K8s. Objects with names like PostgresCluster, RedisFailover, KafkaBroker are the result. This post organizes the CRD model, an Operator skeleton based on controller-runtime, and ownerReference / finalizer / status subresource — all in one cycle.
Modern Python in Practice #2: Routing, Pydantic Models, and Dependency Injection
Splitting routes with APIRouter, defining input/output schemas with Pydantic v2, and unraveling shared logic cleanly with Depends.
RHEL Advanced #7: Cockpit for GUI Management and Web Console — Series Wrap
The RHEL Advanced series so far has been all CLI, but Cockpit is the standard tool that adds a lightweight web GUI on top. The web console covers systemd, services, users, networking, storage, Podman, kdump, and SELinux on one screen, lets you manage multiple machines from a dashboard, integrates sosreport and diagnostic tools, and handles the kinds of work better done in Cockpit than by SSHing in to edit with vi — as we wrap the series.
Testing #2 — Vitest Setup and Your First Unit Test (describe / it / expect)
Wire Vitest into a project and write your first test against the simplest possible function. The Jest comparison takes one paragraph — the real focus is the meaning of describe/it/expect, watch mode, where vitest.config.ts lives, and the small wrinkles between your first failure and your first pass.
TypeScript Advanced #5: Discriminated unions and type guards in depth
Modeling for safely handling data of multiple shapes — discriminated unions, user-defined type guards, assertion functions, and branded types.
Angular Advanced #6 SSR — Angular Universal and Hydration
Angular's SSR model, Hydration, TransferState, and pre-rendering — modern Angular's server-side rendering, all in one place.
AWS Advanced #7: Step Functions
Where state machines fit, the four states (Task / Choice / Parallel / Map), Standard vs Express, Lambda / ECS / SDK integrations, error handling with retry / catch, common patterns — the AWS workflow service.