BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
DevOps isn't a standalone job and in fact, it isn't even a job; it's a new approach to interdisciplinary software...
engineering, and knowing how to answer DevOps interview questions is critically important. IT professionals will likely take on some form of DevOps responsibilities during the course of their career, and the job listings are hot.
DevOps combines software coding knowledge with quality assurance (QA) skills and operations workflows for continuous software development and deployment. Tomorrow's developers must demonstrate the skills and know-how to participate in and manage a DevOps organization.
Let's talk about your education and experience
The scope of DevOps positions varies, but most entry-level DevOps roles require a bachelor of science degree in computer science or a related field that covers coding, QA testing and IT infrastructure components. Higher-level DevOps roles may require advanced degrees in systems architecture and software design.
Mention your certifications in virtualization, cloud computing and specific coding languages. Vendor-centric e-learning in software development tools like major code analyzers or systems management and automation tools round out your expertise.
Compare the DevOps job posting to your resume. Most entry-level DevOps-related roles ask for three to five years of experience in code development and testing. DevOps jobs that involve operations and deployment may ask for least four years of operations experience, such as IT systems administration in data centers or cloud infrastructures. Highlight systems management and workflow automation experience, provisioning and workload management as well as release management.
Since DevOps relies on a close working relationship between development, testing and operations teams, any interdisciplinary management background is also valuable to share in the interview. Tell a potential employer how you get disparate teams to overcome obstacles, work together, maintain demanding release schedules and adapt to new tools and technologies.
What's your systems background?
DevOps professionals need operations expertise in servers and systems, including network hardware and architectures to support workload deployment.
Some DevOps jobs require extensive systems knowledge, including server clustering and highly concurrent systems. At this level, DevOps engineers need to analyze system capabilities and implement upgrades for efficiency, scalability and stability, or resilience. Have a solid knowledge of OSes and supporting technologies, like network security, virtual private networks and proxy server configuration.
DevOps relies on virtualization for rapid workload provisioning -- allocating compute resources to new VMs to support the next rollout -- so have a detailed knowledge of major hypervisors. This should include backup, migration and lifecycle management tactics to protect, optimize and eventually recover computing resources. Some environments may emphasize microservices software development tailored for virtual containers.
Operations expertise must include extensive knowledge of systems management tools like Microsoft System Center, Puppet, Nagios and Chef. DevOps jobs with an emphasis on operations require detailed problem-solving, troubleshooting and analytical skills.
Share how you helped increase compute efficiency while saving money, such as a project to consolidate servers or improve resource allocation and performance monitoring.
What DevOps tools have you worked with?
DevOps involves a constant cycle of coding, testing, deployment and refinements. The right tools depend on team size and specializations within the organization.
Software configuration management and build/release (version control) tools, including Apache Subversion, Mercurial, Fossil and others, help document change requests. Developers can more easily follow the company's best practices and policies while software changes.
Continuous integration (CI) tools such as Rational Build Forge, Jenkins and Semaphore merge all developer copies of the working code into a central version. These tools are important for larger groups where teams of developers work on the same codebase simultaneously.
QA experts use code analyzers to test software for bugs, security and performance. If you've used HP's Fortify Static Code Analyzer, talk about how it identified security vulnerabilities in coding languages. Also speak about tools like GrammaTech's CodeSonar that you used to identify memory leaks, buffer underruns and other defects for C/C++ and Java code.
It is essential that you have adequate command of principal languages -- Ruby, C#, .NET, Perl, Python, Java, PHP, Windows PowerShell -- and are comfortable with the associated OS environments -- Windows, Linux and Unix.
How much have you done with cloud-based software development?
Expect the next DevOps interview question to cover your experience with cloud services, which dovetail with DevOps' iterative, integrated IT approach.
Many DevOps professionals need hands-on experience with major public cloud providers like Amazon Web Services (AWS) Elastic Compute Cloud and Google Cloud Platform. Share your knowledge around use of cloud platforms, provisioning new instances, coding new software iterations with the cloud provider's APIs or software development kits, configuring clusters to scale computing capacity, managing workload lifecycles and so on.
This is the perfect opportunity to discuss container-based cloud instances as an alternative to conventional VMs. Event-based cloud computing such as AWS Lambda offers another approach to software development, a boon for experienced DevOps candidates.
A comprehensive understanding of third-party tools underscores your ability to bring DevOps to cloud projects. Focus on your successful projects or tasks using cloud rather than just listing off products.
In your interview, mention experience handling big data, which uses highly scalable cloud infrastructures to tackle complex computing tasks.
Give me an example of how you handle projects
Underscore your exposure to DevOps project management issues in this answer. Frame the discussion of DevOps management around solving complex business problems.
As a professional with managerial responsibilities, you must demonstrate a clear understanding of DevOps project management tactics. Discuss how you work with teams to set objectives, streamline workflow, maintain scope (prevent creep), research and introduce new tools or frameworks, translate requirements into workflow and follow up. Include how CI, and release management and other tools keep interdisciplinary projects on track.
High-level DevOps roles, such as chief DevOps engineer, require more business acumen and people skills. Share experiences you've had resolving team disputes and conflicts.
What other tools are you familiar with that might help you in this role?
This DevOps interview question can really elevate you from a "qualified" to an "ideal candidate."
DevOps is so diverse and inclusive that it rarely ends with coding, testing and systems. A DevOps project might rely on database platforms like SQL or NoSQL, data structure servers like Redis, or configuration and management issue tracking systems like Redmine.
Web applications are popular for modern enterprises, making a background with Web servers, like Microsoft Internet Information Services, Apache Tomcat or other Web servers, beneficial.
Organizations that promote a standardized approach to software development seek candidates familiar with Agile application lifecycle management techniques and tools.
And DevOps roles listing a strong operations focus in a regulated industry may go to the candidate familiar with ITIL practices.
Position yourself for these hot IT careers
Skills or certs? Pros are divided
Top interview questions for SharePoint developers