Explore top IT Infrastructure jobs with Hays

As technology recruitment experts, we’ll match your skills with forward-thinking organizations, competitive salaries and meaningful career progression in an IT infrastructure role.

Search for a job

Advance your career in IT Infrastructure

The transformation of IT infrastructure is accelerating—and your skills are at the heart of it. From cloud migration to modernizing legacy systems, businesses need clear digital strategies and the right professionals to bring them to life. If you're ready to lead the change, we’re here to connect you with the right opportunities.

 

IT Infrastructure roles we recruit for

 

We place professionals across a wide range of roles, including:

- IT Infrastructure Support

- Infrastructure Management

- Cloud Engineering & Migration

- Network & Systems Administration

- Cybersecurity & Risk Management

- Desktop Support

- Infrastructure Architecture

- DevOps & Automation

 

Whether you're just starting out or stepping into a leadership role, we’ll help you find a position that fits your skills and career goals.

 

An error occurred while processing the template.
The following has evaluated to null or missing:
==> haysJobsLocalService.getjobs(keyword, null, null,"3", ucmLocale)  [in template "20115#20151#T-HAYS-JOBS-BY-KEYWORD-WEB2" at line 26, column 36]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign jobsResults = haysJobsLocalSe...  [in template "20115#20151#T-HAYS-JOBS-BY-KEYWORD-WEB2" at line 26, column 13]
----
1<div class="py-16"> 
2 
3<#assign haysJobsLocalService = serviceLocator.findService("com.hays.jobs.service.HaysJobsService")> 
4<#assign ucmLocaleKey = themeDisplay.getLocale()+"."+siteType+"."+"ucmLocale"> 
5<#assign mobileUrlKey = themeDisplay.getLocale()+"."+siteType+"."+"WEB2_Mobile_Hostname"> 
6<#assign jobURLKey = themeDisplay.getLocale()+"."+siteType+"."+"WEB2_JobSearch"> 
7<#assign jobSearchUrl = propsUtil.get(jobURLKey)!""> 
8<#assign ucmLocale = propsUtil.get(ucmLocaleKey)!""> 
9<#assign mobilePortalUrl = propsUtil.get(mobileUrlKey) !""> 
10<#assign langId = themeDisplay.getLanguageId() /> 
11<#assign currency = staticUtil["java.util.Currency"]> 
12<#assign textFormatter = staticUtil["java.net.URLEncoder"]> 
13 
14<#assign index = 3 /> 
15<#assign jobCardTitle = ""/> 
16<#assign portalSearchURL = "" /> 
17<#assign jobFriendlyUrl = "" /> 
18<#assign jobCardSalaryDescription = ""/> 
19<#assign jobCardLocationDescription = ""/> 
20 
21<#if JobsByKewords.getSiblings()?has_content> 
22	<#list JobsByKewords.getSiblings() as cur_JobsByKeword> 
23        <#assign keyword = cur_JobsByKeword.Keyword.getData()> 
24        <#assign encodedKeyword = textFormatter.encode(keyword, "UTF-8")> 
25        <#if keyword?? && keyword?has_content> 
26            <#assign jobsResults = haysJobsLocalService.getjobs(keyword, null, null,"3", ucmLocale)> 
27            <#assign portalSearchURL = mobilePortalUrl + "/" + jobSearchUrl + "?q=${encodedKeyword}" /> 
28 
29            <#if !jobsResults.getJSONObject("result").isNull("jobs")> 
30                <div> 
31 
32                        <div class="d-flex justify-content-between align-items-end container-content flex-wrap mb-9"> 
33                            <#if cur_JobsByKeword.Title.getData()?has_content> 
34                                <h2 class="text-brand-blue font-weight-light mb-0 fs-700 fs-lg-800 mb-0 section-heading"> 
35                                    ${cur_JobsByKeword.Title.getData()?keep_before(" ")} 
36                                    <span class="font-weight-semibold">${cur_JobsByKeword.Title.getData()?keep_after(" ")}</span> 
37                                </h2> 
38                            </#if> 
39                            <#if cur_JobsByKeword.CTA.getData()?has_content> 
40                                <a class="button button--arrow button--no-style-teal-dark" href=${portalSearchURL}>${cur_JobsByKeword.CTA.getData()}</a> 
41                            </#if> 
42                        </div> 
43 
44                    <#assign resultJobs = jobsResults.getJSONObject("result").getJSONArray("jobs")> 
45                    <#assign jobsResultsLength = resultJobs.length() /> 
46                    <#assign index = (jobsResultsLength > 3)?then(3, jobsResultsLength) /> 
47 
48                    <div class="carousel"> 
49                        <ul class="container-content grid grid-3 grid-gap-16 grid-gap-lg-32 grid-lg-3"> 
50                            <#list 0..index-1 as i> 
51                                <#if jobsResultsLength != 0> 
52                                    <#if resultJobs.getJSONObject(i).has("nonFilterableCustomFields")> 
53                                        <#if resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").has("JobTitle")> 
54                                            <#assign jobCardTitle = resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").getJSONObject("JobTitle").getJSONArray("values")?replace("\"", "")?replace("]", "")?replace("[", "")/> 
55                                            <#assign jobCardTitle = jobCardTitle?replace("\\\\u(....)", "&#x$1;", "r")/> 
56                                        </#if> 
57                                        <#if resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").has("xLocationDescription")> 
58                                            <#assign jobCardLocationDescription = resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").getJSONObject("xLocationDescription").getJSONArray("values")?replace("\"", "")?replace("]", "")?replace("[", "")/> 
59                                            <#assign jobCardLocationDescription = jobCardLocationDescription?replace("\\\\u(....)", "&#x$1;", "r")/> 
60                                        </#if> 
61                                        <#if resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").has("xSalaryDescription")> 
62                                            <#assign jobCardSalaryDescription = resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").getJSONObject("xSalaryDescription").getJSONArray("values")?replace("\"", "")?replace("]", "")?replace("[", "")/> 
63                                            <#assign jobCardSalaryDescription = jobCardSalaryDescription?replace("\\\\u(....)", "&#x$1;", "r")/> 
64                                        </#if> 
65                                        <#if resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").has("xLocaleRecordID")> 
66                                            <#assign url = resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").getJSONObject("xLocaleRecordID").getJSONArray("values")?replace("\"", "")?replace("]", "")?replace("[", "")/> 
67                                            <#assign jobUrl = url?keep_after("//")?keep_after("/") /> 
68                                          <#assign jobFriendlyUrl = mobilePortalUrl + "/" + jobUrl + "?jobSource=HaysGCJ" /> 
69                                        </#if> 
70                                    </#if> 
71                                </#if> 
72 
73                                <li class="carousel-slide"> 
74                                    <a href="${jobFriendlyUrl}" class="job-card job-card--grid-teal is-active d-block rounded-lg border border-borders py-7 pb-lg-6 pt-lg-5 px-6 d-flex"> 
75                                        <h4 class="text-black lh-title fs-500 fs-lg-600 font-weight-bold mb-4"> 
76                                            ${jobCardTitle} 
77                                        </h4> 
78                                        <ul class="font-weight-light mb-4 mb-lg-4 fs-400 fs-lg-400"> 
79                                            <li class="d-flex mb-3"> 
80                                                <svg class="feather-icon mr-3 mr-lg-5"> 
81                                                    <path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path> 
82                                                    <circle cx="12" cy="10" r="3"></circle> 
83                                                </svg> 
84                                                <span class="job-card-label font-weight-normal">${jobCardLocationDescription}</span> 
85                                            </li> 
86                                            <li class="d-flex align-items-start"> 
87                                                <div class="group-center mr-3 mr-lg-5"> 
88                                                    <svg class="feather-icon"> 
89                                                        <circle cx="12" cy="12" r="10"></circle> 
90                                                    </svg> 
91                                                     <span> 
92                                                        <#if langId == "en_AE" || langId == "en_CZ" || langId == "en_PL"> 
93                                                            <svg class="feather-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="width:13px;height:13px"> 
94                                                                <path d="M13 5C13 6.10457 10.5376 7 7.5 7C4.46243 7 2 6.10457 2 5M13 5C13 3.89543 10.5376 3 7.5 3C4.46243 3 2 3.89543 2 5M13 5V9.45715C11.7785 9.82398 11 10.3789 11 11M2 5V17C2 18.1046 4.46243 19 7.5 19C8.82963 19 10.0491 18.8284 11 18.5429V11M2 9C2 10.1046 4.46243 11 7.5 11C8.82963 11 10.0491 10.8284 11 10.5429M2 13C2 14.1046 4.46243 15 7.5 15C8.82963 15 10.0491 14.8284 11 14.5429M22 11C22 12.1046 19.5376 13 16.5 13C13.4624 13 11 12.1046 11 11M22 11C22 9.89543 19.5376 9 16.5 9C13.4624 9 11 9.89543 11 11M22 11V19C22 20.1046 19.5376 21 16.5 21C13.4624 21 11 20.1046 11 19V11M22 15C22 16.1046 19.5376 17 16.5 17C13.4624 17 11 16.1046 11 15" stroke="" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 
95                                                            </svg> 
96                                                        <#else> 
97                                                            ${currency.getInstance(themeDisplay.getLocale()).getSymbol(themeDisplay.getLocale())} 
98                                                        </#if> 
99                                                    </span> 
100                                                </div> 
101                                                <span class="job-card-label font-weight-normal">${jobCardSalaryDescription}</span> 
102                                            </li> 
103                                        </ul> 
104 
105                                        <div class="job-card__action"> 
106                                            <#if (JobDetailText.getData())??> 
107                                                <button onClick="location.href='${jobFriendlyUrl}'" class="button button--small button--teal-dark button--arrow"> 
108                                                    ${JobDetailText.getData()} 
109                                                </button> 
110                                            </#if> 
111                                        </div> 
112 
113                                    </a> 
114                                </li> 
115                            </#list> 
116                        </ul> 
117                    </div> 
118                </div> 
119                <br/> 
120            </#if> 
121        </#if> 
122    </#list> 
123</#if> 
124</div> 

Our technology recruitment process

IT Infrastructure jobs FAQs

Yes, there are currently plenty of IT infrastructure roles. The shift to remote and hybrid working has meant a spike in demand for cloud infrastructure skills and services such as AWS, Azure and Google Cloud.

Infrastructure specialists are needed due to the continued building of new equipment, and second line desktop support experts have increased in strategic importance as cloud services continue to be rolled out. There will always be teething issues when implementing something new.

Some of the current highest paying jobs include Network Engineers earning between $125,000 and $165,000 in New York, and Service Delivery Managers with a salary of $132,000 to $176,000 in Los Angeles.

Our 2025 Salary Guide includes updated market-rate salaries and jobs in-demand or use our Salary Checker to uncover salaries for a wide range of positions.

Permanent jobs that are in-demand right now are: Systems Administrator, Application Support AnalystService Desk Manager, and Network Engineer.

However, the increasing number of digital transformation initiatives means contractor roles are also available for migrations and other one-off projects – particularly if you have niche expertise.

In-demand contract roles include: Network Engineers, Systems Administrators and Application Support Analysts.

If you’re a Network Engineer, you should consider Cisco qualifications such as CCNA, CCNP and CCIE. Infrastructure Engineers working on remote servers would find VMware certifications useful. 

If you’re looking to better understand how business objectives and digital and IT capabilities inform each other, you could consider a move into service management. Both IT and infrastructure aligned, industry-standard service management qualification ITIL uses a systematic approach. It covers both continuous improvement and service strategies and will help you to adapt infrastructures at your own organisation and give you the agility to react quickly to change. 

Cloud skills have seen sustained demand since the pivot to remote working and will continue to do so. Cyber security skills are also sought after, and if you’re an infrastructure engineer looking to upskill, you might consider moving into a network security or security specialist role.

Whilst technical skills remain essential, softer ones such as stakeholder engagement also help an infrastructure manager secure buy-in on changes and new initiatives from varying audiences.

Didn't find the role you were looking for?

Upload your CV and we'll match you with opportunities.

Upload your CV

Need help in your career?

Talk to our expert recruiters about your career path.

Speak to a recruiter