Skip to content

Instantly share code, notes, and snippets.

@vi7
Last active February 19, 2024 12:03
Show Gist options
  • Save vi7/6547c9adb7045cfd00de003e435b3d2b to your computer and use it in GitHub Desktop.
Save vi7/6547c9adb7045cfd00de003e435b3d2b to your computer and use it in GitHub Desktop.
Interview questions for DevOps Engineer/Architect hiring

Interview questions

TODO:

  • add simple coding tasks (Python/Bash/Go)

Table of contents

Open-ended and general questions

  • How do you usually improve your work related knowledge?

  • You're a new hire, having not much knowledge on the company's infra specifics and your task is blocked by the lack of this knowledge. What do you do?

  • You're using open source tool in your job and found some missing capability (or bug) which prevents you from proper usage of the tool. What do you do?

  • Provide some examples of the job related achievements you are proud of. (Developed app, complex piece of automation etc.)

  • You need to collect your system/container/app logs centrally. What would you use for that? Why?

  • Why would you choose VMs over containers to run your workloads (projects, apps, services etc.) and vice a versa? Give some examples

  • You'd like to send email from your Python app using smtplib, it works for you locally but does not work from the docker container. Investigation steps please

  • Developer starts working on a brand new component, which things you need to think about right from the beginning?

Development questions

  • Why knowing development principles and patterns is important in DevOps either?
  • What's OOP, name and shortly describe OOP principles.
  • Which things you will check first of all, if you need to check the quality of some piece of code?

Python

  • What is list comprehension

Bash

  • How do you ensure cleanup of temp resources on script failure?

Dev tasks

  • 8x8 board with numbers from 0 to 63. Calculate row,col location of provided number (Answer: function should. use floor division for rows and modulus division for cols)

Devops questions

K8S

Admin

  • Name essential components of the K8S control-plane

    • What is:
      • kube-apiserver
      • kube-controller-manager
      • kube-proxy
      • kube-scheduler
  • On prem Baremetal/VM: How do you implement PVs? (list tech stack)

  • On prem Baremetal/VM: How do you implement LoadBalancer Services? (list tech stack)

  • On prem Baremetal/VM: How do you implement dynamic DNS for Services and Ingresses? (list tech stack)

  • On prem Baremetal/VM: How do you implement authn for the user access? (list tech stack)

  • What is Linux IPVS? What it is used by the K8S for? (Service Endpoints) Alternative for the IPVS? (iptables - resource heavy)

  • Steps to change K8S API server configuration

  • Ways to authenticate in K8S?

    • Can you create users in K8S?
  • readiness/liveness probes

User

  • What is the DaemonSet?
  • Does DaemonSet always schedules Pods on ALL the cluster nodes? Why?
  • Difference between Deployment and StatefulSet
  • Difference between ConfigMap and Secret
  • What does Ingress Controller do?
  • What does Service resource do?
  • What are the types of Service resource?
  • How do you ensure a Pod is running on specific node of K8S?
  • How do you restart a Pod?
  • Steps to deploy web service app into K8S?
  • What is Kustomize?
  • What is K8S operator?

Follow-the-thoughts practical questions

  • Imagine you're trying to run a Pod and it stuck in the CrashLoopBackOff state. Describe the steps you'll follow to debug and fix that
  • Imagine you're trying to run a Pod and it stuck in the ImagePullBackOff state. Describe the steps you'll follow to debug and fix that
  • You have the NFS share on a standalone server and would like to make it available for several apps running in the K8S. What would you need for that? Describe step by step.

Helm

  • What is Helm chart? Why do you need Helm charts?
  • What is Helm value?
  • Why would you choose Helm over Kustomize over operator?
  • How do you deploy Helm charts?

Docker

  • What is Docker container?
  • What happens when you run docker build?
  • What is multistage Dockerfile and why it's needed?
  • Why would you want to use VM instead of container? Why? Some example needed
  • What is the difference between Docker container and plain process?
  • How do you log container stdout/stderr to the syslog (journald)
  • Kernel capabilities Docker relying on?
  • Take some sample Dockerfile and ask about it
  • Why do you need Docker Compose?

Jenkins

  • What types of pipelines you know? (scripted, declarative) What's the difference?
  • Proper way of providing credentials for the Jenkins jobs?
  • Credentials plugin - is it safe to use?
  • What are the pipeline libraries? Why would you use them?
  • Where pipeline java/groovy code is executed, on master or on worker? (master)
  • Is Jenkins a good solution to run Ansible on the number of the remote hosts? Why?

Terraform

  • How is Terraform different from Ansible?
  • What is Terraform state?

Ansible

  • What's the difference between roles and playbooks
  • Why do you need roles?
  • Name some Ansible modules you were using
  • Describe Ansible inventory types with examples
  • Difference between include and import (take role as an example)
  • Tools for Ansible role testing

Puppet

  • What is Hiera?
  • Name some Puppet resources you were using

Server admin

  • Server boot steps - from pushing power btn to the OS command prompt
  • What is process?
  • What is under the /proc dir?
  • What is inode?
  • What is loadavg?
  • Difference between loadavg and CPU usage
  • What is atomic Linux distribution?
  • What is LVM?

Follow-the-thought questions

  • Linux does not allow to unmount saying device is busy. What will you do?
  • Linux is telling that network port is already busy. What will you do?
  • How do you investigate 'permission denied error' while trying to run bash script?

Network admin

  • TCP/IP model layers and their purpose:
    • Application
    • Transport
    • Internet
    • Data link
    • Physical network
  • How to troubleshoot data inside network packets
  • How to discover remote hosts and their open ports from the command line
  • Unicast/multicast/broadcast addresses?
  • TCP and UDP difference

Follow-the-thought questions

  • Linux is telling that network port is already busy. What will you do?

Git

  • What is the difference between git rebase and merge?
  • How do you change the latest commit in your local branch?
  • How do you change the latest commit which was already pushed to the remote?

Monitoring

  • Describe essential components/endpoints needed to monitor K8S with Prometheus (kube-state-metrics, cAdvisor, kubelet, apiserver, node-exporter)
  • Describe essential components/tools to monitor host with Prometheus
  • Essential steps to configure Prometheus to monitor application
  • What are the possible ways to make certain app compatible with the Prometheus?

Security questions

  • What is PKI (Public Key Infrastructure)?
  • Steps to create your own CA and self-signed SSL cert?
  • What are the key usage extensions of the certificates and how do you define them?
  • What is SNI (Server Name Indication)?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment