<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Beginner on Dev &amp; Platform Engineering Hub</title><link>https://rhidayat.work/level/beginner/</link><description>Recent content in Beginner on Dev &amp; Platform Engineering Hub</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 Rachmat Hidayat</copyright><lastBuildDate>Mon, 10 Aug 2026 00:20:00 +0000</lastBuildDate><atom:link href="https://rhidayat.work/level/beginner/index.xml" rel="self" type="application/rss+xml"/><item><title>Kubernetes Ep 4: Deployments, ReplicaSets &amp; Self-Healing Scaling</title><link>https://rhidayat.work/series/kubernetes/04-deployments-replicasets-and-scaling/</link><pubDate>Mon, 10 Aug 2026 00:20:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/04-deployments-replicasets-and-scaling/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 While Pods are the basic building blocks of Kubernetes, you should rarely deploy bare Pods directly. Instead, production applications use &lt;strong&gt;Deployments&lt;/strong&gt;, a higher-level abstraction that manages &lt;strong&gt;ReplicaSets&lt;/strong&gt; to guarantee high availability, self-healing, and seamless scaling.
&lt;/div&gt;</description></item><item><title>Kubernetes Ep 3: kubectl CLI &amp; Launching Your First Pod</title><link>https://rhidayat.work/series/kubernetes/03-kubectl-cli-and-first-pod/</link><pubDate>Mon, 10 Aug 2026 00:15:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/03-kubectl-cli-and-first-pod/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 The &lt;strong&gt;&lt;code&gt;kubectl&lt;/code&gt;&lt;/strong&gt; command-line interface is the primary tool platform engineers and developers use to interact with Kubernetes clusters. In this episode, we&amp;rsquo;ll configure &lt;code&gt;kubectl&lt;/code&gt; and deploy our first atomic Kubernetes primitive: the &lt;strong&gt;Pod&lt;/strong&gt;.
&lt;/div&gt;</description></item><item><title>Kubernetes Ep 2: Architecture - Control Plane &amp; Worker Nodes</title><link>https://rhidayat.work/series/kubernetes/02-architecture-control-plane-and-worker-nodes/</link><pubDate>Mon, 10 Aug 2026 00:10:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/02-architecture-control-plane-and-worker-nodes/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 A Kubernetes cluster consists of two primary logical layers: the &lt;strong&gt;Control Plane&lt;/strong&gt; (the cluster&amp;rsquo;s brain) and &lt;strong&gt;Worker Nodes&lt;/strong&gt; (the muscle that runs application containers). Understanding how these components communicate is crucial for cluster administration and troubleshooting.
&lt;/div&gt;</description></item><item><title>Kubernetes Ep 1: Introduction to Kubernetes &amp; Containers</title><link>https://rhidayat.work/series/kubernetes/01-introduction-to-kubernetes-and-containers/</link><pubDate>Mon, 10 Aug 2026 00:05:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/01-introduction-to-kubernetes-and-containers/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 The evolution of modern infrastructure has transitioned from physical bare-metal servers to Virtual Machines (VMs), lightweight OCI Containers, and ultimately automated Container Orchestration platforms like &lt;strong&gt;Kubernetes&lt;/strong&gt;.
&lt;/div&gt;</description></item><item><title>Kratix Ep 8: Developer Self-Service Workflow</title><link>https://rhidayat.work/series/kratix/08-developer-self-service-workflow/</link><pubDate>Sun, 09 Aug 2026 21:20:00 +0000</pubDate><guid>https://rhidayat.work/series/kratix/08-developer-self-service-workflow/</guid><description>We have spent 7 episodes architecting a massively scalable, secure backend. But if the Developer Experience (DX) is terrible, no one will use it. In this episode, we switch personas to the Application Developer and explore the day-to-day workflow of consuming a Kratix Platform.</description></item><item><title>Kratix Ep 3: Kratix GitOps vs Crossplane GitOps</title><link>https://rhidayat.work/series/kratix/03-kratix-gitops-vs-crossplane-gitops/</link><pubDate>Sun, 09 Aug 2026 20:30:00 +0000</pubDate><guid>https://rhidayat.work/series/kratix/03-kratix-gitops-vs-crossplane-gitops/</guid><description>Crossplane uses GitOps to provision AWS infrastructure. Kratix uses GitOps to orchestrate Promises. This frequently leads to severe architectural confusion for teams adopting Platform Engineering. In this episode, we define the exact boundary between the two tools and learn how they complement each other in a Production IDP.</description></item><item><title>Kratix Ep 2: Multi-Cluster Architecture &amp; IaC</title><link>https://rhidayat.work/series/kratix/02-multi-cluster-architecture-and-iac/</link><pubDate>Sun, 09 Aug 2026 20:20:00 +0000</pubDate><guid>https://rhidayat.work/series/kratix/02-multi-cluster-architecture-and-iac/</guid><description>In this episode, we deeply analyze the &amp;lsquo;Where&amp;rsquo; of the 5W1H framework. We will map out the Hub and Spoke topology, learn why Kratix intentionally isolates the Platform Cluster from the Worker Clusters for security, and explore how traditional Infrastructure-as-Code (like Terraform) executes inside this GitOps-driven model.</description></item><item><title>Crossplane Ep 5: Compositions</title><link>https://rhidayat.work/series/crossplane/fundamental/05-compositions/</link><pubDate>Sun, 09 Aug 2026 17:50:00 +0000</pubDate><guid>https://rhidayat.work/series/crossplane/fundamental/05-compositions/</guid><description>In Episode 4, we built an API (XRD) but it didn&amp;rsquo;t actually create any AWS infrastructure. In this final fundamental episode, we write a Composition. This is the &amp;rsquo;translation engine&amp;rsquo; that instructs Crossplane exactly which physical Managed Resources to create when a developer requests our custom API.</description></item><item><title>Crossplane Ep 4: Composite Resources (XR)</title><link>https://rhidayat.work/series/crossplane/fundamental/04-composite-resources-xr/</link><pubDate>Sun, 09 Aug 2026 17:40:00 +0000</pubDate><guid>https://rhidayat.work/series/crossplane/fundamental/04-composite-resources-xr/</guid><description>Managed Resources (MRs) are too low-level for application developers. In this episode, we learn how to define a Composite Resource Definition (XRD). This allows Platform Engineers to design a brand new, highly abstracted Custom Kubernetes API tailored exactly to their company&amp;rsquo;s needs.</description></item><item><title>Crossplane Ep 3: Managed Resources (MR)</title><link>https://rhidayat.work/series/crossplane/fundamental/03-managed-resources-mr/</link><pubDate>Sun, 09 Aug 2026 17:30:00 +0000</pubDate><guid>https://rhidayat.work/series/crossplane/fundamental/03-managed-resources-mr/</guid><description>A Managed Resource (MR) is the foundational building block of Crossplane. It is a 1-to-1 representation of a physical cloud object (like an S3 Bucket or an RDS Instance) stored as a Custom Resource in Kubernetes. In this episode, we provision our first AWS resource directly via kubectl.</description></item><item><title>Crossplane Ep 2: Providers and Credentials</title><link>https://rhidayat.work/series/crossplane/fundamental/02-providers-and-credentials/</link><pubDate>Sun, 09 Aug 2026 17:20:00 +0000</pubDate><guid>https://rhidayat.work/series/crossplane/fundamental/02-providers-and-credentials/</guid><description>Crossplane is useless on its own. To orchestrate AWS, Azure, or GCP, we must install Providers. In this episode, we install the official Upbound AWS Provider, configure Kubernetes Secrets to store our IAM credentials, and bind them to a ProviderConfig.</description></item><item><title>Crossplane Ep 1: The Kubernetes Native Control Plane</title><link>https://rhidayat.work/series/crossplane/fundamental/01-the-kubernetes-native-control-plane/</link><pubDate>Sun, 09 Aug 2026 17:10:00 +0000</pubDate><guid>https://rhidayat.work/series/crossplane/fundamental/01-the-kubernetes-native-control-plane/</guid><description>To understand Crossplane, you must first understand the Kubernetes Control Loop. In this episode, we explore the theoretical difference between CLI-driven IaC (Terraform) and Control Plane IaC (Crossplane). We will then install Crossplane into a local cluster using Helm.</description></item><item><title>Pulumi Ep 5: Inputs, Outputs, and Promises (The Asynchronous Conundrum)</title><link>https://rhidayat.work/series/pulumi/fundamental/05-inputs-outputs-and-promises/</link><pubDate>Sun, 09 Aug 2026 14:50:00 +0000</pubDate><guid>https://rhidayat.work/series/pulumi/fundamental/05-inputs-outputs-and-promises/</guid><description>When you write standard TypeScript, data is computed immediately. But in Pulumi, when you request an EC2 instance&amp;rsquo;s IP address, the IP does not exist until AWS physically boots the server. This introduces temporal paradoxes. In this final fundamental episode, we master Inputs, Outputs, and how to safely manipulate asynchronous infrastructure data.</description></item><item><title>Pulumi Ep 4: Configuration and Secrets Management</title><link>https://rhidayat.work/series/pulumi/fundamental/04-configuration-and-secrets/</link><pubDate>Sun, 09 Aug 2026 14:40:00 +0000</pubDate><guid>https://rhidayat.work/series/pulumi/fundamental/04-configuration-and-secrets/</guid><description>Hardcoding values like instance sizes and database passwords into your TypeScript code is a severe anti-pattern. In this episode, we learn how to decouple configuration from code using the Pulumi Config system, allowing the exact same codebase to deploy vastly different Staging and Production architectures.</description></item><item><title>Pulumi Ep 3: Declaring Resources in TypeScript</title><link>https://rhidayat.work/series/pulumi/fundamental/03-declaring-resources-in-typescript/</link><pubDate>Sun, 09 Aug 2026 14:30:00 +0000</pubDate><guid>https://rhidayat.work/series/pulumi/fundamental/03-declaring-resources-in-typescript/</guid><description>In Terraform, you write declarative configuration blocks. In Pulumi, you instantiate Object-Oriented classes. This episode explores how to declare complex resources like an AWS VPC, Security Group, and EC2 instance using pure TypeScript, while leveraging your IDE&amp;rsquo;s IntelliSense for maximum productivity.</description></item><item><title>Pulumi Ep 2: Stacks and State Management</title><link>https://rhidayat.work/series/pulumi/fundamental/02-stacks-and-state/</link><pubDate>Sun, 09 Aug 2026 14:20:00 +0000</pubDate><guid>https://rhidayat.work/series/pulumi/fundamental/02-stacks-and-state/</guid><description>Managing state files in Terraform is notoriously difficult, requiring external buckets and DynamoDB locks. Pulumi solves this out-of-the-box using the Pulumi Service. In this episode, we explore how State is managed, and how to use Stacks to deploy identical infrastructure to Staging and Production environments safely.</description></item><item><title>Pulumi Ep 1: Introduction to Pulumi and Project Initialization</title><link>https://rhidayat.work/series/pulumi/fundamental/01-introduction-to-pulumi/</link><pubDate>Sun, 09 Aug 2026 14:10:00 +0000</pubDate><guid>https://rhidayat.work/series/pulumi/fundamental/01-introduction-to-pulumi/</guid><description>It is time to leave YAML behind. In this episode, we will install the Pulumi CLI, scaffold a brand new TypeScript project, and understand the anatomy of the generated files. You will learn how Pulumi securely integrates with your cloud provider credentials.</description></item><item><title>KCNA Ep 5: Cloud Native Security &amp; GitOps Practices</title><link>https://rhidayat.work/series/kubernetes-certification-path/kcna/05-kcna-cloud-native-security-and-gitops-practices/</link><pubDate>Sun, 09 Aug 2026 13:25:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes-certification-path/kcna/05-kcna-cloud-native-security-and-gitops-practices/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Modern cloud-native operations rely on declarative security governance (RBAC, Network Policies) and automated continuous delivery (GitOps). In this final KCNA episode, we cover security fundamentals, GitOps workflows, and Service Meshes.
&lt;/div&gt;</description></item><item><title>KCNA Ep 4: Telemetry, Observability &amp; Monitoring</title><link>https://rhidayat.work/series/kubernetes-certification-path/kcna/04-kcna-cloud-native-telemetry-and-observability/</link><pubDate>Sun, 09 Aug 2026 13:20:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes-certification-path/kcna/04-kcna-cloud-native-telemetry-and-observability/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Observability allows engineers to infer the internal state of a complex distributed system based on its external outputs. For the KCNA exam, you must understand the Three Pillars of Observability and the CNCF tools that collect them.
&lt;/div&gt;</description></item><item><title>KCNA Ep 3: Container Orchestration &amp; Workload Primitives</title><link>https://rhidayat.work/series/kubernetes-certification-path/kcna/03-kcna-container-orchestration-and-workloads/</link><pubDate>Sun, 09 Aug 2026 13:15:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes-certification-path/kcna/03-kcna-container-orchestration-and-workloads/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Workload resources define how application containers are scheduled, scaled, and managed across a Kubernetes cluster. Understanding when to choose a Deployment vs a StatefulSet, DaemonSet, or Job is essential for the KCNA exam.
&lt;/div&gt;</description></item><item><title>KCNA Ep 2: Kubernetes Fundamentals &amp; Architecture</title><link>https://rhidayat.work/series/kubernetes-certification-path/kcna/02-kcna-kubernetes-fundamentals-and-architecture/</link><pubDate>Sun, 09 Aug 2026 13:10:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes-certification-path/kcna/02-kcna-kubernetes-fundamentals-and-architecture/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 A Kubernetes cluster is divided into a Control Plane (the brain) and Worker Nodes (the muscle). Understanding how these components communicate via the declarative REST API is a core requirement for the KCNA exam.
&lt;/div&gt;</description></item><item><title>KCNA Ep 1: CNCF Ecosystem &amp; Cloud Native Architecture</title><link>https://rhidayat.work/series/kubernetes-certification-path/kcna/01-kcna-exam-guide-and-cloud-native-ecosystem/</link><pubDate>Sun, 09 Aug 2026 13:05:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes-certification-path/kcna/01-kcna-exam-guide-and-cloud-native-ecosystem/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 The Kubernetes and Cloud Native Associate (KCNA) exam is a multiple-choice certification designed to test your foundational knowledge of the cloud-native ecosystem. In this first episode, we explore the CNCF landscape, cloud-native architecture patterns, and containerization principles.
&lt;/div&gt;</description></item><item><title>TS Ep 1: Fundamental TypeScript — Inference, Type Narrowing, and Discriminated Unions</title><link>https://rhidayat.work/series/typescript/fundamental/01-typescript-fundamentals-and-narrowing/</link><pubDate>Sun, 09 Aug 2026 12:30:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/01-typescript-fundamentals-and-narrowing/</guid><description>The foundational guide to mastering TypeScript. Learn how the type inference engine works, master type narrowing with typeof, instanceof, in, and custom type predicates (is), build type-safe discriminated unions, and use as const assertions.</description></item><item><title>TS Ep 15: Immutability with `as const` &amp; Const Assertions</title><link>https://rhidayat.work/series/typescript/fundamental/15-as-const-and-immutability/</link><pubDate>Sun, 09 Aug 2026 11:10:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/15-as-const-and-immutability/</guid><description>An exhaustive analysis of Const Assertions (&lt;code&gt;as const&lt;/code&gt;). Learn the 3 transformation rules of const assertions, deep recursive read-only object properties, converting arrays into readonly tuples, and deriving union types dynamically using &lt;code&gt;typeof ARRAY[number]&lt;/code&gt;.</description></item><item><title>TS Ep 14: The Never Type &amp; Exhaustive Checks</title><link>https://rhidayat.work/series/typescript/fundamental/14-the-never-type-and-exhaustive-checks/</link><pubDate>Sun, 09 Aug 2026 11:05:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/14-the-never-type-and-exhaustive-checks/</guid><description>An exhaustive deep dive into TypeScript&amp;rsquo;s bottom type (&lt;code&gt;never&lt;/code&gt;). Learn how set theory models the empty set ($mptyset$), the 3 sources of &amp;rsquo;never&amp;rsquo; in type analysis, and how to implement compile-time exhaustiveness checking for Discriminated Unions.</description></item><item><title>TS Ep 13: Function Overloads — Polymorphic Signatures</title><link>https://rhidayat.work/series/typescript/fundamental/13-function-overloads/</link><pubDate>Sun, 09 Aug 2026 11:00:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/13-function-overloads/</guid><description>An in-depth guide to Function Overloads in TypeScript. Learn how to define multiple overload signatures, why the implementation signature is invisible to callers, how TypeScript matches overloads sequentially, and when to use Union types instead of Overloads.</description></item><item><title>TS Ep 12: Function Typing, Call Signatures, and Void Semantics</title><link>https://rhidayat.work/series/typescript/fundamental/12-function-typing-and-void/</link><pubDate>Sun, 09 Aug 2026 10:55:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/12-function-typing-and-void/</guid><description>An exhaustive guide to typing functions in TypeScript. Learn function expressions, type aliases, destructuring parameter signatures, optional/default/rest parameters, call signatures with properties, and why &amp;lsquo;void&amp;rsquo; callbacks ignore return values.</description></item><item><title>TS Ep 11: Discriminated Unions — Tagged Unions &amp; Domain Modeling</title><link>https://rhidayat.work/series/typescript/fundamental/11-discriminated-unions/</link><pubDate>Sun, 09 Aug 2026 10:50:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/11-discriminated-unions/</guid><description>An exhaustive guide to Discriminated Unions in TypeScript. Learn why optional property blobs create impossible states, the 3 requirements for tagged unions, how Control Flow Analysis narrows discriminants, and real-world domain state patterns.</description></item><item><title>TS Ep 10: Custom Type Guards &amp; Assertion Functions</title><link>https://rhidayat.work/series/typescript/fundamental/10-custom-type-guards-is/</link><pubDate>Sun, 09 Aug 2026 10:45:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/10-custom-type-guards-is/</guid><description>Learn how to build custom runtime type validators in TypeScript. Master Type Predicates (&lt;code&gt;parameter is Type&lt;/code&gt;), Assertion Functions (&lt;code&gt;asserts val is Type&lt;/code&gt;), array &lt;code&gt;.filter()&lt;/code&gt; type narrowing, and safely parsing untrusted external JSON data.</description></item><item><title>TS Ep 9: Type Narrowing &amp; Control Flow Analysis</title><link>https://rhidayat.work/series/typescript/fundamental/09-type-narrowing-typeof-instanceof/</link><pubDate>Sun, 09 Aug 2026 10:40:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/09-type-narrowing-typeof-instanceof/</guid><description>Understand how TypeScript&amp;rsquo;s Control Flow Analysis engine refines types across code branches. Master typeof guards (and the typeof null quirk), instanceof class narrowing, the &amp;lsquo;in&amp;rsquo; property operator, equality narrowing, and truthiness pitfalls.</description></item><item><title>TS Ep 8: Literal Types — Unit Types &amp; Enum Alternatives</title><link>https://rhidayat.work/series/typescript/fundamental/08-literal-types/</link><pubDate>Sun, 09 Aug 2026 10:35:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/08-literal-types/</guid><description>An in-depth breakdown of TypeScript Literal Types. Understand unit types in set theory, how string/number literal unions replace Enums with zero runtime overhead, and how to solve object property literal widening bugs.</description></item><item><title>TS Ep 7: Union and Intersection Types — Set Theory Mechanics</title><link>https://rhidayat.work/series/typescript/fundamental/07-union-and-intersection-types/</link><pubDate>Sun, 09 Aug 2026 10:30:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/07-union-and-intersection-types/</guid><description>An in-depth analysis of Unions and Intersections in TypeScript. Understand how set theory models type relationships ($A \cup B$ vs $A \cap B$), property access rules, property conflict resolution to &amp;rsquo;never&amp;rsquo;, and operator precedence.</description></item><item><title>TS Ep 6: Any vs. Unknown — Top Types and Type Safety</title><link>https://rhidayat.work/series/typescript/fundamental/06-any-vs-unknown/</link><pubDate>Sun, 09 Aug 2026 10:25:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/06-any-vs-unknown/</guid><description>Understand the type-system mechanics of top types in TypeScript. Learn why &amp;lsquo;any&amp;rsquo; disables type checking and causes type contagion, why &amp;lsquo;unknown&amp;rsquo; provides safe dynamic typing, and how to use &amp;lsquo;unknown&amp;rsquo; with runtime validation.</description></item><item><title>TS Ep 5: Arrays, Tuples, and Readonly Collections</title><link>https://rhidayat.work/series/typescript/fundamental/05-arrays-and-tuples/</link><pubDate>Sun, 09 Aug 2026 10:20:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/05-arrays-and-tuples/</guid><description>An exhaustive guide to typing collections in TypeScript. Learn the syntax differences between T[] and Array&lt;!-- raw HTML omitted --&gt;, union array typing precedence, labeled tuple elements, rest tuples, and why readonly arrays prevent array mutation bugs.</description></item><item><title>TS Ep 4: Object Types, Interfaces, and Structural Typing</title><link>https://rhidayat.work/series/typescript/fundamental/04-object-types-and-interfaces/</link><pubDate>Sun, 09 Aug 2026 10:15:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/04-object-types-and-interfaces/</guid><description>Learn how to model object shapes in TypeScript. We cover inline types, type aliases, interfaces, optional properties vs undefined, readonly modifiers, index signatures, and TypeScript&amp;rsquo;s structural type system.</description></item><item><title>TS Ep 3: Type Annotations vs. Type Inference</title><link>https://rhidayat.work/series/typescript/fundamental/03-type-annotations-vs-inference/</link><pubDate>Sun, 09 Aug 2026 10:10:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/03-type-annotations-vs-inference/</guid><description>Stop writing redundant type annotations. Learn how TypeScript infers types, the mechanics of literal type widening (&lt;code&gt;let&lt;/code&gt; vs &lt;code&gt;const&lt;/code&gt;), contextual typing in callbacks, and the precise rules for when explicit type annotations are required.</description></item><item><title>TS Ep 2: Primitive Types — Deep Dive into JS Primitives</title><link>https://rhidayat.work/series/typescript/fundamental/02-primitive-types/</link><pubDate>Sun, 09 Aug 2026 10:05:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/02-primitive-types/</guid><description>An exhaustive breakdown of TypeScript&amp;rsquo;s 7 primitive types. Learn how TS handles floating-point numbers, BigInts, symbols, strictNullChecks, and the critical structural differences between lowercase primitive types and uppercase Object wrappers.</description></item><item><title>TS Ep 1: Introduction, Compilation, and Compiler Setup</title><link>https://rhidayat.work/series/typescript/fundamental/01-introduction-and-setup/</link><pubDate>Sun, 09 Aug 2026 10:00:00 +0000</pubDate><guid>https://rhidayat.work/series/typescript/fundamental/01-introduction-and-setup/</guid><description>An in-depth introduction to TypeScript architecture. Understand static type checking vs runtime behavior, the internal stages of the TypeScript compiler (tsc), type erasure, and how to configure tsconfig.json with strict flags for professional development.</description></item><item><title>Terraform Ep 5: Querying Existing Cloud Infrastructure with Data Sources</title><link>https://rhidayat.work/series/terraform/fundamental/05-data-sources/</link><pubDate>Sun, 09 Aug 2026 09:50:00 +0000</pubDate><guid>https://rhidayat.work/series/terraform/fundamental/05-data-sources/</guid><description>Not everything in your cloud is managed by Terraform. In this episode, you will learn how to use the &amp;lsquo;data&amp;rsquo; block to interrogate the AWS API. Fetch the latest Ubuntu AMI ID dynamically, or retrieve a VPC ID created by the Networking team, ensuring your code remains hardcode-free.</description></item><item><title>Terraform Ep 4: Input Variables, Outputs, and Data Types</title><link>https://rhidayat.work/series/terraform/fundamental/04-input-variables-and-outputs/</link><pubDate>Sun, 09 Aug 2026 09:40:00 +0000</pubDate><guid>https://rhidayat.work/series/terraform/fundamental/04-input-variables-and-outputs/</guid><description>Hardcoding values in Terraform is a bad practice. In this episode, we will introduce Input Variables and Data Types to make your code reusable across multiple environments. You will also learn how to extract critical information using Outputs.</description></item><item><title>Terraform Ep 3: Declaring Resources and Dependency Management</title><link>https://rhidayat.work/series/terraform/fundamental/03-declaring-resources/</link><pubDate>Sun, 09 Aug 2026 09:30:00 +0000</pubDate><guid>https://rhidayat.work/series/terraform/fundamental/03-declaring-resources/</guid><description>It is time to build real infrastructure. In this episode, we will declare an AWS Virtual Private Cloud (VPC) and a Subnet. You will learn how Terraform intelligently determines the correct order of creation using the Dependency Graph, preventing race conditions.</description></item><item><title>Terraform Ep 2: Providers, Plugins, and Secure Authentication</title><link>https://rhidayat.work/series/terraform/fundamental/02-providers-and-authentication/</link><pubDate>Sun, 09 Aug 2026 09:20:00 +0000</pubDate><guid>https://rhidayat.work/series/terraform/fundamental/02-providers-and-authentication/</guid><description>Terraform itself cannot create an AWS EC2 instance. It relies on &amp;lsquo;Providers&amp;rsquo; (plugins) to translate HCL code into cloud-specific API calls. In this episode, we connect Terraform to AWS and establish a secure, production-grade authentication mechanism.</description></item><item><title>Terraform Ep 1: Introduction to IaC and the State File</title><link>https://rhidayat.work/series/terraform/fundamental/01-introduction-and-state/</link><pubDate>Sun, 09 Aug 2026 09:10:00 +0000</pubDate><guid>https://rhidayat.work/series/terraform/fundamental/01-introduction-and-state/</guid><description>Stop deploying cloud resources manually. In this first episode, we will transform your approach to cloud architecture by introducing declarative IaC. You will learn how Terraform tracks physical resources using the state file, and execute your first local configuration.</description></item><item><title>Go Ep 6: Structs, Fields &amp; JSON Serialization</title><link>https://rhidayat.work/series/go/06-structs-fields-and-json-tags/</link><pubDate>Sun, 09 Aug 2026 08:45:00 +0000</pubDate><guid>https://rhidayat.work/series/go/06-structs-fields-and-json-tags/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Go is not a class-based object-oriented language. Instead, Go uses &lt;strong&gt;Structs&lt;/strong&gt; to group typed fields together into contiguous memory blocks.
&lt;/div&gt;</description></item><item><title>Go Ep 5: Maps &amp; Hash Tables</title><link>https://rhidayat.work/series/go/05-maps-and-hash-tables/</link><pubDate>Sun, 09 Aug 2026 08:40:00 +0000</pubDate><guid>https://rhidayat.work/series/go/05-maps-and-hash-tables/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Maps provide fast $O(1)$ key-value lookups. Understanding map initialization and comma-ok lookups is essential for safe data manipulation.
&lt;/div&gt;</description></item><item><title>Go Ep 4: Arrays, Slices &amp; Memory Capacity</title><link>https://rhidayat.work/series/go/04-arrays-slices-and-capacity/</link><pubDate>Sun, 09 Aug 2026 08:30:00 +0000</pubDate><guid>https://rhidayat.work/series/go/04-arrays-slices-and-capacity/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 In Go, an &lt;strong&gt;Array&lt;/strong&gt; has a fixed length determined at compile time. A &lt;strong&gt;Slice&lt;/strong&gt; is a lightweight, dynamically sized view into an underlying array. Understanding slice capacity (&lt;code&gt;cap&lt;/code&gt;) prevents accidental memory reallocation overhead.
&lt;/div&gt;</description></item><item><title>Go Ep 3: Functions, Defer &amp; Closures</title><link>https://rhidayat.work/series/go/03-functions-defer-and-closures/</link><pubDate>Sun, 09 Aug 2026 08:20:00 +0000</pubDate><guid>https://rhidayat.work/series/go/03-functions-defer-and-closures/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Functions in Go can return multiple values natively. Coupled with the &lt;strong&gt;&lt;code&gt;defer&lt;/code&gt;&lt;/strong&gt; statement, Go provides a clean, elegant mechanism for resource management that replaces cumbersome &lt;code&gt;try/finally&lt;/code&gt; blocks.
&lt;/div&gt;</description></item><item><title>Go Ep 2: Control Flow &amp; Loops</title><link>https://rhidayat.work/series/go/02-control-structures-and-loops/</link><pubDate>Sun, 09 Aug 2026 08:10:00 +0000</pubDate><guid>https://rhidayat.work/series/go/02-control-structures-and-loops/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Unlike languages with &lt;code&gt;while&lt;/code&gt;, &lt;code&gt;do-while&lt;/code&gt;, and &lt;code&gt;foreach&lt;/code&gt;, Go has only ONE keyword for looping: &lt;strong&gt;&lt;code&gt;for&lt;/code&gt;&lt;/strong&gt;. This design eliminates syntax complexity while maintaining complete control over iteration.
&lt;/div&gt;</description></item><item><title>K8s Ep 1: Architecture &amp; Your First Multi-Node Local Cluster Setup</title><link>https://rhidayat.work/series/kubernetes/fundamental/01-architecture-and-local-setup/</link><pubDate>Sun, 09 Aug 2026 08:10:00 +0000</pubDate><guid>https://rhidayat.work/series/kubernetes/fundamental/01-architecture-and-local-setup/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Many Kubernetes tutorials overwhelm you with hours of theory before ever touching a terminal. Here, we embrace the &lt;strong&gt;HowToForge&lt;/strong&gt; philosophy: we build it first, then we dissect how it works.
&lt;/div&gt;</description></item><item><title>Go Ep 1: Toolchain, Syntax &amp; Primitive Types</title><link>https://rhidayat.work/series/go/01-introduction-syntax-variables-types/</link><pubDate>Sun, 09 Aug 2026 08:00:00 +0000</pubDate><guid>https://rhidayat.work/series/go/01-introduction-syntax-variables-types/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson, Go (Golang) is an open-source programming language built for simplicity, concurrency, and high-performance systems engineering.
&lt;/div&gt;</description></item></channel></rss>