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.
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 usA 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 talkChanges 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 opinionState 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.
Terraform works well with:
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.
Keep looking
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.