DevOps

Terraform engineering services

Terraform makes infrastructure reviewable. Every environment we build is defined in code, which is what turns "who changed the security group" from an investigation into a diff.

Rated 4.9 on Clutch across 38 reviews

Where we use Terraform

Terraform is part of the stack on these 2 services. Each page covers how we work, what you get and what it costs to start.

Terraform in practice

Terraform turns infrastructure into something you can review. A plan shows precisely what will be created, changed or destroyed before anyone approves it, which converts "who changed the security group" from an investigation into a pull request with a name attached.

It also ends environment drift. When staging and production are built from the same modules with different variables, "it works in staging" stops being a coincidence. Getting an existing hand-built estate under Terraform through import is tedious work, and it is usually the highest-value infrastructure change available to a team that has never had it.

What we build with Terraform

Networking, compute, databases and permissions defined in version control and applied through a pipeline.

Staging and production built from the same modules with different variables, so they cannot silently diverge.

Bringing hand-built cloud estates under Terraform without tearing them down first.

Is Terraform right for you?

Ask us

A good fit when

  • Any cloud estate that will exist for more than a few months
  • Multiple environments that must genuinely match
  • Teams wanting infrastructure changes reviewed like code
  • Multi-provider setups: cloud plus DNS plus monitoring

Probably not when

  • A single static site on a managed host
  • Throwaway experiments
  • Teams with no capacity to learn it, where it becomes one person’s private tool

What we run alongside Terraform

The rest of the setup, and why each piece is there. We keep this list short on purpose — every dependency is something someone has to maintain.

Remote state with locking
S3 plus DynamoDB, or the equivalent. Prevents two applies colliding.
Modules
Reusable building blocks, so environments share definitions rather than copies.
Atlantis or Terraform Cloud
Plan and apply through pull requests, with a visible approval step.
tflint and checkov
Linting and security policy checks before anything is applied.
Workspaces or directories
Environment separation, chosen explicitly rather than by accident.

Why Terraform

Let’s talk

Changes are reviewable

A plan shows exactly what will be created, changed or destroyed before anyone approves it.

Environments stop drifting

The same code builds each environment, so "it works in staging" stops being a coincidence.

One tool across providers

Cloud, DNS, monitoring and SaaS resources are managed from the same workflow.

What we get called in to fix

Get a second opinion

State file problems

Local state on someone’s laptop, or state committed to Git. Both end badly and both are common.

Console changes causing drift

Manual edits that the next apply silently reverts, sometimes during an incident.

Copy-pasted environments

Three near-identical directories that have quietly diverged in ways nobody has audited.

Secrets in state

State files containing credentials in plain text, stored without encryption or access control.

Terraform or the alternative

The comparisons we are actually asked to make, answered the way we would answer them on a call.

Terraform in nearly every case — better ergonomics, and it manages non-AWS resources in the same workflow.

Pulumi if the team strongly prefers a general-purpose language. Terraform for the larger ecosystem and easier handover.

Different jobs. Terraform provisions infrastructure; Ansible configures what runs on it.

Got an idea? Let’s make it real.

Tell us the short version

This could be the first step towards a new and successful collaboration. A one-line idea and a finished spec are both fine — tell us the problem, the deadline you’re working to and what’s in your way.

We reply within one working day.

Prefer another way to talk?

Frequently asked questions

Yes, through import. It takes patience but it ends the era of undocumented console changes.

Terraform in almost every case — better ergonomics, and it covers non-AWS resources in the same workflow.

Remote state with locking and per-environment separation, so two applies can never collide.

Yes. It takes patience, and it ends the era of undocumented console changes — usually worth it within the first quarter.

Through a pull request and a pipeline, not from laptops. Apply permission becomes repository permission, which most organisations already govern.