DevOps Engineer
Structured interview questions for DevOps Engineer, with what a strong answer surfaces for each one.
BehavioralAutomation mindset Describe a CI/CD pipeline you designed and brought to production. What decisions did you make on build reproducibility, test stages and deployment strategy?
What a strong answer surfacesDeliberate decisions rather than defaults: deterministic builds (lockfiles, container digests, no latest tags), explicit test stages (unit, integration, smoke, E2E) with a rationale for the order, a deployment strategy matched to risk (rolling, blue-green, canary, feature flag). Bonus: the candidate names decisions they would make differently today. Anyone who describes everything in Jenkins scripts with shell scripts and no reflection has rarely weighed things up seriously.
BehavioralIncident response Tell me about a production incident you led to resolution. What was the symptom, how did you diagnose it and how long did it take?
What a strong answer surfacesA structured debugging method: reproduction, logs, metrics, hypotheses validated by experiment. Honesty on duration (a real production incident with impact is rarely closed in under 30 min). Bonus: the candidate names the root cause and the systemic fix (post-mortem, runbook, new alert, architecture change), not just the hotfix. Answers like I restarted the cluster without any diagnosis point to weak investigation skills.
BehavioralSystems thinking Describe a migration of a critical component you owned (e.g. on-prem to cloud, VMs to Kubernetes, a database engine migration). How did you handle downtime, rollback and data or traffic control?
What a strong answer surfacesAn incremental approach: parallel systems with traffic shifting (1 %, 10 %, 50 %, 100 %), an explicit rollback plan at each step, validation of data or functional consistency before each cut-over. Bonus: the candidate names a case where the migration took longer than planned and what they learned. Anyone who describes a big-bang migration without rollback shows risk blindness.
SituationalIncident response The P99 latency of your most critical API has been over SLO on 5 % of requests since the last deploy. The logs show no obvious error. How do you proceed in the next 30 minutes?
What a strong answer surfacesA structured method: (1) keep the rollback option open and communicate with stakeholders, (2) correlate metrics (CPU, memory, connection pool, network, DB latency, GC pauses), (3) trace a slow request end to end from edge to DB, (4) identify a pattern (time of day, endpoint, tenant, region). Anyone who immediately jumps to it's probably the DB without investigating has a bias. Bonus: explicitly mentions starting a post-mortem document in parallel and bringing in an on-call backup.
SituationalDev/Ops collaboration Your team currently has no tests in the pipeline, manual deployments over SSH, no centralized logging and no alerting. You have 90 days. What is your plan?
What a strong answer surfacesDiagnosis first: not trying to fix everything at once. Prioritization by risk and impact (typically: first centralized logging and basic alerting for visibility, then reproducible builds and a first automated deploy path for one service, then a test pipeline for the most critical business logic, IaC capture last). Alignment with the team and tech lead before each measure. Anyone who dives straight into a full GitOps migration with a service mesh shows a lack of pragmatism.
SituationalDev/Ops collaboration A developer demands production SSH access to all servers in order to debug faster. How do you react?
What a strong answer surfacesClarifying the actual need before discussing the solution (debug requirements can often be met with better logs, tracing and just-in-time access). Offering alternatives: better observability, read-only access, JIT access with an audit trail, ephemeral debug pods in Kubernetes. Answers like sure, I'll give it to him show security blindness; answers like never, that's not possible show a lack of collaboration. The right answer combines constructive pushback with a concrete alternative path.
TechnicalCloud infrastructure Explain the difference between a Kubernetes Deployment, a StatefulSet and a DaemonSet. When do you use which, and what are the typical pitfalls?
What a strong answer surfacesA solid understanding of the workload types: Deployment for stateless, interchangeable pods (web, API), StatefulSet for stable identity and persistent storage binding (databases, queues), DaemonSet for one pod per node (log forwarders, network plugins). Typical pitfalls: PVC loss when scaling a StatefulSet, ordering problems during rolling updates of a StatefulSet, a DaemonSet on nodes without the required resources. Bonus: mention of PodDisruptionBudgets and topology spread constraints. Anyone who cannot separate the three types builds data-loss risks into production.
TechnicalIncident response What do you log, measure and alert on for a Kubernetes platform with 20 to 50 services before you declare it production-ready? Which tools do you use?
What a strong answer surfacesA clear separation of logs (structured, with trace ID, centralized in Loki, Elasticsearch or a vendor), metrics (RED or USE method: rate, errors, duration; or utilization, saturation, errors) and distributed tracing (OpenTelemetry, Jaeger, Tempo). A concrete tool choice with rationale (Prometheus plus Grafana, Datadog, Sentry, Loki). Alerts only on actionable signals, with SLOs and an error budget per service. Cluster level: node health, kube-state-metrics, control-plane latency. Anyone who says log everything indiscriminately shows a lack of experience with platforms above a certain size.
TechnicalCloud infrastructure What security checks do you run on a new service before it enters the production Kubernetes cluster? Which classes of attack do you concretely keep in mind?
What a strong answer surfacesA clear list: container image scanning (Trivy, Grype) for CVEs and secrets, signed images (Cosign, Notary), Pod Security Standards (Restricted or Baseline), Network Policies per namespace, secrets via an external manager (Vault, AWS Secrets Manager, Sealed Secrets), least-privilege RBAC per ServiceAccount, resource limits against noisy-neighbor effects. Concrete measures: admission controllers (OPA Gatekeeper, Kyverno), active audit logs, secure egress rules. Bonus: concrete experience with an incident prevented or contained by one of these measures.
CaseSystems thinking Design: we want to migrate our existing monolithic application to Kubernetes without disrupting production. How do you design it?
What a strong answer surfacesClarification before proposing (the application stack, database topology, current deploy process, acceptable risk tolerance, cloud provider, compliance requirements). A coherent migration strategy: first containerize without an architecture change, deploy in parallel in Kubernetes next to the current system, traffic shifting (1 %, 10 %, 50 %, 100 %) via the load balancer, a rollback path per step. Bonus: explicit handling of stateful components (DB, sessions, file uploads), observability before the switch, incremental build-out of platform capabilities (logging, monitoring, tracing, autoscaling) alongside the migration. Anyone who dives straight into code without clarifying shows a design weakness.
CaseSystems thinking Design: we want a disaster-recovery strategy for a critical, data-intensive application on AWS. RPO 15 min, RTO 1 hour, single-region acceptable. How do you design it?
What a strong answer surfacesRecognizing that RPO and RTO dictate the strategy: Multi-AZ as the baseline (synchronous, RPO near 0 for the DB), automated database snapshots every 15 min, point-in-time recovery active, tested restore procedures (not just documented). Solution space: RDS Multi-AZ or Aurora, S3 with versioning and cross-region replication for static assets, infrastructure-as-code for fast rebuild, regular DR drills. Bonus: explicit handling of application consistency (no raw volume snapshots without database quiescence), clear runbooks for the restore. Anyone who takes backups without testing the restore has no DR strategy.
CaseIncident response Debug: in your production environment, latency for all services on one Kubernetes node rises intermittently, then recovers. Other nodes are fine. How do you proceed?
What a strong answer surfacesA structured method: (1) check node metrics (CPU throttling, memory pressure, disk IO, network saturation, kubelet health), (2) look at the pod distribution on the node (noisy neighbor? a pod with high resource use and no limits?), (3) kernel logs on the node (dmesg, journalctl), (4) check hardware or the underlying EC2 instance (steal time, EBS saturation, network burst credits exhausted). Bonus: recognizing that intermittent on one node often points to a resource bottleneck, a problematic pod or hardware issues, and immediately considering a cordon plus eviction as mitigation.
ValuesDev/Ops collaboration How do you take a critical code review of a Terraform module or a pipeline change you were convinced was good?
What a strong answer surfacesOpenness: the ability to separate code from personal ego. Bonus: the candidate names a case where a review actually changed their mind (a different module structure, a different variable, a different provider configuration). Anyone who describes having only explained their logic to the reviewer instead of listening shows a coachability weakness; at an SMB with a small DevOps team that is a hard no-go signal.
ValuesDev/Ops collaboration Describe a situation where you helped a developer take ownership of production (e.g. a service newly entered your on-call rotation).
What a strong answer surfacesAn active mentoring posture: pair programming on critical paths, runbooks built jointly, on-call onboarding with a clear escalation path, sharing good practices (backoff, idempotency, safe deploys). Anyone who says I just do it myself, it's faster shows a centralizing posture that conflicts with the scaling goal of a platform function. The right answer describes enablement, not takeover.
ValuesAutomation mindset What draws you to a DevOps role at an SMB rather than a platform-team role at a large corporation? Which aspects would you miss at an SMB?
What a strong answer surfacesA realistic understanding of the trade-offs: at an SMB more autonomy, access to the whole stack, a direct link to the product, but less specialization, smaller incident complexity, fewer resources for internal tools and migrations. Bonus: the candidate names concrete aspects that fit the SMB environment at their current career point (wants to own a whole area, wants to be closer to the product). Anyone who dismisses the corporation as slow and bureaucratic without naming the advantages shows a lack of reflection.
Evaluation playbook
The DevOps Engineer role reveals itself across four evaluation stages. The incident and architecture stage (stage 3) is the most predictive for this role: DevOps profiles make daily decisions on infrastructure, deployment strategy and observability that are hard to reverse later and become visible in production.
Stage 1: CV review
Look for stack consistency (a profile on AWS and Terraform does not switch to Azure and Pulumi without 3 to 6 months of ramp-up), stability (at least 18 to 24 months on previous roles) and concrete production signals (independently operated clusters, on-call experience, a visible GitHub with IaC modules or kubectl plugins, involvement in post-mortems or runbooks). The degree counts less than the last 3 to 5 years of practice: a self-taught engineer with 5 years of on-call and Kubernetes in production often scales better than a top-university graduate with no pager experience.
Stage 2: Phone screen (30 min)
Four questions only: (1) Describe the infrastructure you were last responsible for; what was your contribution?, (2) Tell me about the most recent production incident you led., (3) Which technical decision did you make recently that you still have doubts about? (humility and reflection), (4) Why are you looking for a change now? Outcome: go/no-go in a 5-minute debrief. Avoid technical gotcha questions at this stage.
Stage 3: Technical interview and architecture (90 min)
Two parts: 40 to 50 min of an incident walkthrough on a real case the candidate handled (symptom, hypotheses, validation, root cause, systemic fix, what to do differently next time), followed by 30 to 40 min of an architecture discussion on a concrete case (How would you build [a specific platform component]? What trade-offs?). Assess the ability to think out loud, to clarify assumptions before the solution (expected volume, consistency guarantees, failover, compliance), to weigh simplicity against scalability and to flag zones of uncertainty. Avoid pure trivia questions; favor questions tied to day-to-day work.
Stage 4: References (structured check)
Call two references: a former tech lead or direct manager and a former engineering peer (dev or DevOps). Ask both the same 4 questions: What is she/he strongest at? Where would you hire someone complementary? Would you hire them again tomorrow, why? An example of a difficult technical decision or a complex incident handled independently? The 4th question delivers the real autonomy and incident-response signal.
How to recognize a great hire
| Trait | Below bar | On bar | Above bar |
|---|---|---|---|
| Cloud infrastructure | Stumbles over fundamentals (IAM, network topology, VPC, container runtime, Kubernetes workload types). Searches for solutions by trial and error without a clear mental model. Hard to put on a new cloud. | Handles the current cloud stack independently (AWS, GCP or Azure, at least IAM, compute, networking, storage, Kubernetes or comparable orchestration). Can learn a second cloud in 2 to 4 weeks. Understands the fundamentals well enough to debug deeply when needed. | The reference person for the cloud platform on the team and able to switch to a different cloud within a few weeks. Anticipates classic pitfalls (IAM drift, NAT gateway costs, EBS burst credits, kubelet memory pressure, connection limits on load balancers). Builds useful, not premature abstractions (reusable Terraform modules with clear contracts). |
| Systems thinking | Jumps into the solution without clarifying the conditions. Over-architects (a service mesh for 3 services) or under-architects (everything as one VM setup with no boundaries). Struggles to weigh simplicity, consistency and scalability. | Clarifies need, load, consistency requirements and compliance before building. Pragmatic in weighing: no premature architecture for an uncertain future, but identifies zones where structure pays off (idempotency, retry strategies, clear service boundaries). Can pivot when the initial hypothesis does not hold. | Designs systems that age well: clear platform contracts between app teams and the platform, well-chosen consistency guarantees, idempotent and safe operations, minimal dependencies. Recognizes their own zones of uncertainty and proposes targeted POCs. Trains the team in systemic thinking. |
| Incident response | Helpless without logs or metrics. Reacts to incidents with a restart or with luck. No structured diagnosis. Either logs too little or logs everything as noise. Avoids on-call. | Has a clear approach to incidents (reproduction, hypotheses, validation, mitigation, then fix). Uses structured logs, sensible metrics and tracing. Writes a post-mortem after an incident that derives action items. Takes on-call without grumbling. | The reference on the team for incident response: defines SLOs, builds alert hygiene (no pager noise), develops runbooks. Finds root causes in complex distributed systems quickly. Coaches the team in debugging hygiene. Actively drives improvements from post-mortems to implementation. |
| Dev/Ops collaboration | Treats developers as ticket requesters. Defensive in reviews. Works in a silo, shares little context. Security or platform rules are enforced without explanation. Friction instead of partnership. | Sees themselves as a platform partner to the development teams: explains platform decisions in clear language, builds self-service where it makes sense, takes app-team requirements seriously. Takes reviews constructively. Shares context in team reviews and 1:1s, documents architecture decisions (ADR). | A bridge between platform and app teams. Facilitates technical debriefs, makes trade-offs understandable, negotiates the platform roadmap transparently. Active mentoring posture toward app developers on observability, safe deploys and production ownership. |
| Automation mindset | Prefers manual interventions (over SSH, clicks in the cloud console). Sees infrastructure-as-code as bureaucracy. Recurring tasks are repeatedly done by hand. ClickOps drift as the default state. | Writes infrastructure-as-code by default (Terraform, Pulumi, CloudFormation). Recurring tasks are automated via scripts or the pipeline. Deployment, provisioning and routine operations are reproducible and versioned. Drift is detected and corrected. | Drives automation standards for the whole team: reusable modules with tests, GitOps for cluster state, automated compliance checks (policy-as-code), self-service platform workflows for app teams. Builds tools that make life easier for others rather than reserving them for themselves. |
| Autonomy and resourcefulness | Blocks themselves for hours on an unfamiliar topic without asking for help, or asks at the first obstacle. No structured debugging strategy under pressure. Waits for clear instructions instead of showing initiative. | Can diagnose familiar topics independently; asks for help after prior investigation (a summary of the problem, hypotheses, what was already tried). Stays functional under incident pressure. Brings initiative for improvements. | High resourcefulness on unfamiliar topics: reads the source code of the tools, instruments the platform, isolates root causes, builds new tools when needed. Documents the findings for the team. Independently drives platform improvements from concept to delivery. |
30 / 60 / 90 day success plan
By day 30
- Full setup of the local development environment, access to all cloud accounts and clusters, on-call onboarding documented and a first small IaC change validated in production
- Read and understand the platform architecture: cloud account structure, network topology, cluster setup, CI/CD pipelines, observability stack, critical runbooks
- First documented 1:1 with the tech lead on conventions, identified technical debt, escalation paths and priorities for the next 90 days
- First substantial PR (pipeline improvement, monitoring gap closed, runbook added) reviewed and merged
By day 60
- Delivery of a complete platform improvement end to end (concept, IaC change, pipeline integration, monitoring, documentation) under independent ownership
- First independent on-call rotation handling at least one incident and contributing to the post-mortem
- First PR review of a colleague with structured feedback, not just an approve click; active involvement in at least one app-team platform request
- Documentation of a recently handled platform area or a runbook written or updated
By day 90
- Regular delivery (1 to 2 substantial changes per week) with quality confirmed in review and a visible contribution to at least one architecture decision
- First technical decision under independent ownership on an ambiguous platform topic (tool choice, cluster topology, backup strategy, cost optimization)
- Informal mentoring of a junior or new profile, or of an app developer on observability and safe deploys
- Formal review with the tech lead: ramp validated, development plan on 1 to 2 focus areas (e.g. SRE depth, security hardening, cost engineering, platform-PM skills)