IaC (Infrastructure as Code) is a practice of describing IT infrastructure (networks, servers, databases, access rights) in versioned code files, instead of configuring it by hand in a console.
These files are stored in Git, reviewed like application code, then applied by a tool. The gains are reproducibility (recreating an identical environment), traceability (who changed what and when), review before changes, and the ability to spin up temporary environments on demand.
Two main approaches coexist. The declarative approach describes the desired state and lets the tool work out the changes: Terraform or its open source fork OpenTofu, Pulumi, AWS CloudFormation. The more procedural approach runs configuration steps on existing machines: Ansible is the most widespread example.
Why it matters when hiring
IaC is expected from every DevOps engineer, SRE, Platform Engineer or Cloud Architect. Real depth shows in how the code is organized (reusable modules, state management, separate environments) and in how risky changes are handled. Ask the candidate to describe a change that went wrong. A profile who has only used modules written by others is still junior on the topic.
