Posts
All the articles I've posted.
-
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.