Challenges

Defend a real DevOps decision against a senior engineer, then get scored against a verified rubric. No memorizing, just reasoning.

Sign in to play free
1

Pick a real call

Each challenge is a true-to-life DevOps decision with a clear question to answer.

2

Defend it

A senior-engineer AI pushes back on your reasoning. Hold your ground or adjust.

3

Get scored

You are graded against a verified rubric, so you learn what a complete answer covers.

$39 one-time unlocks every challenge, the mock interviews, and the private Discord. Sign in to get access.

Beginner

16
beginnerLocked

1.6GB Docker Image, 8-Minute Builds. Add Runners?

Your image is huge and every code change rebuilds from scratch. A teammate wants to just add more CI runners. Defend how you actually fix it.

DockerCI/CD~8 minUnlock to play
beginnerLocked

502 Bad Gateway Right After a Deploy

The site returns 502 from nginx after a deploy. A teammate wants to tweak the nginx config. Defend where you actually look first.

Nginx~8 minUnlock to play
beginnerLocked

A Contractor Needs DB Access for a Week. Open the Port?

An external contractor needs a week of database access. A teammate wants to open the DB port to the internet with a strong password. Defend the safe alternatives.

SecurityDatabases~9 minUnlock to play
beginnerLocked

Access Keys Are Hardcoded on the EC2 Box. Just Rotate Them?

An app on EC2 authenticates to AWS with long-lived IAM user keys in a config file. One leaked. Defend the real fix.

AWSSecurity~10 minUnlock to play
beginnerLocked

Commit terraform.tfstate to the Repo So Everyone Shares It?

A teammate wants to commit terraform.tfstate to git so the whole team shares one state file. Defend the correct way to share Terraform state.

TerraformSecurityGit~10 minUnlock to play
beginnerLocked

Deploy Fails with Permission Denied. chmod 777 Everything?

A deploy fails with permission errors and a teammate wants to chmod -R 777 the app directory so it never happens again. Defend fixing the actual ownership mismatch instead.

LinuxSecurity~8 minUnlock to play
beginnerLocked

Deploys Are SSH + git pull at 5pm Friday. Why Change It?

The team ships by SSHing into prod and running git pull, often at 5pm Friday. A teammate says it has always worked. Defend what a real deploy needs without cargo-culting.

GitCI/CD~9 minUnlock to play
beginnerLocked

Disk Is at 100% and the App Is Down. rm -rf?

A server is out of disk and the app is down. A teammate wants to rm -rf the logs to free space fast. Defend what you actually do first.

Linux~8 minUnlock to play
beginnerLocked

History Is Messy, So Force-Push a Clean main?

A bad merge left main tangled with merge and revert commits. A teammate wants to rebase locally and force-push a clean history. Defend what you actually do.

Git~8 minUnlock to play
beginnerLocked

Nightly Backups Run. Are You Actually Covered?

Automated backups have run for months. A teammate says you are fully covered for disasters. Defend whether you agree.

Databases~8 minUnlock to play
beginnerLocked

Tests Pass Locally, Fail in CI. Just Retry?

Your suite is green on your laptop but red in CI. A teammate wants to add a retry and re-run until green. Defend what you actually do.

CI/CD~8 minUnlock to play
beginnerLocked

The Build Is Slow, So Let's Just Add --no-cache to CI?

CI Docker builds crept to 11 minutes and once shipped a stale dependency. A teammate wants --no-cache on every build. Defend what you actually do first.

DockerCI/CD~9 minUnlock to play
beginnerLocked

The Cert Expires Tonight. Just Bump It to a 10-Year Cert?

Your nginx TLS cert expires tonight and an expired cert took the site down last quarter. A teammate wants a 10-year self-signed cert. Defend the real fix.

NginxSecurity~10 minUnlock to play
beginnerLocked

The t3 Instance Got Slow. Just Size It Up?

An app on a t3 instance crawls under steady load and a teammate wants a bigger instance. Defend what is actually throttling it.

AWSObservability~9 minUnlock to play
beginnerLocked

You Pushed AWS Keys to a Public Repo

Live cloud keys just landed in a public GitHub repo. A teammate says delete the file and force-push. Defend what you do first.

GitSecurity~8 minUnlock to play
beginnerLocked

Your S3 Website Returns 403. Make the Bucket Public?

Objects in S3 return 403 and a teammate wants to turn off Block Public Access to fix it fast. Defend the right way to grant access.

AWSSecurity~9 minUnlock to play

Intermediate

20
intermediateLocked

3 AM Outage: Roll Back or Fix Forward?

A deploy 20 minutes ago correlates with a spike in 500s. You are on call. Defend whether to roll back or fix forward.

CI/CD~12 minUnlock to play
intermediateLocked

A Traffic Spike Caused an Outage. Autoscaling Did Not Save You.

A spike took the service down even though autoscaling was on. A teammate wants to crank the max replicas. Defend the real fix.

KubernetesObservability~13 minUnlock to play
intermediateLocked

Add a NOT NULL Column to a 50M-Row Prod Table

A migration adds a NOT NULL column to a huge live table. A teammate wants to run the ALTER directly. Defend the safe path.

Databases~14 minUnlock to play
intermediateLocked

After an Outage, Mandate Manual Approval on Every Deploy?

After a bad deploy caused an outage, leadership wants a mandatory human sign-off on every production release. Defend a better way to prevent the next one.

CI/CDObservability~13 minUnlock to play
intermediateLocked

Chasing a Bug: Flip Production to DEBUG and Log Everything?

To catch an intermittent bug, a teammate wants to set the whole prod app to DEBUG and log full request and response bodies. Defend a safer approach.

ObservabilitySecurity~12 minUnlock to play
intermediateLocked

Deploy From CI: Paste AWS Keys Into GitHub Secrets?

Your GitHub Actions pipeline needs to deploy to AWS. A teammate wants to paste a long-lived IAM access key into repo secrets. Defend the better option.

CI/CDSecurityAWS~12 minUnlock to play
intermediateLocked

Every Deploy Hammers the Database for 10 Minutes. Bigger DB?

Each deploy flushes the cache and the database melts for 10 minutes while it refills. A teammate wants to double the database size. Defend fixing the stampede instead of paying for peak.

DatabasesObservability~12 minUnlock to play
intermediateLocked

Finance Wants Everything on Spot Instances. Including the Database.

Finance wants the whole fleet, primary database included, moved to spot instances for 70 percent savings. Defend what actually belongs on spot and what a reclaimed primary really costs.

AWS~13 minUnlock to play
intermediateLocked

Lambda Is Exhausting Your RDS Connections. Raise the Limit?

Under load, Lambda functions fail with too many connections to RDS. A teammate wants to bump max_connections. Defend the real fix.

AWSDatabases~12 minUnlock to play
intermediateLocked

On-Call Is Drowning in Alerts. Silence Them?

A CPU alert pages constantly with no real impact. A teammate wants to silence it. Defend how you fix alerting properly.

Observability~12 minUnlock to play
intermediateLocked

Pod Stuck in CrashLoopBackOff After a Deploy

A new deploy leaves a pod in CrashLoopBackOff. A teammate wants to bump CPU and memory. Defend how you actually diagnose it.

Kubernetes~12 minUnlock to play
intermediateLocked

Pods Keep OOMKilling: Scale Up or Fix the Leak?

A service OOMKills every few hours. Adding replicas or raising memory limits buys time. Defend whether to scale around it or fix the root cause.

KubernetesObservability~12 minUnlock to play
intermediateLocked

Someone Changed Infra by Hand. Terraform Plan Is a Mess.

A manual console change put Terraform's state out of sync, and the next plan wants to undo it. Defend how you reconcile it.

Terraform~12 minUnlock to play
intermediateLocked

SQS Is Delivering the Same Message Twice. Is the Queue Broken?

Consumers occasionally process the same SQS message twice, causing double charges. A teammate says switch everything to FIFO. Defend the real fix.

AWS~13 minUnlock to play
intermediateLocked

Terraform Doesn't Know About the Manually-Made DB. Just Let It Recreate It?

A prod RDS instance was made by hand and Terraform now wants to destroy and recreate it. A teammate says just apply. Defend what you actually do first.

TerraformDatabases~12 minUnlock to play
intermediateLocked

The Container Needs Docker, So Mount the Socket and Run --privileged?

A CI job needs to build images and a teammate wants to bind-mount the Docker socket and run --privileged to fix permission errors. Defend the safe approach.

DockerSecurity~12 minUnlock to play
intermediateLocked

The Fix Is One Line in /etc. Just SSH In and Edit It?

Prod is degraded by one wrong sysctl value in /etc on an Ansible-managed fleet. A teammate wants to hand-edit each box now and codify it later. Defend the call.

Linux~11 minUnlock to play
intermediateLocked

The NAT Gateway Bill Exploded. Add More Gateways?

NAT Gateway data processing is now your biggest line item. A teammate thinks it is just bandwidth. Defend where the cost really comes from.

AWS~12 minUnlock to play
intermediateLocked

The Pipeline Is Slow. Skip Tests to Ship?

A 40-minute pipeline is blocking releases. A teammate wants to skip the test stage to ship faster. Defend your call.

CI/CD~12 minUnlock to play
intermediateLocked

The Queue Backlog Doubles Every Day. 10x the Consumers Tonight?

A consumer queue backlog is doubling daily and a teammate wants to 10x the consumer fleet tonight. Defend diagnosing the real bottleneck first, and why blind consumer scaling can make the outage worse.

Observability~12 minUnlock to play

Advanced

17
advancedLocked

A 30-Second Blip Became a 2-Hour Outage. More Retries?

A brief downstream blip cascaded into a full-platform meltdown because every layer retried. A teammate wants to raise retry counts. Defend the real fix.

Observability~14 minUnlock to play
advancedLocked

A Container in Prod Is Mining Crypto

A pod is pegging CPU running a crypto miner. A teammate wants to kubectl delete it and move on. Defend the real response.

KubernetesSecurity~15 minUnlock to play
advancedLocked

An EKS Pod Needs AWS Access. Attach It to the Node Role?

A pod needs to read S3, and a teammate wants to add the permission to the EKS node role to unblock it. Defend the least-privilege approach.

KubernetesAWSSecurity~15 minUnlock to play
advancedLocked

Cross-Account S3 Access Still Fails. Just Open It Up?

A partner account still gets AccessDenied on your encrypted S3 objects after you added a bucket policy. A teammate wants to make the bucket and key public. Defend the right fix.

AWSSecurity~15 minUnlock to play
advancedLocked

DynamoDB Is Throttling but Capacity Looks Idle. Crank It Up?

DynamoDB throttles some requests while table capacity looks underused. A teammate wants to raise capacity or flip to on-demand. Defend the real cause.

AWSDatabases~15 minUnlock to play
advancedLocked

Failover Lost 5 Minutes of Writes. Promise Zero Data Loss?

An async-replica failover dropped five minutes of committed writes. Leadership demands zero data loss with zero performance impact. Defend the honest trade-off.

Databases~14 minUnlock to play
advancedLocked

One Giant Terraform State Runs Everything

A single Terraform state holds all your infra; every plan is slow and scary. A teammate wants to just keep applying carefully. Defend how you reduce the blast radius.

Terraform~15 minUnlock to play
advancedLocked

p99 Latency Spiked Across a Microservice Chain

p99 latency jumped across a request that touches six services. A teammate wants to scale up the slowest-looking one. Defend how you find the real culprit.

Observability~15 minUnlock to play
advancedLocked

Secrets Rotation Took Down Prod at 3 AM. Pin Credentials?

Automated rotation revoked a database password while pools and caches still held it, locking prod out at 3am. A teammate wants to pin credentials for a year. Defend fixing rotation instead.

Security~13 minUnlock to play
advancedLocked

Service A Intermittently Cannot Reach Service B

One in twenty calls between two services fails. A teammate wants to add retries and move on. Defend how you actually find the cause.

KubernetesObservability~15 minUnlock to play
advancedLocked

Terraform Wants to Replace the Database. Apply Now?

A routine terraform plan unexpectedly wants to destroy and recreate the production database. Defend whether to apply, and how.

Terraform~14 minUnlock to play
advancedLocked

The Box Keeps OOM-Killing. Just Add a Huge Swapfile?

A latency-sensitive service keeps getting OOM-killed and a teammate wants to add 16GB of swap and crank swappiness. Defend what you actually do instead.

LinuxObservability~13 minUnlock to play
advancedLocked

The Nightly Report Is Slow. Just Run It in One Big Transaction?

A nightly report holds one Postgres transaction open for hours and writes are bloating. A teammate wants a bigger box and higher timeouts. Defend the real fix.

Databases~13 minUnlock to play
advancedLocked

Under Load, Healthy Pods Keep Restarting. Add Replicas?

During traffic peaks, Kubernetes keeps killing pods that are not actually broken. A teammate wants to scale up replicas. Defend the real fix.

KubernetesObservability~14 minUnlock to play
advancedLocked

We're Missing a Dimension, So Add user_id as a Label?

Debugging lacked per-user detail, so a teammate wants user_id and request_id as Prometheus labels. Prometheus is already under memory pressure. Defend the call.

Observability~14 minUnlock to play
advancedLocked

Your CI Has Keys to Prod and Pulls Unpinned Deps

CI pulls unpinned dependencies, runs them, and holds prod credentials. A teammate says just add a vulnerability scanner. Defend a real hardening plan.

CI/CDSecurity~15 minUnlock to play
advancedLocked

Your Primary Region Is Down. Fail Over Now?

The primary region is degraded. A teammate wants to flip DNS to the standby immediately. Defend whether and how you fail over.

DatabasesAWS~15 minUnlock to play
Have a question about a challenge? Ask in the private Discord.