FuturByte

Hire Terraform developers

Terraform declares infrastructure as code across providers, and hiring for it means testing how someone handles state and blast radius rather than syntax.

What Terraform actually is

Terraform is a tool for defining infrastructure declaratively and applying those definitions through provider plugins that talk to cloud platforms and other services. You describe the resources you want, it works out the difference against what exists, and it makes the changes. Its licence changed from fully open source to a business source licence, which prompted the creation of a community fork, and that fork is now a genuine consideration for some organisations.

The value is that infrastructure becomes reviewable, reproducible and versioned like application code. A change can be proposed, read, discussed and approved before anything happens, and the current state of an environment can be understood by reading a repository rather than by clicking through a console. For anything beyond a trivial estate, this is the difference between infrastructure you understand and infrastructure you hope about.

The complication, and the thing to interview for, is state. Terraform keeps a record of what it believes it created, and that file is the single most dangerous artefact in the system. If it is lost, corrupted, or does not match reality, the next apply can destroy things. Everything that separates a careful Terraform engineer from a dangerous one comes back to how they treat state.

The part that separates seniors from mid-levels

State is the foundation. It must live remotely so a team can share it, it must be locked so two people cannot apply at once, and it must be backed up. Drift, where reality no longer matches state because somebody changed something by hand, is a constant operational reality rather than an edge case. Engineers who have dealt with a corrupted state file, or who have used targeted imports and state manipulation to recover, have knowledge that only comes from having been in trouble.

Blast radius is the second concept and it drives how a codebase should be structured. A single configuration covering an entire estate means every change plans against everything and a mistake can affect everything. Splitting by environment and by lifecycle, so that the network layer and the application layer have separate state, limits what any one apply can touch. This is an architecture decision rather than a style preference, and it is very hard to change later.

Reading a plan carefully is the third discipline, and it sounds trivial until you watch someone do it badly. A plan that shows a resource being destroyed and recreated rather than updated in place is the difference between a configuration change and an outage. Some attributes force replacement and it is not always obvious which. An engineer who reads every plan line before applying, and who can explain why a change forces replacement, is describing the habit that prevents most Terraform incidents.

Where Terraform is used

The label “Terraform developer” covers several jobs that share a technology and little else. These are the settings the work usually turns up in, and the one you are hiring into should shape the whole process, because the judgement each demands is different.

Cloud infrastructure management

The primary use, defining accounts, networking, compute, databases and permissions across providers.

Multi-environment consistency

Ensuring development, staging and production differ only in ways that are declared and visible.

Compliance and audit

Regulated environments where every infrastructure change must be reviewed and evidenced.

Platform provisioning

Creating the clusters, networks and accounts that product teams deploy into.

Multi-cloud and hybrid

One tool and one workflow across several providers, which is a genuine advantage of the model.

Non-infrastructure providers

Managing services such as identity providers, DNS, monitoring and code hosts through the same workflow.

If a candidate's experience sits in a different row of that list from the work you have, that is not a reason to reject them, but it is the thing to probe. Ask what would be different about their approach in your setting. Someone who can answer that has transferable judgement. Someone who says it would be much the same has probably not thought about it.

Which Terraform versions are still supported

Terraform and its community fork both release frequently, and provider versions matter as much as the tool version, so pinning and a committed lock file are part of what currency means here.

The table is generated from public release data rather than written by hand, so it states what is supported today rather than what was true when any given article was published. Of the 8 most recent release lines, 2 are still maintained and 6 have passed their published end-of-life date. That distinction is the practical one when you read a job specification: a requirement written against a line that is now out of support tells you the specification is older than the codebase it describes, and it is worth asking which of the two the new developer will actually work in.

Hashicorp Terraform release lines
ReleaseReleasedEnd of lifeStatusLatest patch
1.162026-08-26none publishedNo published end-of-life date1.16.4 (2026-09-23)
1.152026-04-29none publishedNo published end-of-life date1.15.9 (2026-08-19)
1.142025-11-192026-08-26End of life1.14.9 (2026-04-20)
1.132025-08-202026-04-29End of life1.13.5 (2025-11-05)
1.122025-05-142025-11-19End of life1.12.2 (2025-06-11)
1.112025-02-272025-08-20End of life1.11.4 (2025-04-09)
1.102024-11-262025-05-14End of life1.10.5 (2025-01-22)
1.92024-06-262025-02-27End of life1.9.8 (2024-10-16)

Source: endoflife.date public release data, read 2026-09-25.

Two questions follow from this table in an interview. The first is which line the candidate has most recently shipped against, because someone whose last production work was on an unsupported line has not had to deal with the changes since. The second is how they have handled an upgrade. Version migrations are where you see whether a developer reads release notes, writes characterisation tests before changing anything, and knows how to stage a rollout, or whether they upgrade in place on a Friday and hope.

The toolchain around it

Nobody hires for Terraform alone. The surrounding tools are where most of the day-to-day work happens, and a gap in any of them costs more time than a gap in the core library. This is the set that turns up most often on real job specifications alongside it.

Remote state with locking
Shared state in object storage or a managed backend. Non-negotiable for team use.
Modules
Reusable components. Useful in moderation and a common source of over-abstraction.
Terragrunt or native stacks
Managing many configurations and reducing repetition across environments.
tflint and tfsec or Checkov
Linting and security scanning, run before anything reaches review.
A pipeline with plan on review
Plans posted on pull requests and applies gated behind approval.
Provider plugins
The cloud and service integrations. Version pinning here matters as much as anywhere.
A secret manager
Credentials referenced rather than written into configuration or state.
Infracost or similar
Showing the cost impact of a change at review time rather than at month end.

Related skills that frequently appear on the same specification: Go, Microsoft Azure, AWS, DevOps, Kubernetes.

What to test in an interview

These are the topics that separate candidates in practice. Each one is given with why it discriminates, what a strong answer sounds like, and the response that should make you slow down. None of them requires a whiteboard.

State management

The most dangerous part of the tool and the clearest test of real experience.

Reading a plan

The habit that prevents most Terraform outages.

Blast radius and code structure

An architectural decision that is very hard to change once an estate depends on it.

Handling drift

Manual changes happen, and how someone responds to them says a lot.

Secrets in configuration and state

State files contain resource attributes, including sensitive ones.

Module design

Over-abstraction is the most common structural problem in mature Terraform codebases.

The licence change and the fork

A live commercial question rather than a technical one.

Warning signs in a Terraform codebase

The fastest way to read a candidate is to ask what they have found wrong in code they inherited. These are the patterns that come up most often, what they cost, and what fixing them looks like. A developer who recognises three or four of these from their own experience is worth more than one who can recite the documentation.

Local state

One configuration for everything

Applying without reading the plan

Unpinned provider versions

Over-modularisation

Manual changes alongside Terraform

What each level can own

Job titles are not comparable between companies, so it is more useful to describe levels by what a person can be left to own without supervision. These are the boundaries we use when we assess a Terraform engineer.

Junior
Makes changes within an established configuration. Should not apply to production unsupervised.
Mid-level
Owns the infrastructure definition for a service, writes modules, and reads plans carefully.
Senior
Owns the state architecture, the blast radius design, the pipeline and the provider upgrade strategy. Can recover from state problems.
Staff
Owns the standards across teams, the module library, the policy controls, and the decision about the tool and licence direction.

How the work is usually scoped

Team shape follows the kind of work, not the headcount you happen to have budget for. These are the shapes that come up most often and the constraint that actually governs each one.

Greenfield infrastructure definition

Importing an existing estate

Module library

Pipeline and policy controls

State restructuring

Migration work you may actually be hiring for

A large share of Terraform work is not new development. It is moving an existing system from one state to another while it stays in service. These are the migrations that come up most often, and each one asks for a different kind of experience from the person you hire.

Console-managed infrastructure to Terraform

A single monolithic configuration to separated state

Terraform to the community fork

Manual applies to a pipeline

Migration work rewards a different temperament from greenfield work. The useful question in an interview is not whether someone has done the specific migration you face, but whether they have ever run one incrementally: behind a flag, with both paths live, and with a way back. Developers who have only done big-bang cutovers tend to propose them again.

What a good brief for this role contains

Most of the time lost in hiring a Terraform engineer is lost before anyone is interviewed, in the gap between what the brief says and what the team actually needs. These are the points that, for this technology specifically, change who the right candidate is. A brief that answers them can be matched in days. One that does not produces a shortlist that looks reasonable and converts badly.

If you cannot answer some of these yet, that is normal and it is still worth writing down which ones are open. An unknown that is named can be worked around. An unknown that is papered over in a job specification turns into a rejected shortlist and a restart four weeks later.

What the US market pays for this work

Terraform work is counted by the US Bureau of Labor Statistics under Network and Computer Systems Administrators. That classification is broader than the technology itself, so treat the figures as the shape of the market a Terraform engineer is hired into rather than as a rate card for the skill. Across the United States the Bureau counts 314,340 people in this occupation, with a median annual wage of $99,130.

US annual wages, Network and Computer Systems Administrators, May 2025
US annual wages, Network and Computer Systems Administrators, May 2025$99,130Median$62,640$155,05010th pct90th pctMiddle half $78K to $127K

The spread matters more than the midpoint. The 90th percentile is about 2.5 times the 10th, which is a wide band for a single occupation and tells you that the title on its own carries very little pricing information. Two people described as a Terraform engineer can sit at $62,640 and $155,050 in the same national dataset. When a budget is set from a median without asking which end of that range the work actually needs, the hire that follows is usually the wrong one in one direction or the other.

Related classifications are worth reading alongside it, because teams hiring for Terraform frequently end up recruiting against these titles too:

US national wages, May 2025
OccupationEmployed25th percentileMedian75th percentile90th percentile
Network and Computer Systems Administrators314,340$78,010$99,130$126,640$155,050
Computer Network Architects179,740$104,620$134,050$168,200$202,680
Computer and Information Systems Managers670,570$138,060$175,140$220,730$297,510

Source: BLS Occupational Employment and Wage Statistics, May 2025. Figures cover all US employers and are not FuturByte rates.

These are employer-side wage figures for people on a US payroll. They exclude employer taxes, benefits, recruitment cost and the months a seat sits empty, all of which are real and none of which appear in a salary line. The useful way to read the table is as the cost of the alternative you are comparing against, not as a number to match.

How US metro markets compare for this role

The same job is priced very differently across the country. Ranked by median annual wage for Network and Computer Systems Administrators, the gap between the highest and lowest of the 28 metro areas covered here is a factor of about 1.7. San Jose sits at the top with a median of $133,360; Pittsburgh sits at the bottom with $80,440. A budget built from a national median will be wrong in both of those markets, in opposite directions.

Median wage for network and computer systems administrators, by US metro area
Median wage for network and computer systems administrators, by US metro areaSan Jose, CA: $133,360San Jose, CASan Jose, CA$133,360San Francisco, CA: $129,680San Francisco, CASan Francisco, CA$129,680Washington, D.C.: $125,430Washington, D.C.Washington, D.C.$125,430Baltimore, MD: $122,950Baltimore, MDBaltimore, MD$122,950New York, NY: $119,390New York, NYNew York, NY$119,390Boston, MA: $116,770Boston, MABoston, MA$116,770Los Angeles, CA: $106,290Los Angeles, CALos Angeles, CA$106,290San Diego, CA: $105,170San Diego, CASan Diego, CA$105,170Denver, CO: $105,090Denver, CODenver, CO$105,090Austin, TX: $104,520Austin, TXAustin, TX$104,520Seattle, WA: $104,440Seattle, WASeattle, WA$104,440Raleigh, NC: $103,380Raleigh, NCRaleigh, NC$103,380Dallas-Fort Worth, TX: $103,260Dallas-Fort Worth, TXDallas-Fort Worth, TX$103,260Chicago, IL: $103,170Chicago, ILChicago, IL$103,170Portland, OR: $102,950Portland, ORPortland, OR$102,950Minneapolis-St. Paul, MN: $102,790Minneapolis-St. Paul, MNMinneapolis-St. Paul, MN$102,790Tampa, FL: $101,560Tampa, FLTampa, FL$101,560Houston, TX: $101,430Houston, TXHouston, TX$101,430Atlanta, GA: $101,000Atlanta, GAAtlanta, GA$101,000Philadelphia, PA: $100,460Philadelphia, PAPhiladelphia, PA$100,460Salt Lake City, UT: $99,110Salt Lake City, UTSalt Lake City, UT$99,110Miami, FL: $97,180Miami, FLMiami, FL$97,180Detroit, MI: $96,400Detroit, MIDetroit, MI$96,400Phoenix, AZ: $93,730Phoenix, AZPhoenix, AZ$93,730Kansas City, MO: $91,980Kansas City, MOKansas City, MO$91,980Orlando, FL: $91,800Orlando, FLOrlando, FL$91,800Charlotte, NC: $89,990Charlotte, NCCharlotte, NC$89,990Pittsburgh, PA: $80,440Pittsburgh, PAPittsburgh, PA$80,440
Network and Computer Systems Administrators by metro area, May 2025, ranked by median wage
Metro areaEmployedMedian wagevs US medianLocation quotient
San Jose, CA2,460$133,360+35%1.07
San Francisco, CA3,910$129,680+31%0.81
Washington, D.C.9,920$125,430+27%1.57
Baltimore, MD4,620$122,950+24%1.69
New York, NY17,690$119,390+20%0.92
Boston, MA6,760$116,770+18%1.24
Los Angeles, CA8,770$106,290+7%0.69
San Diego, CA2,510$105,170+6%0.81
Denver, CO4,670$105,090+6%1.44
Austin, TX5,030$104,520+5%1.92
Seattle, WA5,530$104,440+5%1.31
Raleigh, NC2,730$103,380+4%1.82
Dallas-Fort Worth, TX11,740$103,260+4%1.43
Chicago, IL6,950$103,170+4%0.76
Portland, OR2,820$102,950+4%1.15
Minneapolis-St. Paul, MN3,200$102,790+4%0.81
Tampa, FL4,720$101,560+2%1.61
Houston, TX6,330$101,430+2%0.95
Atlanta, GA6,140$101,000+2%1.05
Philadelphia, PA4,050$100,460+1%0.69
Salt Lake City, UT1,130$99,1100%0.68
Miami, FL6,340$97,180-2%1.11
Detroit, MI3,010$96,400-3%0.78
Phoenix, AZ4,370$93,730-5%0.91
Kansas City, MO2,760$91,980-7%1.25
Orlando, FL4,260$91,800-7%1.49
Charlotte, NC4,180$89,990-9%1.52
Pittsburgh, PA1,570$80,440-19%0.70

Location quotient compares how concentrated this occupation is in the metro against the national average. A value above 1 means the metro has more of this work than its size would predict.

The location quotient column is the more useful one for hiring. A high median tells you what a role costs; a high quotient tells you whether the people exist. Washington, D.C., Baltimore, Austin, Raleigh, Tampa, Charlotte each have a quotient of 1.5 or above, meaning the work is concentrated there well beyond what the size of the local economy would predict. Those are the markets where a search is likely to be quick and competitive at the same time, and where a counter-offer is most likely to take a candidate off the table late in the process.

The opposite case is worth planning for too. In a metro with a low quotient, the total pool is small even when wages look reasonable, so the realistic options are to widen the search radius, accept a longer time to hire, or bring the capability in from outside the local market entirely. That last option is what most teams are weighing when they come to us.

Hiring risks worth naming

Every one of these has produced a bad hire somewhere. They are written down so that the process tests for them deliberately rather than discovering them in month three.

No experience of state problems. Ask about a state file they had to repair. This is where Terraform causes real damage.

Applying without reading plans. Ask about an apply they stopped. The habit of reading is what prevents outages.

Over-abstraction instinct. Ask about a module they simplified. Restraint matters more here than capability.

Unaware of the licence situation. Relevant for organisations with policies about licensing, and a reasonable proxy for ecosystem engagement.

Hiring Terraform developers by metro area

Wages for this occupation vary more between US metro areas than most budget models assume. Each page below sets out the published employment and wage figures for that market, how it compares with the national picture, and what the local industry mix means for the kind of Terraform engineer who will be available.

Frequently asked questions

Do we need Terraform if our cloud provider has its own tool?

Provider-native tools are perfectly good when you use one cloud and intend to keep it that way. Terraform's advantages are one workflow across providers, a very large ecosystem including non-infrastructure services such as DNS, identity and monitoring, and a much larger hiring pool. For most organisations the hiring and ecosystem arguments are the decisive ones.

What happened with the Terraform licence?

HashiCorp moved Terraform from an open-source licence to a business source licence, which restricts certain competing commercial uses. A community fork was created under the original terms and is maintained by a foundation. For most organisations simply using the tool, nothing practical changed. For those with policies requiring open-source licences, or building products around it, the fork is worth evaluating.

How dangerous is Terraform really?

Dangerous enough to deserve respect. A misread plan can destroy and recreate a database. A lost or corrupted state file can leave an estate unmanageable. These are not exotic scenarios; they happen to teams that skip remote state, apply without reading, or put everything in one configuration. With those three disciplines in place it is safe, and without them it is genuinely risky.

Should we import our existing infrastructure?

Yes for anything you intend to keep changing, because unmanaged infrastructure is undocumented infrastructure. Be prepared for it to take longer than writing new configuration, and for the process to reveal settings nobody knew existed. Import the foundational layers first, such as networking and permissions, since those are where undocumented configuration hurts most.

How should we structure our Terraform code?

Separate state by environment and by how often things change. Networking, shared services and application infrastructure have different lifecycles and should not share a state file. Modules are for patterns genuinely repeated across environments, not for wrapping individual resources. Getting this wrong is one of the harder things to correct later, because restructuring state is risky work.

Can Terraform manage things other than cloud infrastructure?

Yes, and this is underused. Providers exist for DNS, identity providers, monitoring tools, code hosts and many software-as-a-service products. Bringing those under the same review-and-apply workflow means the configuration of your whole operating environment becomes visible in one place rather than scattered across consoles.

Who should be allowed to apply to production?

Ideally nobody directly, with applies running through a pipeline after an approved plan. That gives you review, an audit trail and a consistent execution environment. Where individuals do apply, it should be a small group with the state backend permissions to match, and console write access to managed resources should be restricted for everyone.

Do our developers need to know Terraform?

Reading it, usually yes, because understanding what infrastructure their service depends on is part of owning it. Writing and applying it is a specialist concern in most organisations. A good middle position is that developers can propose changes and read plans, and a smaller group owns the structure and the approval.