Hiring guide · Custom Software

Hire AWS Cloud Engineers: Rates, Vetting and Engagement Models

The short answer

Plan on roughly $30 to $75 per hour for offshore and nearshore AWS cloud engineers depending on seniority, $90 to $160 per hour onshore in the US, and $150k to $190k base for a strong in-house senior in a US metro. Those are Digital Heroes delivery and market numbers, and they move with region, seniority and whether the person is genuinely production-hardened or just AWS-certified. For most teams under 50 engineers, the honest recommendation is staff augmentation or an agency pod rather than a first in-house hire: cloud work is bursty, the initial build takes six to twelve weeks and then drops to a maintenance trickle, and a full-time hire spends the next nine months bored and drifting into work you did not hire them for. Hire in-house once your infrastructure changes weekly and someone needs to own the pager permanently.

Four jobs hiding behind one title

The job title hides enormous variance. On a real project, an AWS cloud engineer is doing some mix of four different jobs: writing infrastructure as code (Terraform, CDK or CloudFormation), designing the network and identity layer (VPCs, subnets, security groups, IAM roles and policies), running the delivery pipeline (CodePipeline, GitHub Actions, ECS or EKS deploys), and owning the on-call story (CloudWatch alarms, log retention, incident response). Some people are strong in two of those four. Almost nobody is strong in all four, and the ones who are cost accordingly.

Here is the failure we get called in to clean up. A funded startup hires a contractor who has three AWS certifications and a confident LinkedIn. He builds the environment by clicking through the console because it is faster, promises to "codify it later", and ships a working staging environment in two weeks. Everyone is happy. Six months later he is gone, and the team discovers that production runs on an EC2 instance nobody can rebuild, the security group allows 0.0.0.0/0 on port 22 because that was easier during setup, the RDS instance has no automated snapshot policy, and the entire IAM strategy is one admin user whose access keys are in a shared 1Password note and hardcoded in two Lambda functions. Then the bill arrives: $14k a month for a workload that should cost $2k, because there are three NAT gateways nobody needed, unattached EBS volumes from deleted instances, and a dev environment that has been running at full size since March.

That is the actual failure mode. It is not that the engineer could not use AWS. AWS makes it trivially easy to build something that works today and is unownable tomorrow. The difference between a good AWS engineer and an expensive one is almost never raw service knowledge. It is whether they instinctively refuse to create anything by hand, whether they think about the second person who has to touch this, and whether they treat the bill as an engineering metric rather than a finance problem.

The second common failure is scope confusion. Teams hire an "AWS cloud engineer" when what they actually needed was a backend engineer who is comfortable with AWS, or a full DevOps owner, or a one-time cost audit. You end up with someone excellent at Terraform modules sitting in sprint planning for a Node API they were never meant to write.

Which engagement model fits

In-house hire. Right when infrastructure is a living thing: multiple environments changing weekly, real compliance obligations, a genuine on-call rotation, or an EKS platform other engineers build on. The value of in-house is context accumulation. Someone who knows why the VPC is peered that way and why that Lambda has a 900 second timeout is worth a lot at 2am. The problem is that most teams do not have enough cloud work to fill a week, every week. A senior AWS engineer with four hours of real work per week will invent projects, and those projects usually involve migrating something that did not need migrating.

Freelancer. Good for bounded, well-specified work: a cost audit, a Terraform migration off ClickOps, a one-off EKS setup, a SOC 2 evidence push. Bad for anything that needs to survive the engagement. The structural risk is that a freelancer optimizes for a working handoff at the end date, not for a system your team can operate in year two. Also, freelancers are the highest-variance population here, and AWS is a field where a confident wrong answer looks exactly like a confident right answer for about five months.

Agency. Good when you want an outcome rather than a person: build the platform, hand it over documented, stay on for support. You get a team, so the Terraform person and the Kubernetes person and the security person can be different humans without you hiring three people. The trade-off is coordination cost and the risk that you are one client among many. Ask specifically who is on your account and what happens when they get pulled.

Staff augmentation. Our most common structure for this role at Digital Heroes, and the best fit for most teams searching this term. You get one or two engineers embedded in your standups, your repo, your Slack, working to your roadmap, but you are not carrying the hiring cost, the ramp risk or the bench when the work thins out. It fits teams who have enough AWS work for a person right now but are not certain they will in nine months, and teams who need to move in two weeks rather than three months.

Rates and what it really costs

These ranges reflect what we see in our own delivery work and in the market we compete in. Treat them as directional, because region and seniority move them more than anything else.

  • Offshore and nearshore (India, Eastern Europe, LATAM): roughly $30 to $50 per hour for a mid-level engineer who can write Terraform and run a pipeline. Roughly $50 to $75 for a genuinely senior one who can design the account structure and own on-call.
  • Onshore US and Western Europe: roughly $90 to $160 per hour contract, with specialists in EKS at scale, FinOps or regulated environments going higher.
  • In-house US base salary: roughly $120k to $150k for mid-level, $150k to $190k for senior, higher in the Bay Area and New York and for platform engineering titles.

The salary number is the one that misleads people. In our own budgeting, benefits, payroll taxes, insurance, equipment and software push the real cost meaningfully above base, commonly in the range of a quarter to a third on top, and that is before you count anything else. Then add recruiting, which is either a contingency fee of a meaningful percentage of first-year salary or several weeks of your own engineering leadership's time doing screens. Then add ramp: an AWS engineer joining an existing environment is not productive on day one, because the first month is archaeology. Figure four to eight weeks before they are shipping changes to production with confidence. So a $160k senior is realistically a $210k to $230k first-year decision once you count everything, and you are committing to that before you know whether the workload sustains.

One number worth watching that is not a labor cost: the AWS bill itself. On most engagements where we do a cost pass, the savings from rightsizing, killing idle NAT gateways, moving steady-state compute to Savings Plans and cleaning up orphaned EBS and unused Elastic IPs pay for a meaningful slice of the engineering spend. If your monthly bill is above $10k and nobody has audited it in a year, the audit is usually the highest-ROI first project you can hand someone.

How to vet an AWS cloud engineer

Certifications tell you almost nothing. AWS Solutions Architect Professional is a real exam and a weak signal, because it tests recall of service capabilities, not judgment under production pressure. Here is what actually separates people.

The IAM question. Ask: "Walk me through how you would give a Lambda function read access to one S3 bucket." A weak answer attaches AmazonS3ReadOnlyAccess. A good answer writes a scoped inline or customer-managed policy on the function's execution role, restricted to that bucket ARN and its objects, and mentions that the trust policy matters as much as the permission policy. A very good answer asks whether the bucket is encrypted with a customer-managed KMS key, because then you also need kms:Decrypt and the key policy has to allow the role. That last detail is the one that separates people who have debugged real access denied errors from people who have read documentation.

The Terraform state question. Ask: "How do you handle Terraform state across environments, and what happens when two engineers apply at once?" You want remote state in S3 with DynamoDB state locking or S3 native locking, separate state per environment, and a clear opinion on workspaces versus directory-per-environment. Ask what they do when state drifts from reality, and listen for whether they reach for terraform import and targeted plans or whether they suggest deleting and recreating. Ask if they have ever had to surgically edit state. Anyone who has run Terraform seriously has a war story here. If they do not, they have run it on toys.

The networking question. Ask them to draw a VPC for a web app with a database. You are watching for public and private subnets across at least two availability zones, an internet gateway for public and a NAT gateway for private egress, security groups referencing other security groups rather than CIDR ranges, and the database in private subnets with no public accessibility. Then ask what the NAT gateway costs. If they have no idea, they have never owned a bill. Bonus signal: mentioning VPC endpoints for S3 and DynamoDB to avoid paying NAT data processing charges on traffic that never needed to leave the network.

The cost question. Ask: "The bill went up 40 percent last month. What do you do first?" Good answers go to Cost Explorer, group by service and then by tag or linked account, and look for the delta rather than the total. They mention that the answer is often data transfer or NAT processing rather than compute, because those are the line items people forget. They mention tagging discipline as the prerequisite that makes this answerable at all.

The failure question. "Tell me about a production incident in AWS that you caused." The specifics matter less than whether the story is real, whether they own it, and whether the fix was systemic. Someone who says a bad security group change cut off the app and the fix was to require plan review in CI is telling you how they think.

The take-home. Do not ask for a greenfield architecture diagram. Anyone can produce one. Instead give them a small, deliberately flawed Terraform repo, maybe 200 lines, with an over-permissive security group, hardcoded credentials, an unencrypted RDS instance, no state backend and a resource that will force replacement on the next apply. Ask them to review it and submit a plan for what they would change and in what order. Budget two hours and pay for it. What you learn is prioritization: do they lead with the credential leak and the open port, or do they lead with naming conventions? A strong candidate also tells you what they would not change yet, and why. If you would rather review a portfolio, ask to see a real Terraform module they wrote and walk through their variable design, and ask why they chose CDK over Terraform or vice versa on their last project. The reasoning is the artifact.

Red flags

  • Console-first instincts. If they describe solving problems by "going into the console and changing", without immediately flagging that the change must go back into code, you are buying future archaeology. Better question: "What is in your environment right now that is not in code, and how did it get there?" Everyone has something. The good ones know exactly what and are embarrassed by it.
  • Kubernetes as a default answer. Someone who reaches for EKS for a three-service app with 200 daily users is buying complexity you will pay for forever. Better question: "When would you use ECS Fargate over EKS, and when would you use neither?" A good engineer will happily put a small workload on Fargate or even a Lambda and tell you EKS is not worth its operational tax until you have real multi-team scale.
  • No opinion on the bill. If you ask about cost and get "that is usually a finance conversation", pass. Better question: "What is the most expensive mistake you have seen in an AWS account?" Real engineers have a favorite: the forgotten GPU instance, the CloudWatch Logs group with infinite retention, the cross-AZ chatter in a chatty microservice mesh.
  • Certifications carrying the resume. Five badges and no story about a 3am page. Better question: "Walk me through the last time an alarm woke you up. What fired, why, and what did you change afterward?" Cert-heavy candidates get vague fast here.
  • Secrets handwaving. If access keys and .env files come up casually and Secrets Manager, Parameter Store or IAM roles for service accounts do not, that is a real gap. Better question: "How does an application on ECS get its database password, and how does it get rotated?" You want instance or task roles and a managed secret store, not a key pair in an environment variable.

When to hire this role at all, and how we staff it

Be honest about which problem you have. If your product is a monolith on a few servers and your infrastructure changes twice a year, you do not need an AWS cloud engineer. You need a good backend engineer who is not scared of Terraform, or one focused engagement to codify what exists and hand you a runbook. If your bill is the pain, that is a cost audit, which is a two to four week project, not a hire. If your problem is that deploys are scary and slow, that is a CI/CD and delivery problem, and a DevOps generalist serves you better than a cloud specialist. If you are pursuing SOC 2 or HIPAA, you want someone who has done AWS in a regulated environment specifically, which is a different and pricier person than a general cloud engineer.

You genuinely need this role when infrastructure has become a product other engineers consume: multiple teams deploying independently, a platform layer with its own roadmap, real availability commitments to customers, and a pager that has to be someone's job rather than everyone's guilt.

At Digital Heroes we usually staff this as an embedded engineer or a small pod working inside your repo and your standups, starting with a two week discovery: read the account, map what exists, produce a prioritized findings list covering security exposure, cost, and what is not in code. That discovery pays for itself often enough that we lead with it. From there most clients run one engineer continuously for the build phase and step down to a lighter support arrangement once the environment is stable and documented, which is exactly the shape of the work and exactly what a full-time hire cannot flex to. Everything we build is Terraform or CDK in your repository, under your AWS accounts, with your team on every pull request, so if you later hire in-house the handover is a git clone and a walkthrough, not a rescue.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. Standish's 2015 CHAOS research found roughly a third of software projects (about 36% by the Modern definition) fully succeed on time, on budget, and on scope, with top success drivers including executive support, user involvement, and clear requirements/business objectives. Source: Standish Group (CHAOS Report) (2015) →
  2. A 0.1-second improvement in mobile site speed increased retail conversions by 8.4% and average order value by 9.2%; travel conversions rose 10.1%. Source: Deloitte & Google (2020) →
  3. In an October 2025 survey of 530 small-business employers (conducted by TechnoMetrica, October 3-9, 2025), 88% reported using AI tools and 73% said those tools had been important to their competitiveness and growth over the past year, with 60% citing efficiency and productivity as the primary motivation for adoption (42% cited improving customer service). Source: Small Business & Entrepreneurship Council (SBE Council) (2025) →
  4. An EY survey found one in five U.S. payrolls contains errors, each costing an average of $291 to remediate, with a typical 1,000-employee organization spending roughly 29 workweeks per year fixing common payroll errors. Source: EY (Ernst & Young) (2022) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

How much does it cost to hire an AWS cloud engineer?
Based on our delivery and market experience, expect roughly $30 to $75 per hour offshore or nearshore depending on seniority, and roughly $90 to $160 per hour onshore in the US or Western Europe. In-house US base salaries typically run about $120k to $150k for mid-level and $150k to $190k for senior, higher in the Bay Area and New York. Rates vary significantly by region, by seniority, and by specialization, since EKS-at-scale, FinOps and regulated-environment engineers command a premium.
Should I use a freelancer or an agency to hire an AWS cloud engineer?
Use a freelancer for bounded, well-specified work like a cost audit or a one-time Terraform migration, and an agency or staff augmentation when the infrastructure has to survive and evolve after the engagement ends. The structural risk with freelancers is that they optimize for a working handoff on the end date rather than a system your team can operate in year two. An agency also lets your Terraform specialist and your Kubernetes specialist be different people without you hiring three engineers.
How do I test an AWS cloud engineer before hiring?
Give them a small, deliberately flawed Terraform repo of around 200 lines containing an over-permissive security group, a hardcoded credential, an unencrypted RDS instance and no remote state backend, then ask for a prioritized remediation plan. Budget two hours and pay for it. What you are measuring is prioritization: a strong candidate leads with the credential leak and the open port, tells you what they would not change yet, and explains why.
How long does it take to hire an AWS cloud engineer?
A full-time in-house hire in a competitive market realistically takes six to twelve weeks from opening the role to a signed offer, plus another four to eight weeks of ramp before they are confidently shipping production changes in an environment they did not build. Staff augmentation or an agency pod typically starts in one to three weeks because the vetting already happened. If your timeline is measured in weeks rather than quarters, an embedded engineer is the only model that meets it.
What is the difference in onshore versus offshore AWS engineer rates?
Onshore US and Western European contract rates typically run roughly $90 to $160 per hour, while offshore and nearshore rates for comparable seniority run roughly $30 to $75 per hour in our experience. The gap is real, but so is the variance in quality on both sides, so the vetting bar does not change. For AWS work specifically, timezone overlap matters more than most stacks because incident response and on-call handoffs need live humans.
Who owns the code and the AWS account when I hire an engineer or agency?
You should own the AWS accounts, the root credentials and the billing relationship outright, and all infrastructure code should live in your repository from day one, not in a vendor's. Get this in writing before work starts. Any arrangement where the vendor holds the account, the state file, or the Terraform modules in their own repo is a lock-in risk regardless of how the contract reads. At Digital Heroes everything is built in your repo under your accounts with your team on every pull request.
Do AWS certifications matter when hiring a cloud engineer?
They are a weak signal. Solutions Architect Professional and DevOps Engineer Professional are real exams, but they test recall of service capabilities rather than judgment under production pressure. Treat certifications as a filter for total beginners and nothing more, and weight the interview on IAM scoping, Terraform state handling, VPC design and whether they have an opinion about the bill.
Do I need an AWS cloud engineer or a DevOps engineer?
If your pain is that deploys are slow and scary, you want a DevOps generalist who owns CI/CD and delivery. If your pain is account architecture, networking, IAM, cost or a platform that other teams build on, you want an AWS cloud engineer. Many teams asking for cloud engineers actually need a backend engineer who is comfortable with Terraform, or a single four-week cost and security audit rather than a hire at all.
What are the biggest red flags in an AWS engineer interview?
Console-first instincts, reaching for EKS as a default answer on small workloads, no opinion about the bill, a resume carried by certifications with no incident stories, and casual talk about access keys in .env files without mentioning Secrets Manager, Parameter Store or IAM roles. Each one predicts a specific future problem: unownable infrastructure, unnecessary operational cost, bill surprises, shallow experience, and credential exposure. Ask for a story about the last alarm that woke them up, because vague answers here are very hard to fake past.
Is a solo freelancer enough for my project, or do I really need an agency?
A solo freelancer is a fine choice for a well-defined build under roughly $15,000 to $20,000 with a limited lifespan: an internal calculator, a scripted integration, a prototype. Above $50,000, or for any system your business will depend on for years, you are buying continuity as much as code: enforced code review, cover when someone is ill, and support that outlasts one person's career plans. Price the risk of a single point of failure, not just the hourly rate.
What happens if I stop paying for maintenance after launch?
Nothing breaks on day one, which is what makes it dangerous. Within 6 to 18 months, unpatched dependencies accumulate known vulnerabilities, an integrated API like Stripe ships a breaking change, and the first fix requires a developer to relearn a stale codebase at full price. Budget 15 to 20% of the build cost per year for upkeep; it is the difference between a $500 patch and a $15,000 emergency.
Should I ask for a fixed price or pay the agency hourly?
Fixed price for the first version, hourly or retainer for what comes after launch. A fixed-scope, fixed-price V1 puts the estimation risk on the agency, which is exactly where you want it while trust is unproven; hourly billing on an unscoped greenfield build is a blank check. After launch, flip it, because maintenance and small features arrive unpredictably and fixed-pricing every ticket wastes everyone's time.
What questions should I ask a development agency on the first call?
Ask who exactly will build it, what happens when scope changes mid-project, what their maintenance terms are after launch, and what they will need from you every week. Then ask them to describe a project that went wrong and what they changed afterward; teams that have shipped at real volume have war stories, and teams claiming a perfect record are hiding something. The scope-change answer matters most: a disciplined shop describes a written change-order process, not a vague promise to be flexible.
How much should a small business expect to pay for custom software?
Across 2,000+ Digital Heroes projects, a small business system that replaces spreadsheets or one core workflow typically lands between $40,000 and $80,000, with more complex first versions running up to $150,000. The two levers that move the number most are integrations and user roles, not the team's hourly rate. Any quote under $15,000 for a full production system means the vendor has not understood your scope yet.
How many people should be working on my software project?
A typical $40,000 to $150,000 build runs on three to five people: a technical lead, one or two developers, a designer, and someone owning QA and project communication, often as overlapping part-time roles. More bodies do not make software arrive faster; past a point they slow it down with coordination overhead. The question that matters more than headcount is whether one named senior engineer is accountable for the outcome.
How long does it take from first call to software my team can actually use?
Plan for four to six months: two to three weeks of discovery, two to four weeks of design, then a 10 to 16 week build with testing. In Digital Heroes delivery experience the schedule killer is not engineering speed but decision lag; a client who takes two weeks to approve wireframes adds two weeks to launch. Book a weekly 30-minute decision slot before kickoff and most of that risk disappears.
Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?