# Terraform engineer — since 2020

> Describing infrastructure in code and setting it up repeatably with Terraform: cloud resources, the DNS and proxy layer, and the write-plan-apply workflow.

- Highlights: 6 years
- Experience: Since 2020
- Updated: 2026-11-08
- Source: https://muhammetsafak.com/expertise/terraform/
- Language: en-US
- Author: Muhammet Şafak

---
## Me in the Terraform ecosystem

For me Terraform is not about setting infrastructure up once and forgetting it but about keeping how it was built readable in the repository. When what an environment consists of is written in a file, rebuilding it or reviewing a change is as ordinary as reviewing a change in code. The role side of this work is on the [DevOps and infrastructure page](https://muhammetsafak.com/expertise/devops/).

Two layers stand right next to Terraform: [Kubernetes](https://muhammetsafak.com/expertise/kubernetes/), which runs containers on top of the infrastructure, and [Linux](https://muhammetsafak.com/expertise/linux/) on the server side. Terraform does not replace either; it describes the ground they stand on.

Terraform's plan step shows what will be created, updated or destroyed before a change is applied; seeing a change before approving it is the part of this workflow I care about most.

## What is the Terraform Engineer role?

Terraform is an infrastructure as code tool for building, changing and versioning cloud and on-prem resources. Infrastructure is described in human-readable configuration files. A Terraform engineer is the person who writes those files and makes sure the infrastructure is built from them.

## What does the Terraform Engineer do?

I set up infrastructure from files I describe with Terraform, not by hand, so an environment can be rebuilt and a change can be followed in the repository. Alongside Terraform sit cloud providers such as AWS and Google Cloud, Cloudflare's DNS, proxy and content delivery layer, and [Kubernetes](https://muhammetsafak.com/expertise/kubernetes/).

## Technologies I pair it with

- Terraform: For describing infrastructure in code and setting it up repeatably.
- AWS: Cloud provider; virtual machines, storage and managed services.
- Google Cloud: Cloud provider; virtual machines, storage and managed services.
- Cloudflare: The DNS, proxy and content delivery layer in front of the application.
- Kubernetes: The orchestration layer where containers are run, scaled and restarted across machines.
- GitHub Actions: The CI/CD pipeline that defines test and deploy steps in the repository.
- Jenkins: The automation server that runs build, test and deploy steps.

## Frequently asked

### How long have you worked with Terraform?

Since 2020 — 6 years.

### What is Terraform?

Terraform is an infrastructure as code tool for building, changing and versioning cloud and on-prem resources. Resources are described in human-readable configuration files.

### What does managing infrastructure as code mean?

Setting up servers and services from files described with a tool like Terraform, not by hand. That makes the infrastructure repeatable and its changes trackable in the repository.

### How does Terraform work?

In three steps: you write the resources in a configuration file, Terraform produces an execution plan describing what it will create, update or destroy, and after your approval it performs the operations in dependency order.

### What is Terraform state?

The file Terraform uses to track the real infrastructure. It works out from that file what has to change for the infrastructure to match your configuration.

### What is the difference between Terraform and Kubernetes?

Terraform is for describing infrastructure in code and building it; Kubernetes is for running, scaling and restarting containers. They answer different questions and can be used together.

### Which resources can Terraform manage?

According to its documentation, it can manage cloud and on-prem resources; the resources can span several cloud providers and services. On my side these are cloud providers such as AWS and Google Cloud, and Cloudflare's DNS and proxy layer.
