3

We're a software team currently trying to hire a DevOps Engineer.

We have an assessment for Software Developer candidates and we're currently evaluating the idea of having an assessment for our DevOps Engineer candidates. Since we have not hired DevOps people before and barely know a few, it would help us greatly.

What would be your advice ? If you support there should be an assessment, then what would be the content ?

EDIT(Additional Info):

  • We need to hire a DevOps Engineer to bootstrap our all DevOps process/culture.
  • We have more than 100 servers. Around 20 different apps on them.

  • We want him/her to;

    • Install a main devops tool like Jenkins or Teamcity
    • Build the pipelines for all this apps and servers
    • CIntegration, CDelivery, CDeployment depending on what app does
    • help migrate to Linux and/or docker

About assessment

  • It must be about building and deploying a few apps interacting with each other to different targets with different configurations.

EDIT 2(answers):

Thanks for answers. While reading them, I'll answer the questions to make the backstory clearer.

@taleodor

  • Developers including me are doing provisioning/build/deployments. We're very unhappy about that.
  • Unfortunately, we can only hire one person for all our expectations.
    • We have plenty of time to put everything together, so it should not be problem for anyone who's willing to do all the stuff.
  • Assignment will be take-at-home and candidates will be given a few days to complete. No problem about that. After all assessment is complementary to interview.
  • I know a few DevOps people. I may get their help for evaluating assessments.

@030

I agree the devs automating their stuff is much better than another person doing that. But we have a big backlog about devops. We need someone to show us the way while doing the bulk of it himself/herself. We are not considering to totally forget the process. We want exact opposite: we want to do things right but we don't know where to start and don't have time.

I installed Jenkins. Set up pipelines for some of the projects. But I am a senior developer. Neither me nor my executive wants my all time spent on this.

EDIT 3(What I came up with):

This is roughly the assignment I brought together. What do you think ? What else can be here ?

  • Install Jenkins on a platform on your choice
  • Dockerize .net project given.
  • Build two pipelines with unit test automation.
  • Build and host database.
  • You must be delivering us your scripts and an account to jenkins.
2
  • 2
    Hi! This sounds like quite an open-ended question, making it very difficult to answer. Can you edit it please, with some details of what exactly you are trying to achieve? it's safe to assume that anyone you plan to hire should be assessed - the real question is how or what should be assessed? Perhaps indicate what your focus is - building a team, automation, etc. May 4, 2020 at 9:33
  • 2
    you risk hiring an "ops" person who "knows Jenkins" and them spending their days clicking on the web interface. this doesn't actually work well as it creates a silo containing a single person doing menial work. A better approach is to hire someone who is a developer who knows how to do automation with tools like Jenkins and ansible etc and ask them to write scripts and templates that make it easy for others to "setup pipelines". if they are good at their job they should eventually run out of interesting work. at which point they should be allowed to develop regular features on your system.
    – simbo1905
    May 9, 2020 at 12:27

2 Answers 2

3

Yes, there absolutely should be an assessment, however it would be a good idea to agree upfront with one of the few DevOps people you know to validate the content and results.

Regarding the contents of the assessment, there are some questions still remaining after your edits. Key one is how your operations are done. Possible options are: you already have someone doing your server infrastructure and operations and looking for a purely CI/CD person, or you do not have good operations support (i.e. developers doing that and you're unhappy) and you need DevOps person to do server management too. Note, that if it's the later case, you'd probably need more than person over time but you need somebody senior to start with.

Note, that for larger organizations you'd find more specialization within DevOps (i.e. things like Release Management, DevSecOps and others), but for smaller companies those two - CI/CD vs Infra Operations are two main ones in my experience. You still need to keep those differences in mind if you're considering taking someone from a larger company.

Now, after answering those questions, you need to first establish the seniority level of a person you're looking to hire. If it's your first DevOps person - you would probably want somebody more senior, but it depends on other people in your existing team. Next you scope your assessment to the on-job tasks. My take - always give take-at-home assignments, I usually give it to candidates over weekend and I make sure they take no more than 3-4 hours.

For CI/CD case you may ask them for a simple CI pipeline in their tool of choice, built from scratch over some sample project. You should add extra questions about failure handling, parallelizing, caching, handling of automation tests.

For CI/CD + operations case you should add tasks about shell scripting, cloud security, terraform.

Also for the first DevOps / senior person it's always a good idea to add some questions about interacting with other teams. I.e. what developers would need to do and how the interaction process with them should be built.

Again, start with one of the few DevOps people you know and get them onboard as a consultant to assess and hire that first person, otherwise you're taking a lot of chances there - and DevOps is a pretty sensitive part of your business.

3

Yes. Although DevOps is a culture and not a role, one should assess the mindset and technical skills of a candidate.

At my previous work we conducted two interviews. The first one was a conversation about the mindset. If my colleague and I were positive then we offered the candidate the possibility to prepare a demo for the second interview. He or she could choose to demonstrate an autodeploy or the candidate could come up with another proposal.

During the second and technical interview, the candidate had to bring his or her laptop and demonstrate what he or she prepared. During the demo, my colleague and I were asking questions. By doing this we got an impression about the technical knowledge as well.

We need to hire a DevOps Engineer to bootstrap our all DevOps process/culture

In my opinion, your current Developers should deploy the code they created, themselves. "You build it, you run it.". Although it can be hard to get started with CI, the documentation of various platforms like, Gitlab, Bitbucket, Jenkins is comprehensive and they can implement it. If you hire some person for this, you will create silos and it will be a negative effect on a DevOps culture. It will promote a "throw it over the wall mindset" and "What I am?", "You are IT of Dev" mindset.

The more I think about the question, the more I think you just should hire a freelancer for a couple of sprints that motivates and instructs developers to implement the pipelines themselves. Once a CI is running well, it can be applied to all projects and the person or freelancer you are trying to hire will be superfluous.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.