Software Engineer and DevOps Interview Questions

Software Engineer and DevOps Interview Questions

The past few weeks I’ve been sharing some questions I like to ask in various types of interviews. I’ve got some general questions posted, questions for Product Managers, and questions for Project Managers so far. Today, I’ll share a few Software Engineer and DevOps interview questions. Now, I don’t tend to ask the tough technical questions of these folks as I’ve haven’t been coding myself for a while and that’s what my team is for. These are the questions I care about when I talk to a new developer.

Software Engineer Interview Questions

For software engineers, I try to assess their preferences so I understand where they fit into the team. I’d also like to know how they go about learning new technologies. Why? Because hiring a person for a specific set of technical skills, I believe, is not necessary. Even if they know your current stack well, your technology stack will inevitably change over time. A good developer can learn any new language, architecture, etc that you throw at them. So, I spend time assessing how this person learns new things.

  • Where do you fit into the stack?
  • How do you go about learning a new technology? Give me an example of how you’ve done this in the past.
  • What’s your experience with React? Java? Clojure? Security? <fill in your stack details, desires here>
  • Can you share your git repository with me?
  • What agile framework(s) do you prefer to use?

It’s so important that good development candidates have their own git repository these days and that their repository shows off some of the things they’re capable of. This is how my team assesses code quality, complexity, and experience.

How Do You Really Like to Collaborate?

With the last question above, I’m trying to understand whether this engineer is aware of the specific processes they are using and how they feel about them. I’ll use it as a jumping off point to ask more questions about how they like to work. I’m trying to understand whether they have any ingrained biases against a certain framework or process, what experiences they’ve had in the past, and what they’ve done that’s worked well for them and their former teams. So, I might ask additional questions such as:

  • Have you used Scrum or Kanban before? <Fill in your favorite frameworks here>
  • What do you like about agile software development and what don’t you like?
  • Talk to me about the software development lifecycle you’ve used in the past that you thought worked best? Why do you think it worked well? What were its downsides?

Obviously, I’m a huge proponent of agile software development, so if I get an inkling that this developer doesn’t like agile software development, doesn’t like creating tickets, likes to work alone, or in any way doesn’t collaborate well, I generally dive in deeper and deeper until I understand exactly where their biases lie. If I can’t get a good sense of how that person will fit into the team, I won’t hire them.

DevOps Engineer Interview Questions

Good DevOps Engineers don’t grow on trees. They can be expensive and it takes a special kind of person to really do the job well. DevOps Engineers are constantly learning, tinkering, working with others, and switching tasks. That’s not exactly for everyone, but for the right person, DevOps is the BEST. Here are a few questions I like to ask DevOps Engineering candidates.

  • How much experience with AWS, git <or insert your infrastructure needs here> do you have?
  • What are some of your favorite DevOps-related blogs/books/conferences to follow? (Again, the learning question!)
  • Tell me about your automation experience?
    • What is the toughest problem you’ve automated yourself out of? OR What is the most creative way that you’d automated yourself out of a problem?
  • How does DevOps fit into a scrum/kanban/<whatever you use> agile development process? How might it fit into a waterfall dev environment?
  • Tell me about the continuous integration (CI) process you developed at a previous job?
  • Tell me what “infrastructure as code” means to you?

And one of my favorite questions that I can’t take credit for follows. This one comes from Singlewire’s Head of DevOps, Matt Radtke:

Tell us about a time when you took down production.

The idea being that if you’re in DevOps already and you haven’t caused some major disaster, you probably don’t have that much experience yet and you haven’t made enough mistakes to learn from them. Every experienced DevOps Engineer has their own production-stopping horror story.

Growing a DevOps Engineer

If you can’t hire a good DevOps Engineer, you can always consider growing one. (I know, I know, I said they don’t grow on trees!) What I mean is that sometimes you may already have an engineer on staff that would be perfect for a DevOps position. A good friend of mine, Sara Willett, who runs a chunk of the DevOps team at MasterCard tells me that she’s had a lot of success growing “lazy engineers” into great DevOps hires. By lazy, she’s looking for the engineer who doesn’t like doing the same task twice, so they automate it. They want to figure out how to use new tools to make their jobs easier and they aren’t afraid to dig in and learn how to make that happen. If you have someone on your team like that, then you might just have a great DevOps Engineer-in-the-making.