Interview Q&A Reference
Thirty-eight senior platform-engineering interview questions, organized by topic and weighted the way one real interview syllabus actually was — the flat, by-topic companion to Interview Prep, which has the fit/gap analysis, model-answer scripts, and ELI10 bonus concepts.
Built from a real candidate’s résumé, a real job description, and a real interviewer-shared syllabus. The candidate’s name, employer, and every other identifying detail have been removed — the questions, model answers, and real-world parallels below are otherwise unchanged.
Think of this like a topic-sorted stack of flashcards where every card already has the answer written on the back — plus a sticky note next to some of them that says “hey, this is basically the same idea as that other thing you already know.” Read the question, try answering out loud first, then check yourself against the answer underneath.
🟢 warm-up — definitional fluency. 🟡 medium — a structured answer plus a concrete example. 🔴 hard — scenario or trade-off depth. Sections are shown in the weight order one real interview syllabus used; the starred (★) sections were the two heaviest.
Section 1: Kubernetes Basics and Operations (weight 12/100)
🟢 1.1 Core Kubernetes objects (warm-up)
The core objects — Pod, Deployment, Service, ConfigMap/Secret, Namespace — and how they fit together to run and expose an app.
Q: Can you walk me through the core Kubernetes objects and how they relate to each other? What's the difference between a Pod, a Deployment, and a Service?
A self-service, Mend-scanned golden container image catalogue — hosted on GHCR and consumed by 100+ applications at a large IT-services company — is exactly the artifact a Pod's containers get pulled from. Owning that build gives real fluency in what goes into a Pod, even for someone whose hands-on Kubernetes object orchestration is lighter than their CI/CD and IaC depth.
🟢 1.2 How controllers work
The watch → diff → act reconciliation loop that makes every Kubernetes controller self-healing.
Q: What is a controller in Kubernetes, and how does the reconciliation loop actually work?
This is philosophically identical to Terraform's plan/apply cycle: desired state in code, actual state in the provider, and a reconciliation step that closes the gap. The one honest difference is that Terraform reconciles when you run it, while a controller reconciles continuously — which makes controllers immediately familiar to anyone who already thinks this way about infrastructure, even while hands-on Kubernetes time is still ramping.
🟢 1.3 Health probes (liveness, readiness, startup)
Liveness, readiness, and startup probes, and the very different consequence of each one failing.
Q: What's the difference between liveness, readiness, and startup probes, and what happens when each one fails?
A 24/7 on-call rotation, including building Slack ChatOps automation for alert remediation at a healthcare-compliance infrastructure company, runs on exactly this distinction — knowing whether an alert means "restart it" or "stop sending it traffic and let it recover" — just applied to VM-based services rather than Pods.
🟡 1.4 Requests, limits and OOMKilled
How requests and limits are enforced differently for CPU (throttled) vs memory (OOMKilled), and what QoS class controls at eviction time.
Q: Walk me through what happens when a container exceeds its memory limit. How do you think about sizing requests and limits, and what's the difference between how CPU and memory limits are enforced?
Triaging production resource-exhaustion incidents via Slack ChatOps during a 24/7 on-call rotation builds exactly this instinct — diagnosing "why did this get killed" — just against VM/container memory ceilings rather than a cgroup-enforced Pod limit.
🟡 1.5 Adding your own APIs and guardrails
Extending the API with CRDs and controllers, and where admission control enforces policy before anything is persisted.
Q: How would you extend the Kubernetes API for a platform team's own resource types? How do you enforce policy — say, "no privileged containers" or "images must come from an approved registry" — at admission time?
No direct hands-on bridge here is a common honest gap — say so plainly, and pivot to how quickly adjacent tools transfer (Terraform's declarative, reconcile-toward-desired-state model maps onto this faster than a cold start would suggest).
🟡 1.6 Scheduling and placement
How the scheduler filters and scores nodes, and the affinity/taint tools used to steer placement deliberately.
Q: How does the Kubernetes scheduler decide where to place a Pod? How would you use affinity, anti-affinity, or taints to control that placement?
Designing multi-AZ placement and availability strategies for 10+ production AWS applications is the same "don't put all replicas in one failure domain" reasoning, just expressed through ECS task placement and AZ-aware Auto Scaling Groups instead of the Kubernetes scheduler.
🟡 1.7 Rollouts and deployment strategies
How a rolling update works, how to roll it back, and when to reach for blue/green or canary instead.
Q: How does a Deployment perform a rolling update, and how do you roll back a bad release? What other deployment strategies do you know, and when would you reach for them?
This is squarely familiar territory for anyone who's run a staged platform migration — migrating 50+ Jenkins pipelines to GitHub Actions, or cutting a Terraform Enterprise estate over to Terraform Cloud with zero downtime and 100% data integrity, both require exactly this discipline: staged rollout, a defined rollback path, and verification gates before the old path is retired.
🟡 1.8 Storage: PV, PVC, StorageClass, CSI
How persistent storage is requested, provisioned, and bound — and the data-loss risk hiding in reclaim policy.
Q: Explain how persistent storage works in Kubernetes — what's the relationship between a PV, a PVC, and a StorageClass, and where does CSI fit in?
Provisioning and managing durable, encrypted storage for HIPAA-compliant systems and PCI-scope AWS architectures means the requirements this maps to — durability, access control, reclaim behavior — are ones that already had to get right under compliance audit, even where the CSI/PVC mechanics themselves are newer than Terraform-driven storage provisioning.
🟡 1.9 Autoscaling (HPA / VPA / Cluster Autoscaler / Karpenter)
How HPA, VPA, Cluster Autoscaler, and Karpenter each answer a different scaling question, and where they can fight each other.
Q: How do HPA, VPA, and cluster-level autoscaling work together, and where do they actually conflict with each other?
Designing AWS Auto Scaling Group and ECS service scaling policies with min/max guardrails across 10+ production applications is the same reactive-scaling-on-metrics model — even without having personally operated Karpenter, which is worth saying directly if asked rather than bluffing.
🔴 1.10 Debugging a broken workload
A structured, repeatable method for diagnosing CrashLoopBackOff, Pending, and “running but no traffic.”
Q: A Pod is stuck in `CrashLoopBackOff` — walk me through how you'd debug it. What if instead the Pod is Running but the Service isn't sending it any traffic?
This is a direct extension of production-support work and a prior 24/7 on-call rotation building Slack ChatOps for alert remediation — the same systematic "confirm symptom, check logs, check recent changes, isolate the layer" discipline, just against Pods and Services instead of VMs and pipelines.
Additional questions for this section
Section 2: Cluster API and Cluster Lifecycle (weight 10/100)
🟢 2.1 What a cluster is made of (warm-up)
The control-plane components (API server, etcd, scheduler, controller-manager) versus the node components that together form a cluster.
Q: Can you walk me through what makes up a Kubernetes cluster? / At a high level, what are the control plane and node components and what does each one do?
The clearest parallel is AWS itself: provisioning and scaling EC2 and Auto Scaling Group fleets through the AWS API and Terraform is the same pattern — a control plane orchestrating a fleet of workers — just expressed through cloud APIs instead of etcd and a scheduler. That mental model of a control plane managing a fleet of nodes is one plenty of AWS/IaC-heavy engineers already operate in practice, even where direct Kubernetes cluster administration is lighter than their IaC and CI/CD depth.
🟢 2.2 What Cluster API is
A Kubernetes sub-project that manages cluster lifecycle itself using the same declarative, controller-based pattern Kubernetes uses for workloads.
Q: What is Cluster API and what problem does it solve? / How is Cluster API different from just running `eksctl create cluster` or a Terraform module to stand up a cluster?
Not having hands-on Cluster API experience is worth saying directly rather than faking it. What transfers is depth with Terraform and IaC generally: the declarative, reconcile-toward-desired-state pattern CAPI uses is one many engineers have operated with for years, just not yet with these specific CRDs and provider controllers.
🟡 2.3 Bootstrap and pivot (chicken-and-egg)
The chicken-and-egg problem of needing a cluster to build a cluster, and how a disposable bootstrap cluster solves it.
Q: Explain the chicken-and-egg problem in Cluster API and how bootstrap/pivot solves it. / Walk me through the steps of standing up a brand-new cluster with Cluster API from nothing.
Not having run a CAPI pivot specifically is fine to admit — but the underlying concern, moving control of a system from one place to another without losing anything mid-flight, is exercised directly by anyone who's migrated CI/CD pipelines from Jenkins to GitHub Actions at scale: verify the new system is fully healthy before cutting traffic over, keep the old system alive until the new one is confirmed working, and have a rollback path ready. That's the same operational discipline CAPI's pivot requires.
Additional questions for this section
Section 3: Crossplane and Compositions (weight 16/100 ★)
🟢 3.1 What Crossplane is (warm-up)
A CNCF control-plane project that turns Kubernetes into a continuously-reconciling infrastructure provisioner, unlike Terraform's batch apply.
Q: What is Crossplane, in your own words? How is it fundamentally different from Terraform?
No direct hands-on bridge here is a common honest gap — say so plainly, and pivot to how quickly adjacent tools transfer (Terraform's declarative, reconcile-toward-desired-state model maps onto this faster than a cold start would suggest).
🟢 3.2 The basic building blocks
Provider, Managed Resource, XRD, Composition, XR, and Claim — how one Claim flows down into a real cloud resource.
Q: Walk me through the core Crossplane building blocks and how they fit together. If I create a Claim, what actually happens under the hood?
The Provider → Composition → Managed Resource layering is structurally the same pattern as Terraform's provider → module → resource hierarchy — built and refactored across dozens of projects, including a Terraform Enterprise-to-Cloud migration — so the vocabulary maps quickly even without hands-on Crossplane time.
🟡 3.3 Layering the APIs (L0–L3)
A mental model for how much abstraction sits between a raw cloud API and a curated, self-service platform API.
Q: How would you think about layering platform APIs on top of Crossplane — walk me through the levels from raw cloud access up to a self-service API? How do you avoid just re-exposing raw cloud complexity to app teams?
The L2→L3 shift from reusable infra bundles to a curated, guardrail-enforced self-service catalog is exactly the pattern behind a CIS-hardened golden image catalogue and a self-service golden container image catalogue built at a large IT-services company — different tooling, same platform-engineering instinct of hiding complexity behind a golden path.
🟡 3.4 Composition functions
How Composition logic moved from static patch-and-transform into small, versioned, pipeline-based functions.
Q: What are Composition Functions, and why did Crossplane move away from plain patch-and-transform? How would you decide whether a Composition needs a function at all?
Not having written a Crossplane Composition Function is a fair gap to name — but the underlying need, programmatic logic (loops, conditionals, derived values) beyond what static templating can express, is one that's solved repeatedly with Terraform's `for_each`/`dynamic` blocks and conditional, templated logic in golden-image build pipelines.
🔴 3.5 Providers and credentials per team
The classic multi-tenancy gotcha of cluster-scoped credentials, and how to design real isolation between teams.
Q: You have one shared Crossplane control plane and five teams claiming into five different AWS accounts — how do you make sure Team A's claim can never use Team B's credentials? Walk me through how you'd troubleshoot a resource that shows up in the wrong account.
Per-team ProviderConfig/credential isolation is the same class of problem solved with workspace-scoped variable sets and access controls during a Terraform Enterprise-to-Cloud migration, and with segregation-of-duties and least-privilege requirements across 100+ PCI compliance assessments at a fintech company.
Additional questions for this section
Section 4: GitOps with Flux, Argo, Kustomize (weight 10/100)
🟢 4.1 Declarative config, Helm and Kustomize (warm-up)
Declarative vs imperative config, and the different jobs Helm (templated packaging) and Kustomize (template-free overlays) do.
Q: "What's the difference between declarative and imperative Kubernetes config?" / "How do Helm and Kustomize differ, and when would you use one over the other?"
The base-plus-overlay-per-environment pattern is conceptually identical to structuring Terraform modules with environment-specific variables and workspaces for reusable, environment-based provisioning across dozens of projects.
🟢 4.2 What GitOps is + Flux pieces
Git as the single source of truth, and the three GitOps Toolkit controllers that pull and reconcile it.
Q: "How would you define GitOps?" / "Walk me through Flux's architecture — what do source-controller, kustomize-controller, and helm-controller each do?"
No direct hands-on bridge here is a common honest gap — say so plainly, and pivot to how quickly adjacent tools transfer (Terraform's declarative, reconcile-toward-desired-state model maps onto this faster than a cold start would suggest).
🟡 4.3 Flux vs Argo + fixing a bad release
How the two tools differ architecturally, and the golden rule for recovering from a bad release.
Q: "How do Flux and Argo CD differ architecturally?" / "Walk me through how you'd roll back a bad GitOps release in production."
Not having run Argo CD or Flux in production is worth naming plainly — but the underlying discipline, treat the repository as the only place changes are made, and fix forward by reverting a commit rather than hand-patching live state, is the same discipline enforced with Terraform: every environment change flows through version-controlled state and a PR, not a manual console fix. That habit gets reinforced hard during any Jenkins-to-GitHub-Actions CI/CD migration, where moving pipeline logic into version control is the whole point.
Additional questions for this section
Section 5: Multi-Cloud with Azure and AWS (weight 8/100)
🟢 5.1 What Infrastructure as Code means (warm-up)
Defining infrastructure as version-controlled code instead of console clicks, with drift detection and idempotency as the payoff.
Q: What do you understand by Infrastructure as Code, and why does it matter for a platform team?
This isn't theoretical for anyone who's spent years living inside Terraform state, module, and workspace management — including leading a migration from Terraform Enterprise to Terraform Cloud enterprise-wide with 100% data integrity and zero downtime.
🟢 5.2 How Azure and AWS are organised
AWS's Organization → Account hierarchy versus Azure's extra Resource Group layer, and how their governance tools compare.
Q: Can you compare how Azure organizes resources versus AWS — management groups, subscriptions, resource groups versus organizations and accounts?
Deep hands-on AWS account, IAM, and governance experience — AWS Certified Solutions Architect – Professional, plus 100+ PCI compliance assessments spanning multiple environments — is a strong base, even when Azure's management-group/subscription hierarchy is still conceptual, self-study knowledge picked up by mapping it directly onto the AWS constructs already known cold.
🟡 5.3 Why several IaC tools
Why CloudFormation/Bicep, Terraform, and Crossplane end up coexisting at different layers, rather than one tool winning.
Q: Why would an organization end up running Terraform, Crossplane, and CloudFormation or Bicep all at the same time — isn't that redundant? How would you think about consolidating that?
Not having run Crossplane hands-on is a fair gap — but ownership of enterprise-wide reusable Terraform module standardization and a Terraform Enterprise → Terraform Cloud migration (100% data integrity, zero downtime) is exactly the IaC-tool-consolidation problem this question is really probing, so it's worth being upfront that Crossplane itself is self-study while framing the answer around that real consolidation experience.
Additional questions for this section
Section 6: Networking, Ingress, DNS and Certificates (weight 8/100)
🟢 6.1 Services and Ingress (warm-up)
The four Service types, and how Ingress adds L7 host/path routing and TLS termination on top.
Q: What's the difference between a Kubernetes Service and an Ingress? What Service types are there and when would you use each?
Building the equivalent entry-point pattern at the AWS layer — API Gateway and ALB doing host/path routing in front of ECS services — makes the "one entry point, host/path rules, routed to backends" mental model behind Ingress map directly, even though the object names differ.
🟡 6.2 Gateway API vs Ingress
Why Ingress's limitations led to Gateway API's role-split, portable CRD model.
Q: What are the limitations of the Ingress API that Gateway API is trying to fix? Have you worked with Gateway API, and how would you compare it to Ingress for a new platform build?
He hasn't run Gateway API hands-on, but the "platform team owns the shared infrastructure primitive, product teams self-serve on top of it" split is exactly the pattern he already built with the self-service Golden Image and Golden Container Image Catalogues at a large IT-services company — same governance model, different layer of the stack.
🟡 6.3 cert-manager + external-dns + ESO together
How three separate operators cooperate on one Ingress flow to automate DNS, certificates, and secret delivery.
Q: Walk me through how you'd automate TLS certificates and DNS records for a new Ingress in Kubernetes. How do cert-manager, external-dns, and External Secrets Operator fit together in a platform's ingress path?
Not having run cert-manager/external-dns/ESO hands-on is worth naming plainly — but the underlying compliance territory is familiar: 100+ PCI DSS technical assessments directly covered TLS configuration validation, certificate lifecycle, and secrets-handling controls, so the requirements these operators automate are ones already assessed for compliance, even where the Kubernetes-native tooling itself is self-study right now.
Additional questions for this section
Section 7: Identity, Security and Multi-Tenancy (weight 12/100 ★)
🟢 7.1 RBAC basics (warm-up)
Roles/ClusterRoles define what's allowed, RoleBindings attach it to a subject — and RBAC is purely additive, no “deny.”
Q: "Walk me through how Kubernetes RBAC works." / "What's the difference between a Role and a ClusterRole?"
No explicit Kubernetes RBAC line on a CV doesn't mean the model is unfamiliar — the same least-privilege, verb-on-resource permission model maps directly onto scoped AWS IAM policies architected for ECS/Lambda/API Gateway/Cognito apps, and the access-control reviews run across 100+ PCI compliance assessments.
🟢 7.2 Multi-tenant isolation with RBAC
Why namespaces alone don't isolate the network, and the extra layers needed for real (if still “soft”) tenant isolation.
Q: "If two product teams share a cluster, how do you keep them isolated from each other?" / "How would you design multi-tenancy in Kubernetes?"
The network-segmentation and scope-reduction logic behind namespace/NetworkPolicy isolation is exactly what gets assessed and enforced across PCI-DSS compliance reviews, where isolating the cardholder-data environment from the rest of the network is the core requirement.
🟡 7.3 Handling secrets
Why a native Kubernetes Secret is a delivery mechanism, not a source of truth, and how ESO and Vault each solve that.
Q: "How do you manage secrets for workloads running in Kubernetes?" / "What's the difference between a native Kubernetes Secret and something like Vault or External Secrets Operator?"
The core pattern — never let secrets live in pipeline config, pull them from a managed store and inject at runtime — is exactly what gets executed at scale migrating 50+ Jenkins pipelines (with their credential-store secrets) into GitHub Actions secrets, and in managing sensitive Terraform Enterprise/Cloud workspace variables.
🔴 7.4 Security from code to runtime
A five-stage supply-chain checklist from pre-commit scanning through runtime detection.
Q: "Walk me through the security controls you'd put at each stage, from code commit to a running container." / "How would you design a secure software supply chain for a platform team?"
The supply-chain half of this — SCA scanning, shift-left, and fixing a vulnerability once at a golden image so every downstream app inherits the fix — is something built hands-on via Trivy scanning (a real 30% vulnerability reduction) and a Mend-scanned, CIS-hardened golden container image catalogue across 100+ applications, though the Kubernetes-native admission-control and runtime-detection layer specifically (OPA/Gatekeeper, Kyverno, Falco) is conceptual/self-study, worth saying plainly if probed.