Archives
All the articles I've archived.
-
Inside Terraform: How for_each and count Expand Resources
A deep dive into Terraform's expansion mechanism — how for_each and count transform configuration blocks into multiple resource instances in the graph.
-
Deprecating Terraform Variables and Outputs in Terraform 1.15
Terraform 1.15 introduces deprecation warnings for variables and outputs. Learn how this works under the hood and what it means for your configurations.
-
Inside Terraform: How tfdiags Powers Error Handling
A deep dive into tfdiags, Terraform's diagnostic and error handling system — how errors, warnings, and source ranges flow through the codebase.
-
Inside Terraform: go-cty & Evaluation - Values in Terraform
How Terraform evaluates expressions using go-cty for value representation and HCL for parsing — a deep dive into the evaluation engine internals.
-
Inside Terraform: References - How Terraform Connects the Dots
How Terraform resolves references between resources, variables, and modules — tracing the dependency graph from HCL expressions to execution order.
-
Inside Terraform: addrs - Everything Needs an Address
A deep dive into Terraform's addrs package — how every resource, module, and variable gets a unique address that drives the entire execution engine.
-
Inside Terraform: A series about the internals of Terraform
A deep-dive blog series by a Terraform Core engineer exploring how Terraform works internally — from address parsing to graph expansion and evaluation.
-
Terraform Actions Usage Patterns: A Growing Reference Guide
A curated and growing list of common usage patterns for Terraform Actions, showing real-world examples of non-CRUD operations in Terraform configuration.
-
Handling Recursive API Patterns in Terraform Providers
How to implement Terraform resources, data sources, and actions for APIs with recursive structures using the Terraform Plugin Framework.
-
Designing a Terraform language feature like Terraform Actions
How we designed Terraform Actions — the key design decisions behind integrating a new language construct for non-CRUD operations into Terraform.
-
Terraform Action Patterns: Best Practices and Guidelines
Common patterns and guidelines for writing Terraform Actions, the language feature for expressing non-CRUD infrastructure operations.
-
Writing Your First Terraform Action: A Step-by-Step Guide
A hands-on guide to writing a Terraform Action for non-CRUD operations, covering provider implementation, schema design, and typical use cases.
-
Introduction to Terraform Actions: First-Class Day 2 Operations
Terraform Actions let you express non-CRUD operations directly in configuration — replacing local-exec provisioners and pseudo data source workarounds.
-
Terraform Providers: Migrating from SDK v2 to the Framework
Step-by-step guide to migrating a Terraform provider from SDKv2 to the Plugin Framework, including muxing, testing, and common migration pitfalls.
-
Terraform Stacks vs Modules: How the Two Runtimes Differ
A code-level comparison of how the Terraform Stacks runtime and the classic module runtime differ in graph building, evaluation, and execution.
-
Terraform Stacks Explained: A Quick High-Level Overview
A concise overview of Terraform Stacks — what they are, how they relate to modules, and why they exist for managing infrastructure at scale.
-
Building a Remark Plugin for Inline GitHub Code Snippets
How to write a remark plugin that inlines code snippets from GitHub repositories into Markdown, keeping blog posts in sync with source code automatically.
-
Keeping Development Environments in Sync with Chezmoi
How to use chezmoi to manage dotfiles and keep personal and work Macbook development environments synchronized across multiple machines.
-
Implementing Discriminated Unions in Go: A TypeScript Perspective
How to implement the tagged union pattern in Go when coming from TypeScript, using interfaces and sealed types to model mutually exclusive states.
-
Managing Child Processes in Rust with Tokio: A Practical Guide
Learn how to spawn, monitor, and manage one-shot and long-running child processes in Rust using tokio::process::Command with real-world examples.
-
Declarative Development Environments with CDK for Terraform
You can use CDK for Terraform to automate spinning up a complex development environment.
-
Implementing Real-Time GraphQL Subscriptions with RxJS
Learn how to trigger and manage GraphQL subscription updates using RxJS observables, enabling real-time data flows in your JavaScript applications.
-
How to Test Side Effects in RxJS Observables Effectively
A practical approach to testing side effects in RxJS, covering marble testing patterns and strategies for verifying observable behavior in Angular and Node.js applications.
-
Simulating Movement and Gyroscope Data in Mobile Emulators
How to simulate real-world movement and gyroscopic sensor data in Android and iOS emulators for testing location-aware mobile applications.