Terraform logo

Cloud & DevOps

Official site

Terraform

Terraform — infrastructure as code with plan/apply workflows, reusable modules, and a state discipline that keeps cloud config reviewable.

Overview

Terraform brings infrastructure into version control as code. The plan/apply workflow means every change is reviewed before it touches the environment, and the whole estate — across AWS, GCP, and other providers — is described in one place.

I structure Terraform around environments and modules: shared state per environment, reusable modules for the common building blocks, and clear input/output contracts. Remote state keeps the team honest and locks prevent concurrent drift.

The payoff is an estate that is auditable and rebuildable. Because everything is code, disaster recovery becomes "run the pipeline again", and security and cost policies get enforced as code rather than tribal knowledge.

HCL is the vocabulary of the estate. I write readable infrastructure in Terraform's language and keep the code as idiomatic as the cloud it describes, so what the config says and what actually runs rarely disagree.

The plan/apply loop is the safety net. Every change is reviewed as a diff before it is applied, so a human (or a pipeline gate) sees exactly what will be created, changed, or destroyed before any cloud resource moves.

Modules are where reuse and consistency live. I factor common building blocks — networks, compute, storage — into modules with clear input/output contracts, so each environment consumes the same vetted pieces instead of reinventing them.

State is the source of coordination. Each environment gets its own remote state, and locking prevents two agents from converging on the same resources at once — which is how a team keeps a shared cloud estate from drifting into chaos.

Multi-provider coverage makes it the single control plane for a hybrid estate. AWS, GCP, and others are described in one tool, so a cross-cloud architecture is config rather than disconnected consoles and scripts.

The end state is an infrastructure that is reviewable, versioned, and rebuildable on demand. Security and cost are encoded in modules and policies, making the estate as reproducible and auditable as the application code that runs on it.

How I Work With Terraform

I write HCL that reads like the estate it describes. Infrastructure stays idiomatic and reviewable, so what the config says and what runs rarely disagree.

The plan/apply loop is the safety net. Every change is reviewed as a diff before it is applied, and a pipeline gate can block a destructive plan before any resource moves.

Modules are where reuse lives. Networks, compute, and storage are factored into modules with clear input/output contracts, so every environment consumes the same vetted pieces.

Each environment gets its own remote state, and locking prevents two agents converging on the same resources — the coordination that keeps a team's cloud estate from drifting.

State is treated carefully. I never lose, lock, or hand-edit state, because it is the source of coordination between config and reality.

Multi-provider coverage makes Terraform the single control plane. AWS, GCP, and others are described in one tool, so a cross-cloud architecture is config, not disconnected consoles.

Secrets live outside the config. Sensitive values come from the state store or a secret provider, never as plaintext in the repo.

Security and cost are encoded as policy. Guardrails on resource types, tags, and posture run as code, so the estate is safe by construction rather than by review after the fact.

The end state is an infrastructure that is reviewable, versioned, and rebuildable on demand — as reproducible and auditable as the application code it supports.

Key Capabilities

Plan/apply workflow for reviewable, gated infrastructure changes.
Multi-provider support spanning AWS, GCP, and others.
Reusable modules and per-environment remote state.
State locking and drift prevention across a team.
Infrastructure that is auditable, versioned, and rebuildable.