Remote state and locking
State stored in a versioned remote backend with locking enabled, so two applies never race each other and a lost laptop does not mean a lost estate.
Infrastructure & Cloud
Your cloud estate written as code, reviewed in pull requests, rebuildable from an empty account.
The work
Most infrastructure problems are state problems. Two environments drift apart because someone made a console change nobody recorded, and the module that was supposed to describe both of them quietly stopped being true. We start by mapping what actually exists, import it where it can be imported, and get the state files somewhere your team can trust.
Module layout matters more than tool choice. We split the estate along the lines your team already reasons about — accounts, networks, shared services — then put policy checks on the pull request so a plan that opens port 22 to the world fails review instead of reaching production.
Scope
Every engagement on this page covers the following, sized to your setup rather than delivered as a fixed package. If something here is not relevant to you, it comes off the scope and off the price.
State stored in a versioned remote backend with locking enabled, so two applies never race each other and a lost laptop does not mean a lost estate.
Modules cut along the boundaries your teams actually own, with documented inputs and outputs, so a new environment is a small configuration file rather than a fresh pile of copy-paste.
Scheduled plans compared against real infrastructure, so an out-of-band change is reported the day it happens instead of surfacing halfway through an unrelated deployment three months later.
Open Policy Agent or Sentinel rules run against every plan: naming conventions, required tags, allowed regions and blocked public buckets, all enforced before a human approves the change.
We bring existing resources under management in reviewed batches, starting with the ones nobody dares touch, and document the manual steps that remain so they are visible rather than folklore.
A short written standard covering naming, module versioning, plan review and state recovery, plus the commands your team needs during an incident.
What changes
Handover
Everything produced during the engagement is yours: the repositories, the accounts, the documentation. There is no proprietary layer and nothing to unlicense if you take the work in-house.
Tooling
A starting point, not a requirement. We work in whatever you already run wherever it does the job.
How it runs
The same four steps on every engagement. You see each one before it starts and can stop at any of them.
We inventory every account, read-only, and compare it against whatever code and diagrams you already have. The gap between those two is the real starting point.
A short design session with your engineers decides how the estate gets split and who owns each module, because a layout nobody understands gets abandoned within a quarter.
Resources move under management a batch at a time, each as its own pull request, so the estate stays healthy throughout and nothing depends on one enormous cutover weekend.
We walk your team through plan review, state recovery and adding a module, then stay available for the first few real changes they ship without us.
Questions
No. Rewriting a working estate is rarely worth the risk. We import what is safe to import, leave the rest alone, and only convert a component when there is a clear reason such as frequent change or an upcoming rebuild.
That is the normal state, not an exception. We reconcile drift in reviewed batches, deciding case by case whether the console change should be codified or reverted. Nothing is applied to production until you have reviewed that decision.
Whichever your team will maintain. Terraform has the widest module ecosystem and hiring pool, OpenTofu matters if licence terms are a concern, and Pulumi suits teams who prefer general-purpose languages. We will recommend one, but the honest answer is that the layout matters more.
Yes, and that is usually the better arrangement. Your engineers review every change and own the modules once they land. We would rather work ourselves out of a job than leave a codebase only we understand.
Infrastructure & Cloud
Well-architected landing zones and migrations that move workloads without moving your risk profile.
Guardrails expressed as code, enforced before deployment — not a wiki page nobody reads.
Git becomes the single source of truth for what runs where — with progressive rollouts and instant rollback.
Bring the specific problem. We will tell you honestly whether this is the service that fixes it, and what it would take.