Hands-on technical assessments
Hire the engineer who can actually fix it.
Candidates get a real, deliberately broken environment and a clear task. They investigate, repair and validate it the way they would in production, while you get the evidence.
Every Kubernetes lab includes
- A fresh, isolated cluster created for the candidate and destroyed afterwards
- A browser terminal with kubectl and the tools the task needs
- Node-level shell access for kubelet, runtime and control-plane labs
- A time limit and automated validation on submit
- Recorded command history for reviewers
For hiring teams
Better signal, with less of your engineers' time
Practical assessments filter early and give interviewers something concrete to discuss.
See real working method
How the candidate gathers evidence, forms hypotheses and narrows the fault.
Compare consistently
Same environment, same fault, same checks for every candidate on a role.
Save senior time
Your engineers interview fewer, better-qualified candidates.
Decide on evidence
Check results and command history, not a general impression.
Workflow
How an assessment runs
- 01
Define the role
Pick labs from the catalogue for the role and level, or ask us to recommend a set.
- 02
Invite the candidate
The candidate receives a private link. No account or software is needed.
- 03
Candidate works the problem
A fresh environment is created with the fault injected. The timer starts when they begin.
- 04
Review the results
Automated checks run on submit. You receive scores, evidence and reviewer notes.
Roles and difficulty
Matched to the seniority you are hiring for
Labs are levelled internally. Candidates see the task, not the difficulty rating, so the level does not change how they approach it.
Junior
Reads errors and events, fixes common workload faults, and follows a methodical process.
Mid-level
Diagnoses across components (DNS, Services, storage, RBAC) and validates the fix independently.
Senior
Works at node and control-plane level, handles ambiguity, and avoids collateral damage.
Lead / Architect
Designs for failure: availability, isolation, security controls and safe operational change.
Roles covered: DevOps Engineer, Platform Engineer, SRE, Kubernetes Engineer, Cloud Engineer, CI/CD and Release Engineer, AI Infrastructure Engineer.
Lab catalogue
Example lab scenarios
Ready-made labs run from our library today. Tailored labs are example scenarios we build around your stack. Every area is also covered in expert interviews.
Showing 53 of 53 labs
Kubernetes troubleshooting
Ready-made labCrashLoopBackOff after a release
A worker keeps crashing after a deploy. Find the cause from events and logs and make it healthy.
Pod lifecycleLogs & eventsConfigurationJunior · Interview + lab ~15 minKubernetes troubleshooting
Ready-made labPod stuck in Pending
A routine change left an API with no running Pods. Get it scheduled and serving again.
SchedulingResource requestsEventsJunior · Interview + lab ~15 minKubernetes troubleshooting
Ready-made labImagePullBackOff and a stalled rollout
A CI change shipped a bad image reference and the rollout has stalled.
DeploymentsImagesRolloutsJunior · Interview + lab ~15 minKubernetes troubleshooting
Ready-made labCreateContainerConfigError
A service will not start after a configuration clean-up.
ConfigMapsSecretsEnv injectionJunior · Interview + lab ~15 minKubernetes troubleshooting
Ready-made labService cannot reach its Pods
Pods are healthy but nothing reaches them through their Service.
ServicesSelectorsEndpointsMid-level · Interview + lab ~15 minKubernetes troubleshooting
Ready-made labCluster DNS is down
Service names stopped resolving everywhere. Restore DNS and prove it works from a Pod.
CoreDNSService discoveryValidationMid-level · Interview + lab ~15 minSecurity
Ready-made labRBAC permission denied
A reporting job gets 403 Forbidden from the API. Restore access with least privilege.
RBACServiceAccountsLeast privilegeMid-level · Interview + lab ~20 minKubernetes troubleshooting
Ready-made labLiveness probe kills a slow starter
A service restarts every few seconds although its logs look normal.
ProbesStartup behaviourReliabilityMid-level · Interview + lab ~20 minKubernetes troubleshooting
Ready-made labPersistentVolumeClaim stuck in Pending
After a storage migration a service has no volume and will not start.
PVCsStorageClassesProvisioningMid-level · Interview + lab ~20 minKubernetes troubleshooting
Ready-made labBad release and a stuck rollout
A release never becomes ready and capacity is down. Roll back safely and record what happened.
RolloutsRollbackIncident notesMid-level · Interview + lab ~15 minKubernetes troubleshooting
Ready-made labNode maintenance gone wrong
After a maintenance window nothing new schedules. Restore capacity without disturbing running work.
TaintsCordon & drainSchedulingMid-level · Interview + lab ~15 minKubernetes troubleshooting
Ready-made labNetworkPolicy outage
A hardening change took a frontend offline. Restore exactly the traffic that is needed.
NetworkPolicyTraffic flowsLeast privilegeSenior · Interview + lab ~25 minKubernetes troubleshooting
Ready-made labBroken admission webhook
Scaling does nothing and no new Pods appear. Nobody touched the Deployment.
Admission controlWebhooksAPI serverSenior · Interview + lab ~25 minSecurity
Ready-made labPod Security Admission rejection
A new exporter release is rejected by the namespace security policy.
Pod SecuritysecurityContextHardeningSenior · Interview + lab ~25 minKubernetes troubleshooting
Ready-made labCoreDNS crashes after a config change
A DNS configuration change took name resolution down for every workload.
CoreDNSCorefileChange reviewSenior · Interview + lab ~25 minKubernetes troubleshooting
Ready-made labResourceQuota deadlock
An ingest service cannot reach its required size and keeps losing replicas.
ResourceQuotaLimitRangeCapacitySenior · Interview + lab ~20 minKubernetes troubleshooting
Ready-made labNew Services do not work
Existing Services work, but anything created today is unreachable by ClusterIP.
kube-proxyService networkingNode componentsSenior · Interview + lab ~25 minKubernetes troubleshooting
Ready-made labWorker node NotReady
A worker went NotReady overnight. Bring the node back and confirm workloads recover.
kubeletsystemdNode healthMid-level · Interview + lab ~20 minKubernetes troubleshooting
Ready-made labkubelet will not start
A kubelet crash-loops after a config edit. Diagnose from the journal and restore it.
kubelet configjournalctlsystemdSenior · Interview + lab ~25 minKubernetes troubleshooting
Ready-made labkubelet cannot reach the API server
The kubelet runs but the node is NotReady and cannot talk to the control plane.
kubeconfigTLSControl planeSenior · Interview + lab ~25 minKubernetes troubleshooting
Ready-made labContainer runtime down
A node is NotReady and cannot run containers. The runtime is unhealthy.
containerdcrictlNode debuggingSenior · Interview + lab ~25 minKubernetes troubleshooting
Ready-made labDNS broken on one node only
Some Pods resolve names and others do not. The difference is the node.
kubeletresolv.confIsolationSenior · Interview + lab ~25 minKubernetes troubleshooting
Ready-made labNode under false disk pressure
A worker evicts Pods and refuses new ones although its disk is nearly empty.
Evictionkubelet thresholdsNode conditionsSenior · Interview + lab ~25 minKubernetes troubleshooting
Ready-made labAPI server down
kubectl returns connection refused. The API server is not coming up.
Static PodsAPI server flagsControl planeSenior · Interview + lab ~25 minKubernetes troubleshooting
Ready-made labetcd will not start
The whole control plane is down because the API server cannot reach its datastore.
etcdStatic PodsRecoverySenior · Interview + lab ~30 minKubernetes troubleshooting
Ready-made labetcd database full
Writes fail with "no space". etcd has hit its storage quota.
etcdCompaction & defragAlarmsSenior · Interview + lab ~30 minKubernetes troubleshooting
Ready-made labScheduler down
New Pods stay Pending forever with no events. Nothing is being scheduled.
kube-schedulerStatic PodsDiagnosisLead / Architect · Interview + lab ~30 minKubernetes troubleshooting
Ready-made labController manager down
A Deployment was scaled up but no new Pods appear. Controllers are not acting.
ControllersReconciliationControl planeLead / Architect · Interview + lab ~30 minKubernetes troubleshooting
Ready-made labSurvive node maintenance
Make a service ride through a rolling node drain with no dropped requests.
PDBsTopology spreadGraceful shutdownLead / Architect · Interview + lab ~40 minPlatform engineering & GitOps
Ready-made labMulti-tenant isolation
Two teams share a cluster with no isolation. Build access, quota and network boundaries.
RBACNetworkPolicyQuotasLead / Architect · Interview + lab ~40 minKubernetes troubleshooting
Ready-made labAutoscaling that will not scale
An HPA shows unknown metrics and never scales the web tier under load.
HPAmetrics-serverRequests & limitsLead / Architect · Interview + lab ~40 minSecurity
Ready-made labEnable API audit logging
Record access to Secrets in an audit log without leaking their values, with rotation.
Audit policyAPI serverComplianceLead / Architect · Interview + lab ~40 minSecurity
Ready-made labEncrypt Secrets at rest
Secrets are stored in plaintext in etcd. Enable encryption and re-encrypt existing data.
Encryption configetcdKey rotationLead / Architect · Interview + lab ~40 minDevOps & CI/CD
Tailored labFailing GitHub Actions pipeline
A release workflow fails intermittently after a dependency change. Find the cause and make it reliable.
GitHub ActionsCachingBuild debuggingMid-level · Interview + tailored lab ~30 minDevOps & CI/CD
Tailored labImage build cannot push
Builds succeed locally but the pipeline cannot publish images to the registry.
Container buildsRegistry authSecrets in CIJunior · Interview + tailored lab ~20 minDevOps & CI/CD
Tailored labCanary release gone wrong
A progressive rollout promoted a bad version. Diagnose the gate and fix the release strategy.
Deployment strategiesRelease gatesRollbackSenior · Interview + tailored lab ~40 minPlatform engineering & GitOps
Tailored labArgo CD application stuck OutOfSync
An application never converges and reports drift on every sync.
Argo CDSync wavesDriftMid-level · Interview + tailored lab ~30 minPlatform engineering & GitOps
Tailored labFlux reconciliation failure
A Kustomization fails to reconcile after a repository restructure.
FluxKustomizeSource controllersSenior · Interview + tailored lab ~30 minPlatform engineering & GitOps
Tailored labHelm upgrade fails mid-release
A chart upgrade failed halfway and the release is stuck in a pending state.
HelmRelease historyRecoveryMid-level · Interview + tailored lab ~25 minCloud & Terraform
Tailored labTerraform state drift and lock
A plan wants to replace production resources and the state is locked.
Terraform stateImportsLockingSenior · Interview + tailored lab ~35 minCloud & Terraform
Tailored labRefactor modules without replacement
Restructure Terraform modules without destroying live infrastructure.
Modulesmoved blocksPlan reviewLead / Architect · Interview + tailored lab ~45 minCloud & Terraform
Tailored labCloud IAM access denied
A workload cannot reach a storage bucket after a policy change.
IAMWorkload identityLeast privilegeMid-level · Interview + tailored lab ~25 minSRE & observability
Tailored labThe alert that never fires
An outage went unnoticed. Find why the alert stayed silent and fix it.
PrometheusAlertmanagerPromQLMid-level · Interview + tailored lab ~30 minSRE & observability
Tailored labDefine SLOs and burn-rate alerts
Turn a vague reliability goal into SLIs, SLOs and actionable alerts.
SLIs/SLOsError budgetsBurn rateSenior · Interview + tailored lab ~45 minSRE & observability
Tailored labProduction latency investigation
Latency doubled after a deploy. Use metrics and logs to find the cause.
GrafanaLokiIncident methodSenior · Interview + tailored lab ~40 minLinux & networking
Tailored labDisk full on a busy host
A service fails writes although df shows free space.
FilesystemsInodesOpen file handlesJunior · Interview + tailored lab ~20 minLinux & networking
Tailored labsystemd service will not start
A unit fails at boot with an unclear error.
systemdjournalctlUnit filesJunior · Interview + tailored lab ~15 minLinux & networking
Tailored labIntermittent connection resets
Clients see random resets and slow DNS between two services.
TCP/IPDNStcpdumpSenior · Interview + tailored lab ~35 minSecurity
Tailored labEnforce signed images
Only signed images from a trusted registry may run in production namespaces.
Supply chainAdmission policySigningSenior · Interview + tailored lab ~40 minSecurity
Tailored labSecrets exposed in workloads
Find and remediate credentials leaked through environment variables and logs.
Secrets managementWorkload securityAuditMid-level · Interview + tailored lab ~25 minAI infrastructure & operations
Tailored labGPU node not schedulable
GPU workloads stay Pending on a node that has GPUs installed.
GPU device pluginNode labelsSchedulingSenior · Interview + tailored lab ~35 minAI infrastructure & operations
Tailored labLLM inference server keeps restarting
A self-hosted model server is OOM-killed under real traffic.
Model servingMemory sizingProbesSenior · Interview + tailored lab ~40 minAI infrastructure & operations
Tailored labInference platform design review
Design-level exercise tailored to your serving stack and traffic profile.
Inference capacityAutoscalingCostLead / Architect · Interview + tailored lab ~60 min
How automated validation works
When the candidate submits, hidden checks inspect the real state of the environment. They do not look at what the candidate typed; they test whether the system works.
- Each check tests one outcome, such as “the Service name resolves from the affected Pod”
- Checks carry points; a pass mark is set per lab
- Guard checks catch shortcuts such as deleting the broken workload
- Every lab is tested against a clean, a broken and a repaired environment before release
How human review works
Automated checks show whether it works. A reviewer looks at how the candidate got there, because two passing results can reflect very different engineers.
- Review of command history: investigation order, risky actions, validation steps
- Rubric scores for method, accuracy, safety and validation
- Written comments your hiring manager can read in two minutes
- Optional follow-up questions for the live interview
Candidate experience
Fair, clear and respectful of their time
Strong candidates often have several offers. The assessment should feel like real work, not an obstacle course.
Browser only
No installs, VPNs or local clusters.
Clear task
A written brief that states what success looks like.
Visible time limit
Most labs take 15 to 40 minutes.
Private and isolated
A dedicated environment that is destroyed afterwards.
Combined assessment + interview
One report that brings lab evidence and interview together
For senior and lead roles, the strongest signal comes from a lab followed by a focused conversation about what the candidate did and why.
- 1Candidate completes a hands-on lab.
- 2Your team reviews the results and activity.
- 3An expert interviewer probes decisions, trade-offs and alternatives.
- 4You receive a consolidated evaluation and recommendation.
Evaluation report
Candidate A · Platform Engineer (Senior)
Hands-on lab
86 / 100
Live interview
4.0 / 5
Recommendation
Proceed
Troubleshooting method
Reproduced the symptom, then narrowed scope methodically.
Technical accuracy
Correct root cause; fix limited to the faulty configuration.
Validation
Proved the fix from the affected workload before submitting.
Communication
Explained decisions clearly; missed one follow-up risk.
FAQ
Common questions
What does the candidate need?
Which areas have hands-on labs?
How is the score calculated?
Can candidates use documentation or AI tools?
Can you customise a lab for our team?
What data do you keep about candidates?
See a lab running on a real cluster.
We will walk you through a live assessment and suggest labs for your open roles.