Everyone’s talking about DevOps these days, so it’s no surprise that companies are looking for developers and team leaders who are well-versed in the latest DevOps approaches. Speaking of the latest approaches, it’s becoming more important than ever to integrate DevOps, APM, and the developer, so be sure to download our free guide, The Complete Developer Takeover, to learn how to support production apps, the ways the cloud has influenced app troubleshooting, and more.
Naturally, the culture shift requires not only the right tools but also the right developers to enhance existing teams. Developers need to understand DevOps, be able to work collaboratively with IT, and have an in-depth knowledge of APM practices and tools. So what questions can developers expect to face in the interviewing process in the DevOps era?
For some answers, we reached out to a panel of development leaders and DevOps pros and searched the web to unearth some insights on this question:
“What’s your favorite DevOps interview question (and how should developers prepare to answer it)?”
Find out what questions to expect and how to prepare for your next DevOps interview by reading what our experts had to say below.
Meet Our Panel of Development Leaders and DevOps Experts:
Kyle White is the CEO & Co-Founder VeryConnect – Leading Membership Management Software.
“My favorite DevOps interview question is…”
What’s been your most challenging deployment/upgrade/migration?
With a background in actuarial science and infrastructure, Kieran Co-founded Tecknuovo two years ago. Tecknuovo recruits Cloud and DevOps candidates across sectors and for a broad range of companies, from fast growth tech sstart-ups to FTSE 100 household names.
“My differentiator question is…”
What technologies are you interested in getting exposure to in the future? Why? And what steps have you taken to learn about these technologies?
I like and ask this question because the evolution of technology today is rapid. I want to know if potential candidates are:
1. Keeping their finger on the pulse of new technology.
2. Are doing so as they realize the potential business benefits/value (rather than just jumping on a buzzword).
3. Are self-starters when it comes to staying ahead of the curve.
How to prepare? Make sure you are part of the technical community. Sign up to websites like Reddit, create a GitHub account and contribute towards opensource projects, and go to meetups to see how other businesses are utilizing tech to solve specific problems.
Matt Baxter is a seasoned technology manager with a passion for making a positive impact with innovative software and hardware solutions. He manages the product development teams at Jibestream building the world’s most scalable and extensible Indoor Intelligence engine. Prior to Jibestream, Matt was responsible for Amazon Fulfilment Technology teams, building automation control systems used in Amazon warehouses around the world. When he’s not shaking up the tech industry, Matt is reading up on management science and getting inspired by TED Talks.
“My favorite DevOps interview question is…”
What is the most complex system architecture you have managed which is not bound by confidentiality to discuss?
It could be something you architected or just something you supported.
Steps to the question:
1. Whiteboard the full architecture of the system.
2. Explain the system at a high level how requests flowed and data persistence and caching was handled.
3. Explain the scaling factors of the system – CPU, memory, disk I/O, etc. – How did you monitor and measure it?
4. Discuss the potential failure points of the system.
5. Describe how you tested for potential failures and ensured availability.
6. What was the biggest failure of this system you had to manage and how did you handle it?
How to prepare:
Understand the full system architectures that you work with, not just individual pieces. Practice explaining them and white boarding them. Know scaling factors and failure points of the architectures you maintain inside and out.
Rishi Khanna is a passionate entrepreneur and CEO. He leads ISHIR, a global offshore technology organization & other high growth companies. Rishi has been part of the outsourcing industry since 1999 & has successfully implemented strategic outsourcing & offshore programs in IT, Cloud, Mobile/IoT, BPO & Digital Marketing functions.
“One of the most critical questions related to DevOps is related to DevOps tools…”
It is not enough to be aware of DevOps tools (anybody can Google them) but a seasoned developer should be able to recommend the most suitable tool as per the client’s needs. Developers should not only educate themselves on the most popular DevOps tools but also the advantages and disadvantages of these tools and the factors that can help an organization decide which DevOps tool to opt for.
Nagios, Monit, ELK (Elasticsearch, Logstash, Kibana), Confluence, JIRA, Consul.io, Docker, Jenkins, etc. are just some of the most popular DevOps tools that are popular in the market today.
Most of the tools that are available help to automate the process of software delivery. Among the available options, you can select the right one depending on the client requirements. Choosing the right DevOps tool also depends on whether the tool can help you with all the key phases which are – plan (learn about user requirements), build (allows coding in a virtual environment), continuous integration (allows submission of code in a shared repository, maybe several times a day), deploy (get all information at one place), operate (automate server monitoring and application performance), and continuous feedback (ways to capture client feedback).
Curtis Blanton is the Senior Software Developer at Questis.
“Our favorite DevOps interview question at Questis is…”
How many windows are in New York City? There is no way for the applicant to prepare to answer this question ahead of time; instead, it allows us to see their problem-solving skills and ability to think outside the box. There are no wrong answers – only the opportunity to express creativity!
Alan Zucker has over 25 years of experience managing projects and project organizations at Fortune 100 companies. Over the past three years, he has helped lead an Agile and DevOps transformation at large financial institution. The company realized significant measurable benefits and just received Information Week’s top award for DevOps Excellence. Recently he started a training and consulting firm so that he can share his passion and experience in Agile, project management, and leadership. He is the Founding Principal of Project Management Essentials LLC.
“My favorite DevOps interview question is…”
People. Process. Technology. These are referred to as the ‘Golden Triangle’ for managing organizational change. How does DevOps approach the Golden Triangle? What have you done in a recent engagement to demonstrate your beliefs?
I am looking for an answer that includes the following elements:
In the Golden Triangle, people create processes to manage and execute their work. Technology should be used to enable these processes that support the people. People are the most important element of the Golden Triangle and of DevOps implementation.
As DevOps Director at Symphony Software Foundation, Maurizio Pillitu brings 15+ years of experience in the ICT industry, mostly related to Open Source technologies, covering different positions: Software Developer/Designer/Architect, Sales Engineer, Technical Trainer, Project and Team Leader.
“One of my favoriteDevOps interview questions is…”
Q&A: Best and worst experience building bridges (or tearing down walls) between Development, QA and System Administration.
In my experience, it all started in 2007, on my first project for the Dutch Government, as they presented me with the so called DTAP (or OTAP in Dutch, where O stood for Ontwikkeling, Development in Dutch); that’s where I realized the variety of skills involved in a code pipeline and how articulated is the go-live process that applies to software.
Back then, the Devops practice was not consolidated yet, and since the size, budget, importance of the projects, cross-departmental teams was the most common way to divide and conquer: the Dev department would create code, QA department would test, Systems department would deploy, stakeholders would approve; everything would run smooth during the development and testing phase, but unfortunately sometimes things go south in production, which is when the blaming game starts.
Regardless of who was responsible for the problem, the blame game would automatically lead to:
- Devs/testers/administrators protecting their work and blaming someone else
- Managers – from each department – protecting their people, also to avoid any repercussions at higher level
In the meantime, the system is down, stakeholders are loosing money and – most importantly – faith; this was probably the most formative part of my career, where I had the privilege to feel (on my skin) the importance of building bridges and tearing down walls.
The best experience I had was in Stockholm, 2014, while travelling the world as a Senior Consultant for a software product company; one I joined a team whose goal was to build a PoC in 3 days and deliver a demo to the stakeholders the fourth day; considering the complexity of the technologies involved, I was skeptical we could achieve it, but we succeeded and without much rushing.
The key to success was clearly the exceptional team quality and diversity: within the same team, we possessed the knowledge, experience, and authority to bring the project to success; even the product manager was sitting all day at our table, trying to help in case any political challenge – i.e. incurring in unexpected costs – would raise.
Lars Holzman is currently the Head of Engineering for Lovepop where he is responsible for a team working to bring to life a 3D customization platform to disrupt the greeting card space. Prior to that, he was responsible for the development team at DraftKings and opened the Dublin Technology Hub for TripAdvisor.
“DevOps professionals should be able to answer this question…”
Tell me about a time that you have implemented an effective monitoring solution for a production system.
I know, this question sounds super dull and broad; however, monitoring is hard and strong DevOps candidates know that. Getting monitoring right is an art and requires a dose of philosophy which is something that superb DevOps candidates know. There is a lot that goes into a strong answer to this question: understanding the difference between symptom- and cause-based monitoring (see for instance one of my favorite HackerNews posts ever: My Philosophy On Alerting from the Google SRE team), the balance of ensuring that your production (and development) systems are meeting their SLAs while ensuring that you and the rest of the development team is getting sleep, and ensuring the monitoring isn’t stealing energy from a fast iteration/release cycle that allows the business to thrive. It is a great question to allow someone to show off their stuff – they can talk about how they have knit tools, home-built technology, and process together. All of this being said, other than real life hard-knocks, the best way a candidate can prepare for this question is to Google SRE monitoring strategies and read the posts that come up to understand the varying viewpoints and form his or her own opinion. A passionate, well-informed, opinion is always a win here.
Along with being the Senior Software Engineer at The Predictive Index, Joseph is an instructor at the Harvard University Extension School where he has been teaching computer science courses for over 15 years. He is currently teaching Mobile and Cloud computing, covering Microsoft Azure and Android, iOS, and Windows platforms.
“For a generic, open-ended question…”
What do you find most challenging in the DevOps role?
This question is meant to allow the candidate to show off a bit. Here we expect the candidate to articulate some of the most complex or interesting challenges they have encountered and how they went about resolving them. We are looking to see that the candidate has a positive nature. They embrace challenges and enjoy resolving them.
The challenges can be a business-related challenge such as limited budgets effecting the ability to design and maintain a highly available deployment configuration. It can also be technical related, describing how they needed to provide high availability with a geographically distributed customer base. It can also be security related, for example how they ensured that the deployment would be secure and audited in such a way as to provide proper forensics when an intrusion is attempted and/or occurs.
For an Azure cloud deployment, open-ended DevOps question:
When designing an Azure-based cloud infrastructure deployment for high availability what are some of the biggest challenges you have faced?
Again, this is still a bit open-ended but this question is meant to dig into the cloud infrastructure experience the candidate has using Azure. We want to understand what experience the candidate has in creating deployments in Azure, how they went about designing the deployment, and what types of things they considered such as security and forensics, ease of deployment and rapid updates, latency, cost, complexity in maintaining the infrastructure, and the ability to diagnose and understand issues that arise.
We also want to see how the candidate communicates. Do they use multiple forms of communication, such as drawing on the whiteboard, using analogies to help the team understand more easily, following up with questions to the team to ensure they understand what was explained?
In larger organizations, there may be a security architect who is responsible for more of the security concerns. That said, even in those situations the DevOps person typically plays a key role in securing the software deployment architecture. If the candidate indicates they have no experience in security and/or don’t take that into account at all, that is a red flag for us.
Kofi Senaya is the Director of Product at Clearbridge Mobile where he works with multiple clients in various industries to design, plan, and execute their ideas. He leads a team of Product Owners and oversees quality assurance. Over the past 15 years, he has been deeply involved in all domains of product management from engineering to product support and even marketing.
“My favorite DevOps interview question is…”
Asking if the candidate thinks DevOps is a domain or a culture. It gives me an idea of how an individual sees themselves fitting within the Agile team. Developers should know the true purpose of DevOps. If they think it’s a domain, it shows that they don’t understand that DevOps was created to remove the barriers between
development and support/operations.
Some people think DevOps is a department rather than a culture or a way of thinking. Companies that establish a DevOps department won’t solve the issues DevOps is supposed to address. If you just have a department, you don’t have true DevOps.
The simplest implementation of DevOps is having a couple of people on the Agile development team whose sole purpose is to ensure a seamless process through development, staging, and product. They are integrated within the Agile team.
Ron Gidron is Product Marketing Director of Release Automation at Automic Software. He has spent the last 14 years in product marketing, product management and pre-sales positions in both startups and large enterprises. Ron’s passion lies in the intersection of software, users, and market trends.
“One of the best DevOps interview questions is…”
What is different about deploying software to 5,000 nodes vs. deploying that same software to 50 nodes?
How devs should prepare to answer:
Erin Breslin is the CEO of All Set, a house cleaning marketplace backed by Liberty Mutual and Boston Consulting Group.
“My favorite DevOps interview question is…”
Q: What makes Amazon’s T-series EC2 instances unsuitable for production deployments?
Chris Allen is the founder of Firmtree as well as a writer, blogger, marketer, and protagonist for all things related to small business.
“I love to emulate Mark Zuckerberg and ask developers…”
If they strive for perfection or if they like to move fast and break things. While I certainly like code to be clean and development projects to work well, I need to be able to move quickly. And I look for my developers to get a product out the door and make improvements once we get user feedback and are able to perform testing. If developers are stuck in a mode of perfection, we can completely miss the moment in the marketplace and be behind the eight-ball for a very long time.
Wildebeest Design & Development
Wildebeest is a product innovation studio for brands. Based in Marina del Rey, CA, Wildebeest specializes in innovation, idea generation, and rapid prototyping. We help our clients go from spark to disruption through a lean and transparent product development cycle.
“A few of the best DevOps interview questions include…”
What is continuous integration and how would you implement it?
- In short, it is a development process where code is integrated directly within the deployment process.
- The software is built, tested, and deployed automatically by various tools. Travis CI, Jenkins, Codeship, and Circle CI are a few that come to mind. Each has their pros and cons, but most are set out to do the same thing.
What is your process for deployment?
- This can be a very long answer or short. The process starts with understanding the needs of the software in question to deploy. There may be some requirements specific to the build, ie. Node project will need Node, package manager, and other dependencies.
- Understanding what type of continuous integration also whether to use a container like Docker.
- What backing up data looks like. Database is important to have redundancy.
- What kind of machine you’ll be running on Linux, Ubuntu, Windows.
- If it’s a web app what type of web server you’ll be running Apache2, Nginx, etc.
- How you plan on configuring the web server.
- Implement SSH, and or rewrite rules.
- Caching options, caching proxy like CloudFlare.
- Monitoring of server for downtime or errors.
How do you know if something goes wrong in production and what do you do when it happens?
- Implementing a monitoring tool for real-time error tracking and downtime is a must (i.e. New Relic, AppDynamics, Sentry, etc.).
- If something goes wrong, you can roll back to a previous state, Backup snapshot. The key is to determine what the problem is. Why did production go down? Running trace routes or checking error logs help to pinpoint issues. Once the problem is located quickly find a solid solution to prevent future issues.
What are some security measures you consider when deploying?
- SSH is a must, no reason not to have it.
- Secure all files and directories for minimum permissions necessary.
- Audit and monitor/track logs to identify possible attacks.
Mustafa Kapadia is a DevOps Service Line Leader for IBM’s Digital Transformation DevOps practice, a business advisory practice focused on helping large enterprises transform their software & application delivery. Prior to joining IBM, Mustafa was a management consultant with Deloitte’s Strategy & Operations practice. He lives in San Francisco Bay Area, is an avid blogger (when time permitting), a speaker, and an advisor to start-ups.
“My absolute favorite question to ask developers is…”
What is your definition of DevOps?
Why I ask this question:
1. Quickly identifies developers point of view – is it just about automation, is it about collaboration, it is about speed?
2. Provides context as to where they are currently working – based on the answer I can determine if they are working on web, mobile, legacy, and or micro services.
3. Determine if they are up to date on the latest trends – so much is changing in our space, being able to keep up with the reading AND be able to share it succinctly is a tough skill (especially as consultants).
When I ask this question:
1. It is the first question I ask, since it sets the stage for the rest of the interview.
2. My goal is to determine fit, my architects can determine skill.
We do this a lot:
1. On average, I interview over 5 candidates a month.
2. And have been doing this over the last 2 years.
As for the right answer:
1. There is no right answer…this is to get them talking.
2. The best answer – DevOps is about time, specifically how long does it take an organization to bring an idea to market. The shorter your time to market, the faster you can delight your customer and create more value for the organization.
3. If they just get the first part (i.e. time), I am ecstatic because now I know their mindset.
Amit Padwal is an ex-Android developer with Java experience who conducts Android interviews, a Digital Marketer, and E-learning expert. He has an MBA from IIM Indore and is also a sports enthusiast. Amit works at TalentSprint.
NOTE: The following information is excerpted from What are some good interview questions for a DevOps position? via Quora.
“DevOps is one of the hottest skills to be attained in 2016, and thus more and more people are searching for DevOps interview questions…”
If you are a DevOps engineer with a strategic understanding of tools, processes and utilization of technology, be assured that 2016 is going to be your year. According to Gartner, organizations around the world are increasingly adopting the DevOps culture and by the end of 2016, 25 percent of top global 2000 organizations would have adopted DevOps as a mainstream strategy.
Coming back to the question, here are a few interview questions which you must prepare for your DevOps interview:
- How would you make software deployable?
- How do you expect you would be required to multitask as a DevOps professional?
- What testing is necessary to ensure that a new service is ready for production?
- What’s a PTR in DNS?
- Describe two-factor authentication?
- What are the advantages of NoSQL database over RDBMS?
- What is an MX record in DNS?
Natasha Mary is a Developer at Mindmajix Technologies.
NOTE: The following information is excerpted from What are some good interview questions for a DevOps position? via Quora.
“A few of my favorite DevOps interview questions are…”
Q. Explain your understanding and expertise on both the software development side and the technical operations side of an organization you’ve worked for in the past.
DevOps engineers almost always work in a 24/7 business critical online environment. I was adaptable to on-call duties and able to take up real-time, live-system responsibility. I successfully automated processes to support continuous software deployments. I have experience with public/private clouds, tools like CHEF or PUPPET, scripting and automation with tools like PYTHON and PHP, and a background in AGILE.
Q. Discuss your experience building bridges between IT Ops, QA, and development.
DevOps is all about effective communication and collaboration. I’ve been able to deal with production issues from the development and operations sides, effectively straddling the two worlds. I’m less interested in finding blame or playing the hero than I am with ensuring that all of the moving parts come together.
Q. What’s your career objective in your role as a DevOps engineer?
My passion is breaking down the barriers and building and improving processes, so that the engineering and operations teams work better and smarter. That’s why I love DevOps. It’s an opportunity to be involved in the entire delivery system from start to finish.
Edureka is a live and interactive e-learning platform that is revolutionizing professional online education. We offer instructor-led courses supported by online resources, along with 24×7 on-demand support. We provide to professionals the flexibility to learn at their own time and location, even from their mobile devices. Edureka courses are specially curated by experts who monitor the IT industry with a hawk’s eye, and respond to expectations, changes and requirements from the industry, and incorporate them into our courses.
NOTE: The following information is excerpted from Top DevOps Interview Questions You Must Prepare For in 2017 via Edureka!
“Two of the best interview questions for DevOps pros are…”
Q1. What is the need for DevOps?
According to me, this answer should start by explaining the general market trend. Instead of releasing big sets of features, companies are trying to see if small features can be transported to their customers through a series of release trains. This has many advantages like quick feedback from customers, better quality of software etc. which in turn leads to high customer satisfaction. To achieve this, companies are required to:
- Increase deployment frequency
- Lower failure rate of new releases
- Shortened lead time between fixes
- Faster mean time to recovery in the event of new release crashing
DevOps fulfills all these requirements and helps in achieving seamless software delivery. You can give examples of companies like Etsy, Google and Amazon which have adopted DevOps to achieve levels of performance that were unthinkable even five years ago. They are doing tens, hundreds or even thousands of code deployments per day while delivering world class stability, reliability and security.
If I have to test your knowledge on DevOps, you should know the difference between Agile and DevOps. The next question is directed towards that.
Q2. How is DevOps different from Agile / SDLC?
I would advise you to go with the below explanation:
Agile is a set of values and principles about how to produce i.e. develop software. Example: if you have some ideas and you want to turn those ideas into working software, you can use the Agile values and principles as a way to do that. But, that software might only be working on a developer’s laptop or in a test environment. You want a way to quickly, easily and repeatably move that software into production infrastructure, in a safe and simple way. To do that you need DevOps tools and techniques.
You can summarize by saying Agile software development methodology focuses on the development of software but DevOps on the other hand is responsible for development as well as deployment of the software in the safest and most reliable way possible. Here’s a blog that will give you more information on the evolution of DevOps.
Noni Peri is DevOps Manager at Logz.io. For over fourteen years, he has worked in the security and mobile telecommunications industries in a variety of technical and customer oriented positions. He has headed the Professional Services and Customer Support teams at AxisMobile, built the Customer Support the Deployment teams at InfoGin, and served as VP Professional Services at CallmyName as well as Production Manager at Sentrix Information Security.
NOTE: The following information is excerpted from 10 DevOps Interview Questions to Gauge a Candidate’s Real Knowledge via Logz.io.
“Here are a few common sense DevOps interview questions…”
1. What have you been doing over the last 1-2 years?
Interviews do not have to adhere to a specific framework and can be dynamic in nature. To get a general perspective on what an candidate has done, it’s a good idea to start an interview with a general query into the engineer’s recent professional activities.
This will help you, as a DevOps manager, to understand what specific tools and technologies the engineer has been working over the past few years (these can include Git, Puppet, Jenkins, Docker, Ansible, and scripting languages). Also, it will reveal the candidate’s ability to work in a team as the candidate will most likely divulge whether he or she flew solo or was part of a bigger outfit. If the person’s answer does not include this information, then that is another must-ask question.
It is critical to take note of the roles in which the candidate has served and the tasks that the candidate has performed, even if they are not strictly required in your organization or in the role for which he or she is interviewing. If the prospect does not mention the exact tools that you currently use, follow up with questions about those tools and tasks to get a good feel for his or her ability to assimilate knowledge as well as his or her general operating dependencies. Good candidates will always demonstrate a deep understanding in the field of their operation while others will reply with superficial answers to drill-down follow-up questions.
2. How have you handled failed deployments?
Failed deployments, of course, are an all-too-common occurrence when deploying code. DevOps engineers need to be extremely hands-on — they need to know when something has gone wrong and then troubleshoot the issue as quickly as possible.
A good way of assessing the suitability of a candidate is to ask them to tell the story of a failed deployment and how it was handled. Specific, follow-up questions can include: “How do you know there was a deployment failure?” “Do you roll back automatically?” and “What criteria do you use?”
3. If something breaks in production, how do you know about it?
Monitoring is a huge component of DevOps work (and this is reflected by the multitude of monitoring tools and platform out there). Regardless of the specific tools that you use and the monitoring system that you employ in your company, you need to know how well-versed the candidate is in planning and executing a monitoring strategy.
Again, you could use the storytelling tactic: “Tell me about a crisis in production that you had, how you became aware of it, and how it was solved.” A good war story is always enlightening — it will help you to assess not only how skilled the candidates are in monitoring but also how they handle crises (assuming that they tell the truth, of course).
Other leading questions: “What monitoring tools do you work with?” “Did you choose them? If so, why?” and “How do you get alerted?” I have found that the best candidates will have plenty to share about their monitoring expertise and specifically about advanced user-experience monitoring techniques.
LinOxide is a blog platform that publishes howto articles and guides on linux and unix based distros. The LinOxide portal includes tips & tricks, command line commands, opensource tools and server administration on FOSS (Free Open Source Software) technologies.
NOTE: The following information is excerpted from 30 Expected DevOps Interview Questions and Answers via LinOxide.
“A few important questions to ask in a DevOps interview include…”
Why we need DevOps?
Companies are now facing the need to delivering more and faster and better applications to meet the ever more pressing demands of conscious users to reduce the “Time To Market.” Devops often helps deployment to happen very fast.
What is DevOps engineer’s duty with regards to Agile development?
DevOps engineer work very closely with Agile development teams to ensure they have an environment necessary to support functions such as automated testing, continuous Integration and continuous Delivery. DevOps engineer must be in constant contact with the developers and make all required parts of environment work seamlessly.
Have you ever used any scripting language?
As far as scripting languages go, the simpler, the better. In fact, the language itself isn’t as important as understanding design patterns and development paradigms such as procedural, object-oriented, or functional programming.
Currently, several scripting languages are available so the question arises : what is the most appropriate language for DevOps approach? Simply everything , it depends on the context of the project and tools used for example if Ansible used its good have knowledge in Python and if it’s for Chef it’s on Ruby.