☁️

DevOps, Docker & AWS

The infrastructure side of a backend interview — AWS fundamentals (EC2, S3, VPC, IAM, RDS, DynamoDB, Lambda), and Docker from first principles through images, networking, volumes, and production security.

AWS Fundamentals

Git & GitHub

Kubernetes Operations

CI/CD Pipelines

Q

What is CI/CD? What does Continuous Integration and Continuous Delivery/Deployment actually mean in practice?

beginner

Tests whether you know the distinction between Delivery (ready to deploy) and Deployment (auto-deployed) specifically.

Q

How do you write a GitHub Actions workflow that builds and tests a Spring Boot application?

intermediate

Tests whether you can actually write the YAML, not just describe CI/CD conceptually.

Q

How do you add a Docker build-and-push step to a GitHub Actions pipeline, and what's the difference between DockerHub, AWS ECR, and GitHub Container Registry?

intermediate

Tests whether you know how to wire the build step and where to actually push the resulting image.

Q

How do you securely pass secrets (AWS credentials, DB passwords) in a GitHub Actions workflow?

intermediate

Tests whether you know to use encrypted repository secrets rather than hardcoding credentials into workflow files.

Q

How do you implement a rollback strategy in your CI/CD pipeline if a deployment fails?

advanced

Tests whether you've actually planned for the failure path, not just the happy deploy path.

Q

How do you deploy a Dockerized Spring Boot app to AWS ECS/EKS from a GitHub Actions pipeline?

advanced

Tests whether you can connect the build, push, and deploy stages into one working end-to-end pipeline.

Q

What is the difference between blue-green deployment and rolling deployment in a CI/CD context?

advanced

Tests whether you know the tradeoff between instant-switch simplicity and gradual-rollout safety.

Object Storage (S3/MinIO)

Database Optimization Techniques

Q

How do you use EXPLAIN / EXPLAIN ANALYZE to find and fix a slow query?

intermediate

Tests whether you can actually read a query plan, not just know the command exists.

Q

What is a composite index, and when does column order inside it actually matter?

advanced

Tests whether you know a composite index is only useful for queries that filter on its leftmost columns first.

Q

Why should you always paginate large result sets, and what is keyset pagination?

advanced

Tests whether you know OFFSET-based pagination gets progressively slower on large tables, and keyset pagination avoids that.

Q

Why is a batch insert/update faster than doing it row by row, and how do you batch it in JPA?

advanced

Tests whether you know each round trip has fixed overhead, and batching amortizes that cost across many rows.

Q

What is a covering index and how does it eliminate table lookups entirely for a query?

advanced

Tests whether you know an index that already contains every selected column skips the extra trip to the actual table row.

Q

How does a type mismatch in a WHERE clause silently kill index usage?

advanced

Tests whether you know an implicit conversion on the indexed column forces a full scan even though an index exists.

Q

When is denormalization actually better than normalization for performance?

advanced

Tests whether you know read-heavy systems can trade some redundancy for avoiding expensive joins at query time.

Q

How do soft deletes (an is_deleted flag) hurt performance over time, and how do you mitigate it?

advanced

Tests whether you know a growing pile of never-really-deleted rows bloats indexes and slows every query that scans the table.

Q

How do you archive historical data to keep the working table small and fast?

advanced

Tests whether you know moving cold data to a separate archive table keeps hot-path queries fast on the active table.

Q

How do read replicas reduce load on the primary database, and what consistency tradeoff do they introduce?

intermediate

Tests whether you know replicas offload read traffic at the cost of potential replication lag on reads.

AWS Comparisons

Kubernetes & Container Orchestration

AWS & Kubernetes

Q

Which AWS services have you used, and how does your Java application integrate with them?

intermediate

Tests whether you can describe the actual integration mechanism (SDK client, IAM role-based auth, specific config) for services you've used -- not just name-dropping S3/RDS/SQS without being able to explain how the Java app authenticates and talks to them.

Q

Trace a service from Git commit to AWS production: pipeline stages, cloud services and your ownership.

intermediate

Tests whether you can walk the full CI/CD path concretely -- build/test stage, artifact/image build, deployment to the target compute (ECS/EKS/EC2), and which stages you personally owned vs which were shared infra -- rather than a hand-wavy 'we use a pipeline.'

Q

Newly deployed pods pass readiness checks but clients get 502/503 while old pods work. How do you debug before rolling back?

advanced

Tests whether you suspect the readiness probe is checking something too shallow (e.g. just TCP connect) that doesn't reflect actual app readiness -- the app may need more warm-up time (JIT, connection pool init) than the probe accounts for, so it's marked ready before it can actually serve traffic.

Q

Which network, socket and process checks (ss, file descriptors, lingering sockets, port bindings) help you compare healthy and broken pods?

advanced

Tests whether you'd compare ss -s for socket state counts, lsof/ls /proc/<pid>/fd for file descriptor exhaustion, and netstat/ss for lingering TIME_WAIT or CLOSE_WAIT connections between the two pods -- a side-by-side diff is often faster than theorizing about the cause.

Q

Only one Kubernetes pod is slow while the others are healthy. What could cause this?

advanced

Tests whether you check for node-level issues affecting just that pod's host (noisy neighbor, disk I/O contention, that specific node's resource pressure) rather than assuming the application code itself is at fault, since identical pods behaving differently points at the environment, not the code.

Q

The load balancer returns intermittent 502 errors but application logs show nothing unusual. Which layers do you investigate?

advanced

Tests whether you look below the application -- LB-to-backend connection timeouts, keep-alive mismatches between the LB and app server, or backend connection resets -- since a clean app log with an LB-reported 502 usually means the failure happened at a layer the app never got to log.

Q

API returns 503 after deployment though all pods look healthy. What do you check first?

advanced

Tests whether you check the service/ingress routing and endpoint registration first -- pods can be individually healthy while the service selector, endpoint list, or ingress config hasn't caught up with the new deployment, routing traffic nowhere or to terminated pods.