As many of us in the DevOps scene know, most companies are hiring or at least trying to do so. The required skills and job descriptions can change entirely from company to company. As a broad overview, most teams are looking for a candidate from either an operations & infrastructure background or someone from a software engineering & development background, then combined with some important key skills in between relating to Continuous Integration, Configuration Management, Continuous Delivery/Deployment, Cloud Infrastructure and currently in high-demand is knowledge of Container Orchestration.
In the ideal world, the two backgrounds will meet somewhere in the middle to form Dev and Ops but in most cases, there is a lean towards one side or the other while maintaining sufficient skills to understand the needs and demands of their counterparts in order to work collaboratively and achieve the end goal of Continuous Delivery/Deployment. Every company is different and there isn't necessarily a right or wrong here. It all depends on your infrastructure, tech stack, other team members' skills and the individual goals which you wish to achieve by hiring this individual.
Now given the various routes to becoming a DevOps practitioner, how does a hiring manager focus their search and selection process to ensure that they're hitting the mark?
1) Decide on the background
Assess the strengths of your existing team. Do you already have some amazing software engineers but you're lacking the infrastructure knowledge? Aim to close these gaps in skills. You may have been given the budget to hire for DevOps but you don't have to spend weeks/months searching for the best software engineer who happens to use Docker & Kubernetes because they are the current hot trends in this space. Find the person that will provide the most value in your environment and progress from there.
2) Contractor or Permanent Employee?
Many hiring managers will automatically start searching for a Full-Time permanent employee when their needs may suggest that they have other options. Sometimes a contractor is your best bet or maybe contract-hire. If you're aiming to design, implement and build a new DevOps environment, why not find a senior person who has done this a number of times already? Try hiring a senior contractor and bring on a junior Full-Time hire in parallel, this way you'll be able to retain the external contractor knowledge by having them work alongside the junior hire. Contractors can be expensive but the knowledge they can bring can be invaluable, especially if the work can be completed over a shorter time frame. Again, this is just another point of view and you might be best off with a Full-Time hire to grow the team.
3) CTRL F is not the solution
Focus on their understanding of DevOps & CICD related processes over specific tools. I believe the best approach is to focus on finding someone who understands the methodologies over the tools. Do they understand the concept of Continuous Integration or the concept of Continuous Delivery, not do they use Jenkins vs Bamboo vs TeamCity and so on. Try not to get caught up in the exact toolchain. The focus should be on the candidates' ability to solve problems. Are they obsessed with increasing efficiency, saving time, automating manual processes and constantly searching for flaws in the system? They might be the person you were looking for but you missed them because you didn't see the word Puppet on the resume.
4) Work closely with your internal talent acquisition team and/or an external recruiter
Be clear and precise with what you're looking for and have an ongoing, open communication with recruiters. They can and will help you if used effectively. The job of these recruiters is to save you time by sourcing candidates while you're focusing on your day to day role. Work closely with them and deliver in the same way that you would expect them to deliver for you. If you say you will review a candidate by X time, do it. If they say they'll have a candidate in your inbox by Y time, make sure they do it too. Start by setting up an initial call to talk through your requirement, layout a timeline from there in which you expect candidates by a specific time and explain your process in terms of when you will interview, how many interview rounds and how soon after you will be able to make a final decision on whether to offer or reject the candidates. If you can get this relationship working well, you'll save lots of time. As the person in need of this hire, make sure your internal teams are focused on supporting your process and not blocking it.
Decide how much you want to pay. It's not all about the money but you can waste a lot of yours and other peoples time if you don't lock down the ballpark salary or hourly rate that you can afford. If your budget doesn't stretch as far as your competitors then you need to consider what else can help sell the opportunity. Flexible working hours and remote working options are some great ways to do this. Most companies have snacks, beer and cool offices nowadays so focus on the real value such as the innovative work your team are doing and how awesome your game changing product might be.
6) Drop the ego
You may have an amazing company and/or product but you also have some hot competition. Everyone is hiring in this space and candidates have a lot of the buying power. It is no longer as simple as saying "We are hiring" and the awesome candidates come flowing in. You need to sell your opportunities. Maintaining a good reputation as a great place to work is also important. A poor hiring process, such as interviewing without giving feedback, can contribute to bad rumours being spread across the industry. It only takes a few minutes to leave a sour review on Glassdoor.
7) A smooth process is a successful one
"Let's get every single person within the company to do a 1-hour interview with the new DevOps person we are hiring!" Let's not do that. 2 or 3 stages should be sufficient. You have Managers and Directors for a reason. Trust your instinct and use your experience to make decisions on who will fit into your organisation. Some of the most successful companies at hiring can do one phone screen followed by an in-person meeting. During the in-person interview, spend a morning or afternoon allowing the candidate to meet the relevant leaders and senior members of their direct team, then take them for lunch, dinner or drinks where you can see how they are on a social level - if you can't have a simple conversation with them then you probably won't enjoy working with them. If the thumbs are up, make the hire and don't wait around. A good candidate will usually have numerous offers on the table at the same time.
If all goes well, you should be inviting your shiny new employee or contractor into the office in the next few weeks and hopefully many more throughout the year.
What does he know anyway?
Conor Delanbanque has been recruiting and leading recruitment teams in the DevOps space for the past few years. As well as being exclusively responsible for growing some of the most innovative DevOps & SRE teams in the US and Europe as an external consultant and recruiting partner, Conor also founded the Future of DevOps Thought Leaders Debate, sponsors DockerNYC Meetup on a regular basis and co-hosts ServerlessNYC. You can tweet him at @ConorDevOps, find him on LinkedIn or at events, expos and writing articles on DevOps.com