When I prepped for my first DevOps interview, I thought knowing Docker commands and Terraform syntax would be enough. Spoiler: it wasn’t. The interviewer asked about Kubernetes rolling updates, and I froze harder than a production pod stuck in CrashLoopBackOff. That’s when I realized DevOps interviews aren’t just about tools, they’re about how you think under pressure.
So I started collecting real coding interviews from friends at Amazon, Meta, and TikTok, covering everything from Linux gotchas to CI/CD troubleshooting, and practiced them using the Interview Coder AI Interview Assistant. The result? Fewer surprises, better answers, and a lot less anxiety walking into each round.
This guide walks you through the same DevOps interview questions and examples I used, from Docker to Terraform and Jenkins to Ansible, plus how to practice them properly so you actually remember what matters when it counts.
Top 26 DevOps Interview Questions (That Actually Come Up)

1. So... What’s the Deal With DevOps?
Let me guess, you’ve seen "DevOps" on every other job description, but no one really explains what the heck it is without sounding like they’re pitching enterprise software on a stage. Here’s how I explain it when mentoring juniors:
DevOps is just dev and ops folks working together without throwing tickets over a wall. That’s it.
No magic. Just fewer silos, more shared responsibility, and faster delivery with fewer fires.
I used this mindset (plus the proper prep) to land roles at Amazon, Meta, and TikTok. If you’re prepping for interviews, this is one of the most common opening questions. Keep your answer tight, real, and not buzzword bingo.
Key Terms
DevOps interview questions and answers, CI/CD, collaboration, and delivery pipeline.
2. DevOps vs Agile: What's the Real Difference?
Short version? Agile helps developers talk to users. DevOps helps developers talk to ops.
Agile is about short cycles and fast feedback. DevOps is about getting the thing shipped and keeping it running without ops cursing your name at 2 AM.
Say this in your own words during the interview, but don’t make it theoretical. Interviewers want to hear if you understand how the two work together in real teams.
Keywords
DevOps vs Agile, feedback loops, sprints, and cross-team communication.
3. Most Mentioned Tools (Yes, You Should Know These)
These tools come up in every DevOps interview. If you haven't touched them yet, spin up a project on your laptop or playground environment. My cheat sheet:
Jenkins
Automation O
Git
Version control is non-negotiable
Docker
Everything’s in a container now
Ansible / Puppet / Chef
Pick one, understand config management
Selenium
For test automation
Tags
CI tools, containers, version control, and test frameworks.
4. DevOps Lifecycle: How It Actually Works on a Project
Interviewers love asking you to “walk through the DevOps lifecycle.” Most folks memorize a list. I tell a story.
Here’s the flow I’d talk through, especially if I’m whiteboarding:
- Plan what’s needed
- Code based on feature scope
- Build it into something shippable.
- Test before shipping (seriously, don’t skip this)
- Integrate changes from multiple folks.
- Deploy to staging or prod.
- Operate, monitor, and react.
- Watch everything break, fix fast, repeat.
Search Terms
CI/CD stages, monitoring, build-test-release cycle.
5. Why DevOps Actually Makes Life Better (When Done Right)
Every interview wants to hear the why. Don’t give a Wikipedia list. Give your take and be honest.
What I usually say:
- Fewer late-night fire drills
- Better teamwork (less finger-pointing)
- Faster bug fixes (ship small, fix fast)
- Happier customers because stuff just works
No need to memorize a bullet list. Just explain what you’ve seen or what you want to see in a good team.
Focus Areas
Fast iteration, fewer bugs, and team collaboration.
6. Rolling Out DevOps on a New Project
If they ask how you’d roll out DevOps from scratch, they want to know you’ve thought beyond your laptop. Here’s my go-to approach:
Week 1–2
Observe how things are currently done (and where they break).
Week 3
Propose a simple CI setup, nothing fancy.
Month 1–2
Ship a small working pipeline with Git + CI + Docker.
After That
Add monitoring, improve testing, and iterate based on honest team feedback.
Don’t over-engineer. Start simple, get buy-in, build momentum.
Tags
Rollout plan, CI pipelines, team onboarding.
7. Continuous Delivery vs. Continuous Deployment (Interview Trap Alert)
This one trips people up all the time.
- Continuous Delivery code is ready to deploy (but someone still needs to click the button).
- Continuous Deployment code goes live automatically once tests pass.
If you don’t want prod deploying while you sleep, go with Delivery. If your team loves living on the edge (with great tests and rollback), Deployment works.
Keywords
Deployment pipelines, release automation.
8. What’s Config Management Really Doing?
Here’s how I explained this at TikTok during onboarding:
“Imagine setting up 100 servers by hand. Now imagine doing it once in YAML and letting the machine do it for you.”
That’s config management.
Whether it’s Ansible, Puppet, or Chef, it’s about making setup repeatable, predictable, and less annoying.
Related Terms:
Config drift, repeatability, and automation scripts.
9. Monitoring Without Being a Zombie Pager Bot
Monitoring isn’t just about “setting alerts.” It’s about knowing when stuff is weird before users do.
A few key things I’ve always checked for:
- Are we tracking latency, error rates, and throughput?
- Do we get pinged for real issues, not noise?
- Can we spot trends before they explode?
Good monitoring is like a sixth sense for your system. Bad tracking is just stress.
Search Terms
Metrics, alerting, logs, APM.
10. DevOps With AWS: What You Actually Need to Know
They might ask about AWS. Don’t list every service like a brochure. Focus on how you’ve used it.
What I usually say:
- EC2 for compute
- S3 for storage and logs
- IAM for access control
- CloudWatch for monitoring
- CloudFormation or Terraform for infra
Mention what you’ve touched and why it mattered, not what you saw in a tutorial.
Keywords
CI/CD on AWS, IAM policies, infra-as-code.
11. Metrics That Actually Matter in DevOps
Back when I was prepping for my Meta interview, memorizing 100 DevOps terms would get me through the system design round. It didn’t. What did help? Understanding the actual signals that engineering teams care about. Not textbook stuff, real KPIs that get flagged in post-mortems and performance reviews.
Here are the three you better know cold:
Mean Time to Recovery (MTTR)
When something breaks (and it will), how fast can you fix it? This is your resume-worthy metric.
Deployment Frequency
How often you ship tells a story. More shipping = tighter feedback loops and fewer merge headaches.
Change Failure Rate
Of all your deployments, how many go sideways? Fewer is better. Zero is a lie.
Bonus points if you talk about lead time for changes and why versioning infra matters in modern teams.
12. What Infrastructure as Code Actually Means
Way back in college, I was SSH’ing into EC2s and manually installing Nginx like a caveman. Then I discovered IaC and realized I was wasting hours doing stuff a YAML file could’ve handled in seconds.
Infrastructure as Code (IaC) means treating your infrastructure the same way you treat your app code, such as versioning, reviewing, and making it repeatable.
You write declarative files (think: main.tf or template.yaml) and tell the machine, “Here’s what I want to make it real.” Then it does. No surprises. No drift. No “wait, why is staging different from prod?”
If you’ve heard terms like idempotency, declarative config, or versioned infra, they all roll up to this idea. It’s not theory, it’s how you keep your infra from turning into spaghetti.
13. IaC on AWS: How Real Teams Use It
Let’s talk shop. On AWS, Infrastructure as Code usually means you’re picking one of three weapons:
CloudFormation
AWS’s native templating system. Feels like writing XML in 2008, but it gets the job done.
CDK
Write infra using real programming languages (TypeScript, Python). Feels like cheating, in a good way.
Terraform
Cloud-agnostic and community-loved. If you’ve seen a startup job post with “IaC experience required,” this is probably what they mean.
You define your stack in something like YAML or JSON, commit it, test it, and push it just like app code. No more “but it worked on my box.” This is how real infra teams operate. It’s not about being fancy, it’s about not burning down prod.
14. Why Everyone’s Talking About DevOps (and Should Be)
Let’s not pretend this is some new religion. DevOps blew up because it worked mainly at scale. When I was still figuring out how to get my Leetcode right, Netflix was deploying hundreds of times per day. Facebook? Same story. Small diffs. Fast feedback. Zero drama.
They’re not doing it to be trendy. They’re doing it because they’ve got millions of users and no room for sloppy deploys.
DevOps isn't some silver bullet; it’s just the best system anyone’s found so far for not shooting yourself in the foot every Friday afternoon.
15. DevOps vs. Agile: Don’t Confuse the Two
People love to mix these up, but they’re not the same.
Concept
Agile
DevOps
Focus
Build fast
Ship safely
Feedback
From users
From systems/tools
Practices
Scrum, Kanban
CI/CD, Infra automation
Ownership
Dev team
Dev + Ops together
Goal
Shorter sprints
Smoother deploys
Agile helps you plan and build. DevOps enables you to ship and monitor. They can work together, but confusing one for the other is how you end up with broken Jenkins pipelines and sad retrospectives.
16. Common DevOps Anti-Patterns (aka How to Fail)
Let’s be real: not every team “doing DevOps” is actually doing DevOps.
Some red flags I’ve seen way too often:
DevOps = One Guy Named Kyle
Nope. If only one person owns it, it’s not a practice; it’s a business risk.
“We’re Agile, So We’re DevOps Too”
False. You can scrum yourself into the ground and still have garbage deploys.
“DevOps Will Fix Everything.”
It won’t. It’s just process + tooling. If your culture sucks, it’ll just fail faster.
Spinning Up A DevOps Team
That’s just ops with new branding. Real DevOps is shared responsibility, not a side department.
If you’re prepping for interviews, don’t just memorize success stories. Learn to spot the anti-patterns too. The best candidates can say, “Here’s what I saw go wrong and here’s how we fixed it.”
17. Version Control Advantages
The first time I saw a teammate overwrite someone else’s code during a group project, I knew we had a problem. Version control solved that. No more “Who broke the build?” finger-pointing. Just clean history, full accountability, and the ability to time-travel through your codebase like it’s GitHub Quantum Edition.
A few underrated perks:
- Everyone can work on the same file, at the same time, and not lose their minds.
- You can track exactly who did what and why because every commit tells a story.
- Lost something? Rewind. Everything’s saved. No panic.
- Using Git? The whole project lives on everyone’s machine. If the server eats dirt, you still have a copy.
18. Branching Strategy Details
Interviewers ask about branching to see if you’ve worked on real teams or just solo projects in tutorials.
Here’s how I usually break it down:
Release Branching
Lock the feature list. Freeze new stuff. Only fixes, polish, and prep. Merge it into main when ready. Also, merge back into dev so things don’t drift.
Feature Branching
Spin off a branch per feature. Build. Test. Merge once it’s solid.
Task Branching
Attach the ticket ID to the branch name. Makes it super easy to know what’s what in PRs.
Nobody’s looking for a textbook answer, just prove you’ve touched real repos.
19. Shift Left Explained
“Shift left” is DevOps speak for: don’t wait until the end to fix problems. Do it earlier. Security? Catch it while you code, not during deployment. Same with performance, tests, and config. Move all that stuff closer to the start, where mistakes are cheap.
Think of it like catching a bug in a Google Doc before sharing it with your boss. Way less painful.
20. Blue/Green Deployment Pattern
This one’s for when you don’t want to YOLO into production.
You’ve got two environments: one running live (blue), one waiting in the wings (green). You test the new version on green. If it behaves, you flip traffic over. If it doesn’t, no stress, just roll back to blue, such as zero downtime, no drama.
I used this for a side project once and slept way better on launch night.
21. Continuous Testing Definition
Imagine if every time you pushed code, your tests automatically ran in the background and told you what broke. That’s continuous testing. It catches problems while you're still in the zone, not three days later when you’ve forgotten what that function even does.
It’s like having a personal editor for your code, except they work 24/7 and don’t need coffee breaks.
22. What Is Automation Testing?
Automation testing = stop manually clicking buttons like it’s 2009.
You write scripts once. Tools like Selenium run them again and again, the same way every time. No flaky memory, no missed steps. It’s the software version of “set it and forget it.”
Used right, it saves hours. Used wrong, and you’ll automate bugs at lightning speed. So write good tests.
23. Benefits of Automation Testing
Here’s the pitch, short and real:
- Saves time
- Saves money (see above)
- Runs while you sleep
- No “oops, I forgot to test that” moments
- Helps avoid the human error tax
- Let's you test more stuff, more often
You still need to think. But the heavy lifting? That’s the machine’s job now.
24. How to Automate Testing in DevOps
Here’s how I’ve done it in past setups:
- Push your code to the shared repo.
- CI tool (like Jenkins) detects the change.
- It grabs the code, builds it, and kicks off tests using tools like Selenium.
- You get a nice dashboard that tells you whether you broke something or not.
It’s not fancy. It’s just a habit. The more you automate, the less you fear deployment.
25. Why Continuous Testing Matters
Here’s the nightmare: You ship, users complain, and you realize no one tested that last change.
Continuous testing kills that vibe.
It runs tests every time something changes. That means problems show up early, not three weeks later in prod. It’s how you ship faster without getting roasted on Reddit.
26. Key Elements of Continuous Testing Tools
Let me break this down without the buzzwords:
Test Optimization
Make sure your tests aren’t slow, flaky, or pointless.
Intelligent Analysis
Automatically flag the stuff that’s likely to break. Saves you guessing.
Policy Checks
Stay on the right side of security and compliance without memorizing every rule.
Risk Flags
See which parts of your app are shaky so you can double down on them.
Fake Services (aka Service Virtualization):
If the backend team’s API isn’t ready, mock it. Keep building.
Traceability
Know what code ties to what requirements. Keeps PMs off your back.
Good tools help. But what matters more is making testing part of your workflow, not an afterthought.
Related Reading
- Vibe Coding
- Leetcode Blind 75
- C# Interview Questions
- Leetcode 75
- Jenkins Interview Questions
- React Interview Questions
- Leetcode Patterns
- Java Interview Questions And Answers
- Kubernetes Interview Questions
- AWS Interview Questions
- Angular Interview Questions
- SQL Server Interview Questions
- AngularJS Interview Questions
- Vibe Coding
- Leetcode Blind 75
- C# Interview Questions
- Jenkins Interview Questions
- React Interview Questions
- Leetcode Patterns
- Java Interview Questions And Answers
- Kubernetes Interview Questions
- AWS Interview Questions
- Angular Interview Questions
- SQL Server Interview Questions
- AngularJS Interview Questions
- TypeScript Interview Questions
- Azure Interview Questions
15 Intermediate DevOps Interview Questions (With the Real-World Answers I Wish I Had)

1. Component-Based Model in DevOps: Why It’s Like Building with Lego, Not Play-Doh
What’s the deal with component-based architecture in DevOps?
Here’s how I explain it to my past self: Instead of rewriting code every time like a caveman (been there), you break your app into reusable, modular pieces that you can mix and match. Think classes in OOP, but leveled up to components. Drop them into new builds without duct tape or debugging nightmares. Efficient. Predictable. Sanity-saving.
Used it heavily back when I was messing around with microservices and containers during my TikTok prep. Wildly useful. If you’re wondering how this fits into containerized setups, I can show you a practical breakdown.
2. Jenkins CI/CD Pipeline: Automating So You Can Actually Sleep
Let’s be honest, no one wants to SSH into a server at 2 a.m. because a deployment failed. That’s why I got serious about Jenkins.
A solid CI/CD pipeline does what you'd typically do manually, such as build, test, and deploy, without you having to babysit it. Here’s what I usually set up for Java/Maven apps using Docker and Kubernetes:
- Install Jenkins and plugins (Git, Docker, Pipeline, etc.)
- Configure tools (JDK, Maven, Node, whatever your stack needs)
- Set up Git credentials, registry creds.
- Create a pipeline job.
- Add a Jenkinsfile with three stages:
- Build (compile/package)
- Test (automated tests + results)
- Deploy (to your Docker/K8S/whatever setup)
- Monitor everything using logs, console output, and reports
If you want a sample Jenkinsfile that worked for me during Meta prep, say the word.
3. Chef vs. Puppet: Configuration Management, but Make It a Showdown
Quick story: I got into Chef first because someone on Reddit said, “It’s more flexible.” It was cool until I hit a wall with visibility during setup. Puppet? More of a “set it and monitor” approach, with better feedback loops upfront, but the DSL learning curve was real.
Here’s how I break it down now:
Feature
Chef
Puppet
Language
Ruby
DSL
Feedback on Errors
Nah
Yes, at install time
Speed
Slower comms
Faster comms
Usage
SMBs
Large orgs
Different tools, different vibes. I’ve used both; neither is better universally. Depends on your team, org size, and tolerance for debugging at 1% battery.
Want a cheat sheet for use cases and community support? I’ve got one bookmarked.
4. Git Rebase: AKA How to Avoid Git History Looking Like Spaghetti
I used to merge everything. Then a senior engineer reviewed my Git history and showed me how to rebase.
Now I rebase almost every branch I touch. It keeps your project history looking clean and readable like one straight story instead of a dozen messy side plots.
You pick a base, move your commits onto it, and Git acts like you wrote them in order.
git rebase --interactive main
Use it to squash commits, edit messages, or re-order things when you're prepping for a PR. Just be careful with shared branches; rebasing those can make teammates hate you.
Need real examples from a PR I submitted during my Amazon internship? Happy to share.
5. Selenium Tool Suite: For When You’re Done Manually Clicking Buttons
Selenium is like the robot intern you wish you had. I’ve used it to test login forms, payment flows, even multi-step signup screens, the ones you never want to test manually again.
The suite includes:
Selenium IDE
Click-and-record testing. Easy mode.
Selenium WebDriver
Programmatic testing. Real deal.
Selenium Grid
Run tests across browsers/OSes.
Selenium RC
Retired, unless you’re building time machines.
Hook it into Jenkins and you’ve got regression tests running after every push. Want to see how I wired this up in a CI pipeline? I’ve got receipts.
6. Selenium IDE: Testing for People Who Hate Writing Test Code
Look, not everyone’s a QA engineer. Sometimes you just want to record what you do on a site and have the machine run it later.
Selenium IDE lets you:
- Record interactions (clicks, inputs, etc.)
- Replay them as tests.
- Export the flow into code (Java, Python, etc.) if you want to scale it
I used this when I was prototyping a frontend during my first dev job. Saved me hours — especially when I was still learning how to write real test scripts.
If you want a walkthrough on exporting your Selenium IDE test into something Jenkins can run, ping me.
7. Banker’s Algorithm in OS: Deadlock Avoidance Explained
What’s The Banker’s Algorithm?
It’s not a real banker, but it does care a lot about who gets what and when. Think of it as a cautious scheduler that doesn’t like surprises. It only gives out resources if it’s sure you won’t wreck the system later. It checks if a process can safely finish before actually providing any resources. Yeah, it’s slow and a bit paranoid, but that’s the whole point.
Want to actually understand how safety checks work instead of nodding and hoping it’s not on the interview loop? I’ve got an example with resource matrices if you want to see how it really works.
8. Backup And File Copy In Jenkins: Preserve Configs And Artifacts
How Do You Back Up Jenkins Without Breaking Things?
You just copy the whole JENKINS_HOME directory. That’s your config brain, lose it and you’re starting from scratch. For copying files in jobs, you’ve got sh or bat, depending on your OS. Need it to run regularly? There’s a plugin for that (shoutout to ThinBackup).
Want to back up your artifacts straight to S3 or NFS from a pipeline? I’ve got a few clean snippets for that.
9. Set Up A Jenkins Job: Step-by-Step Job Creation
How Do You Create A Jenkins Job?
Click "New Item," name it, pick the job type (start with Freestyle if you're just testing), then walk through the setup.
- Add your Git repo
- Set your build triggers
- Add build steps
- Hit save
- Smash "Build Now" and pray the console log isn’t red
Want to see this set up for a pipeline or multibranch flow instead? I can walk through those, too.
10. Docker Architecture: Clients, Containers, Registries
What’s Docker Made Of?
- Client: Where you type your docker run and hope for the best
- Daemon (dockerd): Does the heavy lifting on the backend
- Images: Your blueprint is immutable and versioned
- Containers: Your actual apps, running and misbehaving
- Registry: Where your images live (usually Docker Hub, but could be private)
- Compose: Write a YAML file, launch three services, pretend you're running prod.
- Networking: So your services can talk or not, if you messed it up
Need a diagram showing how this all connects in a Kubernetes CI pipeline? Got you.
11. DevOps Life Cycle: Continuous Practices That Speed Delivery
What’s The DevOps Life Cycle, Really?
It’s basically a loop of writing, testing, breaking, fixing, and repeating, but automated. Think CI, CD, monitoring, and feedback all stitched together to ship without crying.
Here’s the “7 Cs” people love to rattle off:
Continuous Development
Continuous Integration
Continuous Testing
Continuous Deployment
Continuous Monitoring
Continuous Feedback
Continuous Operations
Want tools mapped to each stage? I’ve got a list I used back when I was prepping for my Amazon loop.
12. Git Merge vs Git Rebase: Which One And Why
Which One Should You Use: Merge Or Rebase?
That depends on whether you care more about a clean history or your teammates' sanity.
- Merge: Keeps history intact. Good if you don’t want to mess with other people's timelines.
- Rebase: Rewrites history. It makes things linear and pretty, but it can be dangerous in shared branches.
I used to avoid rebase until I learned when not to do it. Want a rule-of-thumb chart for team workflows?
13. DataOps vs DevOps: Don’t Confuse The Pipelines
What’s The Real Difference Between DataOps and DevOps?
DevOps is about deploying code quickly without breaking production. DataOps is about getting clean, valid data where it needs to be without having to ping six teams and decode 12 dashboards.
If your pipeline is full of airflow DAGs and schema diffs, that’s probably DataOps. If it’s Docker builds and rollout scripts, DevOps. Both are automated, but the nouns are different.
Want a short example showing how I wired a DataOps flow into my CI loop for schema tests?
14. The 7 Cs of DevOps: Continuous Practices That Matter
What are the 7 Cs of DevOps?
If someone asks you this in an interview, they want to see if you know what CI/CD actually stands for. Here’s the cheat sheet:
Continuous Integration
Continuous Testing
Continuous Delivery
Continuous Deployment
Continuous Monitoring
Continuous Feedback
Continuous Operations
Need tool recommendations for each one? I’ve got a battle-tested stack from my TikTok internship days.
15. Shift Left To Reduce Failure: Test Early, Fix Early
What’s “Shift Left” And Why Do People Keep Saying It?
It just means “test earlier.” That’s it. Don’t wait until prod breaks. Catch the bugs while you’re still in dev mode. Push security and unit tests up the pipeline.
Less drama. Fewer Slack pings at midnight. That’s the pitch. Want a checklist I used to show shift-left practices in my Meta interview? I can drop that too.
22 Advanced DevOps Interview Questions (That Actually Came Up in My Interviews)

Look, I’ve been grilled by Amazon, TikTok, Meta, and a bunch of companies trying really hard to sound like them. I still remember one interview where a senior engineer opened with, “So tell me about your favorite Blue-Green deployment strategy. And why it failed.”
This guide? It’s not a theory. These are questions I either encountered personally or have seen used in real-world interviews for SRE, platform engineering, or senior DevOps roles. Some are open-ended and vibe-checky. Others want receipts, YAML, Terraform modules, and code snippets, the usual.
Let’s get into it.
1. Infrastructure as Code: What’s in Your Git Repo?
They’re not asking for a definition. They’re asking what you’ve built. Can you explain how you keep infra consistent across teams? Have you wrestled with Terraform state files? Do you version your CloudFormation templates? That’s the conversation.
Bonus points if you can walk through a real module with tradeoffs.
2. Zero-Downtime Deployment: How Do You Keep Prod from Screaming?
This usually comes in two flavors: “Talk me through Blue-Green” or “Explain how you’d release with no interruption.”
Know your patterns: canary releases, rolling updates, traffic shifting with feature flags, service meshes. They might toss in “how would you do this without Kubernetes?” just to see you sweat.
Want to compare traffic splitting between Envoy and NGINX?
3. CI/CD Security in Multi-Cloud: How Do You Not End Up on Reddit?
When your pipeline spans GitHub, AWS, GCP, and 6 SaaS vendors, security becomes your full-time job.
What they care about:
- Secret handling (Vault? KMS? Something else?)
- Artifact signing
- Policy-as-code
- Who can push what, and when?
Pro Tip
Walk in with a checklist. I keep mine updated in Notion, happy to share.
4. Monitoring & Logging What’s Your Pager Fatigue Strategy?
They’ll ask, “How do you catch incidents early?” The wrong answer is “We have Prometheus.”
They want:
- What metrics matter
- What alerts are noisy
- How logs are routed
- How incidents are triaged
Real Talk
Mention how you reduced alert fatigue or saved yourself from a 3 AM page.
5. Immutable Infrastructure: Why You Rebuild Instead of Patch
I got asked this at Amazon: “Do you prefer fixing servers or rebuilding them?”
This is where you talk about AMIs, golden images, packer builds, and replacing instead of mutating. It’s all about reproducibility.
But don’t forget to mention the pain: stateful apps, migration headaches, cost tradeoffs. They know it’s not magic.
6. Serverless: Do You Know When Not to Use It?
Yes, serverless is excellent when you don’t want to manage infrastructure. But do you understand the downsides?
Cold starts? Vendor lock-in? Lack of observability?
Frame it like this, “I like serverless for event-driven stuff with unpredictable traffic. But I’d rather run a container for anything long-running or latency-sensitive.”
7. Blue-Green vs. Canary: How Do You Roll Stuff Out Without Panic?
This one comes up a lot. If you’ve never done it, go set up a toy app and try both.
Blue-Green = two identical environments, one gets the update, then you switch traffic.
Canary = release to 1%, then 10%, then 50%, watching metrics the whole time.
They’ll ask what tooling you used. Bonus if you’ve used Istio or Flagger for canaries.
8. Docker Performance: What’s in Your Image, and Why Is It So Big?
They’ll ask: “How would you shrink this image?” or “How do you improve cold start time?”
What they want:
- Alpine or distroless base images
- Multi-stage builds
- Layer caching strategy
- Pruning junk dependencies
I once cut a Go image from 700MB to 40MB. It got me a callback.
9. Kubernetes Rollbacks: How Do You Undo Without Chaos?
You'd better know how to kubectl rollout undo and set your revision history.
Talk about:
- Helm rollback with values changes
- Readiness/liveness checks
- Observability baked into rollback decisions
And please mention the rollback that didn’t work. I promise they’ve had one too.
10. Speed Up CI/CD: Without Turning Your Pipeline Into a Dumpster Fire
I used to think CI/CD was all about squeezing in a few Docker layers and calling it a day. Until I sat there staring at a test suite that took longer than my dinner delivery. Lesson learned: fast pipelines aren’t about throwing money at infra or installing every plugin on earth, they’re about trimming the fat.
Here’s what actually worked for me:
Cache The Hell Out Of Everything
I cache node modules, Docker layers, build artifacts, you name it. If it doesn’t change, it shouldn’t make again.
Split Tests And Run Them In Parallel
Unit, integration, end-to-end... don’t queue them like it’s 2005. Split and run in chunks.
Incremental Builds
Only build what has changed. You don’t need to recompile the entire galaxy for a typo in one module.
I’m also a big fan of blue-green deploys and canary rollouts, not because they’re fancy, but because I’ve had a bad deploy at 3 AM, and trust me, you don’t want that smoke.
Need templates for GitHub Actions or GitLab? I’ve built some you can copy and actually understand without pulling your hair out.
11. Sidecar Containers: Not Just a Buzzword Engineers Throw Around
People talk about sidecars like it’s Kubernetes cosplay. But when I was building out observability for a service that kept ghosting under load.
Here’s what I learned (the hard way):
- A sidecar is just a container chilling next to your main app inside the same pod.
- They share the same network and volumes, so that they can do things like:
- Forward logs
- Handle TLS
- Act as a proxy
- Collect metrics
- Or even refresh tokens quietly while your app focuses on... actually running
I used them for logging, metrics, and even running cron-like cleanup scripts without messing with the main image.
Want to see some examples? I’ve got working patterns that don’t suck.
12. Monolith vs SOA vs Microservices: The Real Difference, No Buzzwords
I’ve worked in all three. Monoliths that broke if you touched one line. SOA setups with an ESB felt like trying to configure a nuclear reactor. Microservices that spun out of control with 30 repos and zero cohesion.
So let’s break it down, no BS.
Feature
Monolith
SOA
Microservices
Structure
One app. Everything bundled.
They are split into services but are usually coupled through an ESB.
These are totally independent services, usually with their own repo.
Communication
Internal calls.
XML/SOAP via ESB.
REST/gRPC/events.
Deployment
One deploy breaks all.
Partial deploys are possible, but fragile.
Deploy independently. Break one, rest survive.
Scaling
Scale the whole app.
Some scale flexibility.
Scale-specific services.
Tech Stack
One stack fits all.
Some flexibility.
Freedom. One team runs Go, another runs Python.
Failure
One bug = meltdown.
A bit isolated.
Contained.
Best For
Small apps, MVPs.
Big enterprises, internal tools.
Startups and teams that move fast and know what they’re doing.
Want to know how I helped migrate a legacy monolith to services without losing sleep? I’ll write that one next.
13. Shift Left: Because Catching Bugs in Prod Sucks
Nobody told me early on that the later you find a bug, the more it ruins your week. We were doing everything the old way: build, test, then pray. Then I started shipping tests before code, working with QA like we were in the same squad (because we were), and guess what? Fewer fires. Fewer 3 AM Slack messages.
Shift left isn’t a “best practice.” It’s “do this or suffer later.”
Here’s what worked for me:
QA + Dev = One Team
Don’t throw code over the wall. Write test plans together.
Mock Your Staging Infra Locally
Make your dev environment match prod. Yes, I know it’s annoying. Yes, it’s worth it.
Use Pre-Commit Hooks
To enforce quality before it even hits CI.
Make Tests The Default
Not the afterthought. I run unit, integration, and contract tests on every push.
Want real examples of how I wired this into a GitHub Actions pipeline? Ask me. I built a setup that checks code, runs tests, lints, deploys, and alerts me all under 5 minutes.
14. Post-mortems: Making Mistakes Suck Less
I’ve sat through enough post-mortems to know when it’s just finger-pointing disguised as “learning.” But when done right? It’s free gold. You get to see the exact moment things went sideways and map a plan to avoid that trap again, whether you're debugging production or explaining a decision in an interview.
Want a blameless post-mortem template that doesn’t sound like corporate filler? Happy to share the one I’ve actually used with teams.
15. What sudo Actually Does (and Why Interviewers Keep Asking About It)
Everyone loves asking about sudo in security interviews, probably because most candidates give the same bland explanation: “It lets you run commands as root.” Cool. But why does it matter? What’s the deal with the sudoers file? Why use NOPASSWD? That’s where people usually blank.
Want quick-fire sudoers examples that interviewers can’t ignore? I’ve got you.
16. Jenkins Architecture: Yep, Still a Thing
Jenkins is ancient by today’s standards, but let’s be real, a lot of companies still run it. You’ve got a controller (used to be called master) pulling from Git and tossing jobs to agents (used to be slaves). Think of it like a very picky traffic cop with too many lanes to manage.
Need a simple architecture diagram or comparison to GitLab CI or CircleCI that doesn’t look like it was made in Visio in 2006? I’ve made those too.
17. Infrastructure as Code: Because Manual Setup Is a Crime
I still remember SSH’ing into servers and installing packages one by one as if it were normal. It wasn’t. That kind of setup broke every other week, and nobody could remember which engineer initially set it up. Infrastructure as Code (IaC) changed that. Now you write files, push to Git, and spin up cloud infra like it’s a coding problem because it is.
There are two ways most folks handle it:
Imperative
You tell it how to do something, line by line.
Declarative
You tell it what you want, and let the tool figure it out.
Want a Terraform (declarative) vs shell script (imperative) cheat sheet for interviews? I’ve got one that’s helped me land offers.
18. Pair Programming: Two People, One Keyboard, Zero Excuses
I used to think pair programming was a waste of time. Then I paired with someone smarter than me and suddenly I was shipping cleaner code, catching dumb mistakes faster, and onboarding way quicker when switching teams. Turns out it’s less about “two heads are better than one” and more about not getting stuck in your own head.
Want data-backed takes you can drop during an interview to justify pair programming? Let’s talk studies, not just opinions.
19. Blue/Green Deployments: A Fancy Name for Not Breaking Production
Blue/green isn’t a new “deployment strategy,” it’s just common sense with a marketing name. You spin up two nearly identical environments. One is live (blue), one is warming up (green). You gradually route traffic, monitor, and switch entirely once it’s stable. If things go badly? Flip the traffic back. No drama.
Want real-world tips for handling database migrations during a blue/green switch? That’s where most people fumble.
20. Dogpile Effect: Cache Goes Down, Chaos Ensues
Imagine your cache expires at the exact moment traffic spikes. Every server tries to rebuild the cache at once boom dogpile. Suddenly, your backend is melting and the alerts are flying. You prevent it with locks and jitter, let one process rebuild the cache, the rest chill.
Want to see how I’ve handled this using Redis locks and probabilistic TTLs? It’s easier than you think.
21. Git Pre-commit Hooks: Prevent Trash from Leaving Your Laptop
Here’s the thing nobody wants to be that dev who pushes broken formatting or unlinted junk. Git pre-commit hooks help you sanity-check your changes before you even commit. Want to force .py files through a formatter or check for TODOs left in code? Write a script and make it non-negotiable.
Need a cross-platform setup using the pre-commit framework? I’ve got a plug-and-play config for that.
22. Git Server Hooks: Automate Stuff After You Push
Most engineers never touch server-side Git hooks, but they’re super helpful. You’ve got:
Pre-Receive
Stop destructive code at the gate.
Update
Check every commit in a push.
Post-Receive
Do things after the push lands, like trigger CI or notify your team.
Need real examples of how I’ve used each hook to enforce branch protection or auto-deploy? Just ask.
Related Reading
- Cybersecurity Interview Questions
- Leetcode Alternatives
- System Design Interview Preparation
- Ansible Interview Questions
- LockedIn
- Selenium Interview Questions And Answers
- Git Interview Questions
- jQuery Interview Questions
- ML Interview Questions
- NodeJS Interview Questions
- ASP.NET MVC Interview Questions
- Leetcode Roadmap
- Deep Learning Interview Questions
- Front End Developer Interview Questions
- Engineering Levels
13 DevOps Interview Questions for Git That Actually Come Up
1. Centralized vs. Distributed: Who's Holding the Truth?
When I was ramping up for my Amazon interview, I thought I had Git down cold… until they hit me with a version control curveball. “What’s the tradeoff between centralized and distributed VCS?” Uh, Git good, SVN bad?
Here’s the breakdown minus the resume buzzwords:
Centralized Version Control (think Subversion)
- One server holds everything. No local backups.
- You go down with the ship if that server crashes.
- Slightly simpler for small teams, but brittle.
Distributed Version Control (like Git)
- Everyone has a full copy of the repo on their machine.
- You can work offline. CI/CD runs faster—no single point of failure.
- More branching freedom. More complexity, too.
Interview Tip
Be ready to talk tradeoffs. Centralized = easier permissions. Distributed = better for experimentation, branching, and merges. Keep it real.
2. Clone That Repo: What's the Command?
If you can't clone a repo without Googling it, you're not ready for Git questions. Just saying.
git clone https://github.com/user/repo.git
Or, if you're cool like me and use SSH:
git clone [email protected]:user/repo.git
Stuff worth knowing (because they will ask):
- For CI: use --depth 1 to keep builds light.
- Use HTTPS tokens or SSH keys, not your password.
- CI agents need creds too don't hardcode them, obviously.
3. Pushing to GitHub: What's the Process?
I’ve seen folks freeze on this mid-interview. Here’s the simple version:
git remote add origin https://github.com/your/repo.git
git push origin main
If your default branch is still called master, fix that.
More edge cases:
New branch?git push -u origin feature/xyz
- If you get blocked, check for protected branches or required reviews.
- Oh, and CI might yell at you for skipping tests. Don’t skip the tests.
4. Bare Repo vs. Regular Init: Why It Matters
This one tripped me up during a mock with a Google engineer.
Regular git init
- Creates a working directory you can edit.
- Stores Git data in a .git/ folder.
Bare git init --bare
- No working files. Just the Git history.
- Used for remote repos (CI/CD, GitLab server, etc.)
Basically, if it’s a shared repo on a server that others push to, it should be bare. If it’s your personal playground, regular init is fine.
5. Oops: You Pushed a Bad Commit. Now What?
This is where people start sweating. Here's the non-destructive fix:
git revert <commit-hash>
That creates a new commit that undoes the mistake.
What not to do:
- git reset --hard on shared branches. That’s how you make enemies.
- Force-pushing to main unless you're into chaos engineering.
Interview Tip
Mention feature flags and rollout toggles. Git isn't your only rollback tool.
6. Fetch vs. Pull: What’s the Actual Difference?
This isn’t a trick question, but people overthink it.
git fetch
Grabs the latest commits, but doesn't touch your working files like reading the news, but not reacting.
git pull
Fetch + merge (or rebase, depending on your config). It updates your local branch.
For interviewers:
- Say fetch is safer if you're not ready to merge.
- Rebase is cleaner for history. Merges are safer for conflicts.
- In CI, you usually just fetch by SHA and check out cleanly.
Want More Like This?
Try Interview Coder, the only tool I used to prep for my Amazon, Meta, and TikTok interviews without burning out. You get real questions, not recycled fluff. Try it free. You’ll know in one session if it’s for you.
7. Git Stash: What Do You Do When You’re in the Middle of Something and Suddenly Get Pulled Into Something Else?
Happens to the best of us: you're halfway through writing code that’s almost working... then Slack lights up. “Can you switch to this hotfix branch real quick?”
Now, if you commit your half-broken code just to stash it somewhere, that’s going to haunt you later in code review. Ask me how I know.
That’s where git stash comes in clutch. It lets you temporarily shelf your changes without committing like a messy draft shoved in a drawer, so you can come back to it when the fire drill is over.
What Interviewers Expect Here
- Be fluent with git stash, git stash list, git stash apply, git stash pop, git stash drop.
- Mention git stash branch <name> — underrated move to spin off into a fresh branch.
- Bonus points: Talk about how git stash -u includes untracked files (which can mess with CI if you’re not careful)
8. Git Branching: Yeah, You’re Supposed to Use Them. Like, Properly.
Look, when I first started, I pushed everything straight to main like a gremlin. Nobody told me that branching was how you don’t wreck production.
So, you want to add a feature? Branch it. Bugfix? Branch it. Tiny UI tweak? Honestly... still, branch it.
Git branching is just controlled chaos; it gives you the space to build without breaking other people’s work.
If They Press You On This In Interviews
- git branch feature/x to create
- git checkout -b feature/x to create and switch (shorthand flex)
- git merge or a pull request to merge back
- Know your flavors: feature branching vs trunk-based development
- Be ready to talk about protected branches, naming patterns, and CI checks on PRs
9. Git Merge vs Rebase: This One Will Come Up
Okay, real talk, I messed this up in my first technical interview at Meta.
Here’s the scenario they gave me:
You're working on a feature branch. In the meantime, other people push changes to main. What now?
You’ve got two options:
Merge
Pull those changes into your branch with git merge main. Safe, easy, creates a merge commit.
Rebase
Rewrite your branch so it looks like it was built on top of the latest leading clean history, but riskier.
How to not sound like you memorized a cheat sheet:
- Say that merge keeps history intact, which teams may prefer for traceability
- Rebase gives a linear history, great for local cleanup before pushing.
- Never rebase shared branches. Ever.
- Mention git rebase -i for squashing commits. CI bots love tidy commits.
10. Git Diff: How Do You See What Changed in a Commit?
I used to squint at GitHub diffs until I found out about this gem:
git diff-tree -r <commit_hash>
That’s your X-ray vision for seeing what actually changed in a commit.
Want just filenames? Use git show --name-only <commit> or git diff --name-only <commit>^ <commit>
Want to know if files were added, deleted, or modified? --name-status is your friend.
This is one of those areas where interviewers check if you're a click-everywhere type or someone who knows how to script their workflow.
11. Merge Conflicts: The Messy Middle of Teamwork
Let me paint a picture. You and your teammate both edit the same line in a file. You push first. They try to merge later, but there is a merge conflict.
No magic fix. You’ve got to pick what stays and what gets binned manually.
I usually open up the file, look for those angry <<<<<<<, =======, and >>>>>>> markers, and start cleaning.
GitHub GUI? Yeah, That’s Fine Too
- Click “Resolve conflicts” in your pull request
- Edit directly in the browser
- Delete the markers and save the final version
- Repeat for every file, then “Mark as resolved”
- Merge as usual
Terminal Nerd?
- Use git status to find the broken files
- Open them in VS Code, Sublime, whatever
- Make your decisions
- git add . and git commit to lock it in
- Done
Interview flex: mention that CI will block merges with unresolved conflicts. Teams want folks who know how to fix it before the pipeline screams.
12. Git Bisect: How to Catch the Commit That Broke Everything
I call this “bug hunting with a lie detector.”
git bisect is what you run when something broke, and you have no idea which commit caused it.
You tell Git:
git bisect start
git bisect bad
git bisect good <known-good-commit>
Then it keeps narrowing it down, binary search style. After each step, you tell Git if the commit is good or bad. Eventually, it rats out the exact commit that caused the bug.
Bonus Move:
Automate it.
git bisect run ./your-test-script.sh
Let your tests decide what’s broken. I’ve saved hours in interviews by bringing this up when debugging process questions came up.
13. Basic Git: What You Should Know Cold
No excuses here. These are table stakes.
Git Commands
git init
Starts a new repo
git config
Set your name/email
git clone <url>
Clones a repo
git add .
Stages changes
git commit -m "msg"
Commits staged changes
git diff
Shows changes
git status
Shows staged/unstaged files
git rm <file>
Removes a file from staging and disk
git show <commit>
Shows commit content
git branch
Lists branches
git checkout <branch>
Switch branches
git log
View commit history
git tag
Add version tags
git reflog
Recover lost commits
What makes this stuff interview-worthy?
- Interviewers want to know if you’re safe. Can you recover from mistakes? Can you commit cleanly? Can you undo without nuking the repo?
- Bring up how you fit Git into PRs, CI/CD, pre-commit hooks, or even release tagging.
- Most juniors know the commands. Seniors know when not to use them.
Related Reading
- Coding Interview Tools
- Jira Interview Questions
- Coding Interview Platforms
- Questions To Ask Interviewer Software Engineer
- Java Selenium Interview Questions
- Python Basic Interview Questions
- Best Job Boards For Software Engineers
- Leetcode Cheat Sheet
- Software Engineer Interview Prep
- Technical Interview Cheat Sheet
- RPA Interview Questions
- Angular 6 Interview Questions
- Common Algorithms For Interviews
- Common C# Interview Questions
77 DevOps Interview Questions for Continuous Integration: Jenkins

1. Jenkins Master-Slave Setup (or whatever we’re calling it now)
Here’s how it works:
- Jenkins master watches your repo like a clingy ex. Every time you commit, it reacts.
- Then it offloads the “go do stuff” to slaves (aka agents).
- The agents build, test, and toss the results back—the master just delegates. Classic management.
2. Jenkinsfile: Where the Pipeline Lives
A Jenkinsfile is just a plain text file that says: "Hey Jenkins, here’s what to do with this code."
Why bother?
- You can version it like regular code.
- You know precisely what the pipeline is doing no guessing.
- It’s in Git. You break it, you fix it, just like everything else.
3. Quick One: How Do You Start Jenkins?
Pop quiz:
java –jar Jenkins.war
That’s the one. That’s how you fire it up from the CLI. Don’t overthink it.
4. Jenkins Pipeline Core Concepts (The Non-Boring Version)
Pipeline
Literally just the script that defines your build/test/deploy flow.
Node
A machine that runs the stuff.
Stage
Group of steps. Like “Build”, “Test”, “Deploy”.
Step
A single command.
Think
Run a test, build a jar, etc.
Keep it modular. You’ll thank yourself later.
5. Maven Dependencies Go In…
pom.xml — that’s your answer. Always has been, always will be.
6. Jenkins Pipelines: Scripted vs Declarative
You’ve got two flavors:
Scripted Pipelines
- Feels like Groovy with Jenkins glued on top.
- More control, more headaches.
- You build the logic from scratch.
Declarative Pipelines
- Easier to read.
- More opinionated (which is a good thing).
- You define pipeline { ... } and go from there.
Pick the one your team already uses. Arguing about this is not a good use of time.
7. Jenkins Backups: Not Fun, Still Necessary
You want to back up Jenkins? Copy the JENKINS_HOME directory. That’s no fancy UI, no magic commands. Just copy the folder.
8. Copy Jenkins Between Servers (You’ll Do This Eventually)
- Move the job directory.
- Clone it with a new name if needed.
- Rename it to update the job name.
It’s all just folders. Jenkins is old-school like that.
9. Authentication in Jenkins: 3 Ways
Jenkins internal DB (default, meh)
LDAP (if you're in a big company)
External app server auth (Tomcat, etc.)
If you're just testing, leave it on the internal one. Just don’t forget your password.
10. Deploying Custom Plugins
Want to use your own plugin build?
- Drop the .hpi file into plugins/
- Delete the dev directory
- Touch a .pinned file
- Restart Jenkins
Old-school plugin management. Welcome to DevOps.
11. Locked Out? Disable Security Temporarily
Change useSecurity to false in the config file. Restart Jenkins. You're back in. Just don’t leave it that way, obviously.
12. Build Triggers: How Jenkins Knows When to Run Stuff
- Commit to source control? Boom, triggered.
- Another build finishes? It can chain.
- You can also schedule it.
- Or just click “Build Now” like a caveman. It all works.
13. How to Restart Jenkins Manually
- /restart — nukes it, no waiting.
- /safeRestart — waits for builds to finish.
Choose your chaos level.
14. Creating a Jenkins Job (Freestyle)
- Go to the Jenkins homepage.
- Click “New Item”
- Choose “Freestyle project”
You’ll set:
- Triggers
- Build steps
- SCM (if needed)
- Optional post-build steps
Think of it like a wizard from 2005. It kind of is.
15. What’s in the Selenium Suite?
IDE
Suitable for beginners, or if you like clicking.
RC:
Basically retired. Legacy stuff.
WebDriver
The real deal. Use this.
Grid
For scaling tests across browsers/machines. Fancy, but rarely needed early on.
16. Selenium WebDriver Exceptions: The Greatest Hits
- TimeoutException: You waited too long.
- NoSuchElementException: Your selector sucks.
- ElementNotVisibleException: It exists but isn’t shown. CSS or timing issue.
- SessionNotFoundException: You quit the driver and kept clicking. Stop that.
17. Testing on Android? Use Appium or Selendroid
Yup, Selenium works on Android with help.
- Appium = modern and active
- Selendroid = old and kind of dead
Just use Appium unless someone pays you to do otherwise.
18. Selenium Supports 3 Main Types of Testing
Functional
Does the feature do what it should?
Regression
Did you break something that used to work?
Load
Hit it with traffic. Watch it sweat.
19. Get Text from Web Elements
String text = driver.findElement(By.id("text")).getText();
Useful for checking labels, errors, popups, and your sanity.
20. Mouse + Keyboard Actions in Selenium
Stuff like:
clickAndHold()
dragAndDrop()
keyDown(Keys.CONTROL)
keyUp(Keys.CONTROL)
All of it lives in the Actions class. Use it when regular .click() isn’t enough.
21. Which One's Not a WebElement Method?
Answer: size().
The rest — getText(), sendKeys(), getTagName() — are fair game.
22. findElement vs findElements
findElement() // One match
findElements() // List of all matches
Simple. Use the second one if you're looping. First one if you're not.
23. driver.close() vs driver.quit()
- close() shuts the current window
- quit() kills the whole browser session
Don’t mix them up unless you enjoy debugging browser zombies.
24. Submitting a Form with Selenium
WebElement el = driver.findElement(By.id("form"));
el.submit();
Clean, simple, does the job as it should.
25. Functional vs Regression Testing
Selenium does both. You’ll mostly write functional tests, then rerun them after bug fixes and call that regression testing. Boom. Done.
26. Selenium IDE — The Old-School Recorder That Still Slaps (Sometimes)
Look, if you're just getting started with Selenium and want a quick way to record clicks and type stuff into inputs without writing code yet, Selenium IDE kinda works. It’s like training wheels for test automation clunky but functional when you just want to hit “record,” click around a bit, and see what breaks.
I used it early on when I didn’t fully grok WebDriver yet. It’s available as a browser extension (Firefox or Chrome). You can build scripts by clicking around, drag-and-drop commands, and even get autocomplete. Pretty wild for something that feels like it’s from the browser plugin era.
Would I ship with it? Never. But would I recommend it to someone nervous about test automation? Yeah, it’s a decent entry point.
27. Assert vs Verify: One Crashes, One Doesn’t
Here’s the deal:
Assert Is Like
“If this doesn’t exist, I’m quitting.” Your test stops.
Verify Is Like
“Huh, that’s weird, moving on.” Your test keeps running.
I’ve had Verify save my butt during test runs where I just wanted to gather more fails without nuking the whole session. Use Assert when something has to be there (like a login success message). Use Verify when you’re doing recon.
28. Launching a Browser with WebDriver: The Java Starter Pack
This is the first line most of us ever wrote when messing with Selenium:
WebDriver driver = new ChromeDriver();
Or Firefox. Or, IE, if you're stuck in 2009. That line spins up the browser so you can start doing stuff like .get("https://example.com"). Simple, but it opens up a whole world of script automation headaches… I mean possibilities.
29. Asset Management vs Configuration Management: Two Different Beasts
If you’re mixing these up, let me clear it up fast:
Configuration Mgmt
Focus
How stuff connects
Concern
Troubleshooting, ops
Scope
Everything you deploy
Lifecycle
Deployment to retirement
Asset Mgmt
Focus
What stuff do you own
Concern
Finance, procurement
Scope
Everything you purchase
Lifecycle
Purchase to disposal
CM is for engineers. AM is for accountants. That’s the simplest way I think about it.
30. Chef + SSL Certs = Trust Issues Solved
Chef uses SSL certs to prove you’re not some random script-kiddie trying to mess with nodes.
Each node has a key pair. The server checks that your private key matches what it expects before giving you access. It’s like a secret handshake, no match, no entry.
31. Disable httpd on Boot: Just One Command (The Right One)
You want to stop Apache from launching on boot?
Here’s your command:
systemctl disable httpd.service
Don’t overthink it. The other options are just wrong. This is the one.
32. Test Kitchen in Chef: Your Local Test Playground
Test Kitchen lets you test cookbooks locally before pushing them to real nodes. It spins up a tiny VM or Docker box, runs your cookbook, and tells you if things catch fire.
It's like writing bash scripts but with training wheels. Super handy if you’re tweaking things and don’t want to deploy broken junk to production.
33. chef-apply vs chef-client: Think One-Off vs Full Run
Here’s how I remember it:
- chef-apply: “I just need to run this one recipe right now.”
- chef-client: “Run the full cookbook from the server.”
Example:
chef-apply nginx.rb
chef-client
One is local and manual. The other follows the big boss (the Chef server).
34. Puppet Cert Signing: Commands You’ll Forget Without Notes
To sign a cert for an agent in Puppet 2.7:
puppetca --sign MyAgent
Or, in some versions:
puppetca sign MyAgent
You’ll forget this syntax. Everyone does. Just bookmark it.
35. Puppet + Friends: Tools That Actually Help
Here’s what I used in my past config workflows:
Jira
Tracks changes
Git
Version control (obviously)
Puppet Code Manager
Handles deployments
Jenkins
Runs checks in a CI pipeline
Yes, it’s a Frankenstack. Yes, it works.
36. Puppet Resources: The Building Blocks
Resources = things you want Puppet to control. Files, packages, users, services. Stuff like:
package { 'nginx':
ensure => 'latest',
}
You define what you want, Puppet keeps it that way. Easy.
37. Puppet Class: Just a Reusable Config Block
A class in Puppet is like a function in code. You define stuff once, use it wherever you need.
class nginx {
package { 'nginx': ensure => 'latest' }
}
Think DRY, but for sysadmins.
38. Ansible Role: Because Your Playbooks Are a Mess
Roles = Ansible’s way of organizing chaos. A role is a mini folder with tasks, vars, templates, etc.
You drop it into your playbook like this:
roles:
- nginx
Cleaner, reusable, and shareable. Use roles if your playbook is 300+ lines and you hate your future self.
39. When to Use {{ }} in Ansible
Use double braces ({{ }}) anytime you’re referencing a variable in Ansible. Don’t overthink it.
debug:
msg: "This is the value: {{ my_var }}"
Only exceptions are when: clauses and a few others. It’s mostly muscle memory.
40. Reusing Stuff in Ansible: Roles, Include, Import
You’ve got three ways:
Roles
Fully structured, shareable
Include
Brings in a file, runs inline
Import
Same as include, but loads only once
Use roles when you want to share, use import when recursion gets weird.
41. Ansible vs Puppet: What’s the Vibe?
Feature Comparison
Install Style
- Ansible: Agentless
- Puppet: Agent-based
Language
- Ansible: YAML
- Puppet: Ruby DSL
Windows Support
- Ansible: Limited
- Puppet: Yes
Setup Time
- Ansible: Short
- Puppet: Longer
Ansible feels like Python folks made it. Puppet feels like Ruby folks made it. That’s really the vibe difference.
42. Docker Architecture: Client > Daemon > Container
Docker runs like this:
You run a command in the client.
It sends that command to the daemon.
The daemon does the real work (build, run containers).
Images are templates.
Containers are instances.
Registries are where images live.
Think client = remote, daemon = muscle.
43. Docker vs VMs: What’s Lighter?
Feature: Memory
- Virtual Machines: Heavy
- Docker Containers: Light
Feature: Boot Time
- Virtual Machines: Slow
- Docker Containers: Fast
Feature: Performance
- Virtual Machines: Worse
- Docker Containers: Better
Feature: Scaling
- Virtual Machines: Painful
- Docker Containers: Easy
Feature: Portability
- Virtual Machines: Meh
- Docker Containers: Excellent
Docker wins. Not even close. I stopped touching VMs unless I’m doing retro stuff.
44. Docker Swarm: Sharing Containers Across Nodes
If you want to run Docker stuff on more than one machine, use Swarm. It sets up a cluster:
- Manager node: The boss
- Worker nodes: Do the grunt work
Run:
docker swarm init --advertise-addr <manager-ip>
Then join with a token on other nodes. You’ve got a little cluster now.
45. Create a Docker Swarm: Commands You’ll Google Anyway
Here's what you actually need:
docker swarm init --advertise-addr 192.168.1.1
This turns the current box into a manager. To add workers:
docker swarm join --token <token> <manager-ip>:2377
Every time I set this up, I forget the port number. You’re welcome.
46. Run multiple containers as one service: Docker Compose
So, you’ve got three containers: frontend, backend, and database. Running them manually is fine if you hate your life. Otherwise, use Docker Compose.
- It uses YAML (yes, spacing matters, yes, it will silently break).
- Let's you define multiple services in one file.
- Everything stays in its own sandbox but talks to each other.
Good enough to get past most behavioral questions that sneak in tech.
47. What’s a Dockerfile, and why do you care?
A Dockerfile is basically your image recipe. It’s how you tell Docker:
“Hey, here’s how to spin up an environment that won’t blow up in production.”
- You write it once
- Build an image with docker build
- Upload it to Docker Hub
- Anyone can grab it and spawn containers like magic
Interviewers want to know if you’ve ever touched prod. This is how they sniff it out.
48. Images vs Containers: Don’t Blank Here
Think of it like this:
Docker Image
- The blueprint
- Built from a Dockerfile
- Stored in Docker Hub/Registry
- Read-only
Docker Container
- The actual running house
- Created from the image
- Lives in your Docker daemon
- Read-write (and temp by default)
If you mix these up in an interview, they will silently judge you. Ask me how I know.
49. Alternate to YAML in Compose: Yeah, You Can Use JSON
Technically, Docker Compose accepts JSON too. Nobody sane uses it, but if someone asks, just say:
docker-compose -f docker-compose.json up
And then pray they don’t follow up with, “Why would you use JSON over YAML?”
50. Spinning Up a MySQL Container
Easiest way to sound like you’ve done backend work before:
docker run -it mysql
You’re pulling the MySQL image, spinning a container, and creating a read-write layer on top.
Want to see it running?
docker ps
That command’s your new best friend.
51. Registry vs Repository: Interviewer Trick Question
These terms get tossed around like synonyms. They’re not.
Docker Registry
The whole storage & delivery system
Think: Docker Hub
Docker Repository
A specific image collection
Think: library/node, user/project
The registry holds the repos. Repos hold versioned images.
If they ask you this, they’re fishing for a signal. Give them clarity.
52. Cloud Platforms That Support Docker
You don’t need to memorize them, but know the usual suspects:
- AWS
- Azure
- Google Cloud
- Rackspace (yeah, still alive)
This comes up when they ask, “Have you deployed containers on the cloud?”
Say yes. Then mention ECS or GKE and move on.
53. EXPOSE vs PUBLISH: Know This Cold
EXPOSE
- Used in your Dockerfile
- Just a hint to Docker: "This container might need this port open"
- Doesn’t actually do anything unless you publish
PUBLISH
Used with docker run -p
- Maps your machine’s port to the container’s
Example:
docker run -d -p 8080:80 nginx
That’s how localhost:8080 reaches your NGINX server.
If you reverse the ports? Enjoy hours of debugging.
54. What Does Nagios Actually Monitor?
Short answer: stuff that breaks.
- Servers
- Applications
- Services
- Uptime
- CPU, disk, network
It checks if things are online, misbehaving, or completely gone. Then sends alerts before your CTO does.
55. (Yeah, They Repeated This Question)
Let’s not pretend this is new info. Move on.
56. Nagios Remote Plugin Executor (NRPE): Know the Acronym
Let’s break it down like you’re teaching your non-tech friend:
- Nagios lives on Machine A
- You want to monitor Machine B (remote server)
So You
- Install NRPE on Machine B
- Use check_nrpe on Machine A
- Pull metrics like CPU, memory, disk
This lets Nagios monitor machines it doesn’t live on.
57. What Ports Does Nagios Use?
Usually 5666 for NRPE. If they ask you more than that, they’re trying to flex. Don’t panic.
58–59. Active vs Passive Checks in Nagios
You’ll get asked this if they think you’ve faked your resume.
Active Checks
- Nagios initiates it
- Runs on a schedule
- Plugin returns the result
- Nagios handles alerting
Passive Checks
- Some external app reports status
- Writes to a file
- Nagios reads it and acts
If they press: “Active = Nagios checks; Passive = someone else checks.”
60. Where’s the Main Config File?
Probably here:
/usr/local/nagios/etc/resource.cfg
Or somewhere equally annoying. You edit this to make Nagios do anything.
61. What is Nagios Network Analyzer?
It sniffs traffic and screams when something sketchy happens. Think bandwidth, packets, and random spikes. Sysadmins love it. You can name-drop it and move on.
62. Why Bother Monitoring SSL and HTTP?
Because production outages cost jobs.
- HTTP monitoring: Uptime, broken routes, server health
- SSL monitoring: Expiry dates, certificate issues, secure connections
If you’ve ever had your staging cert expire mid-demo, you already know why this matters.
63. Nagios + Virtual Machines
Nagios works on all the usual suspects:
- VMware
- Hyper-V
- Amazon EC2
- Xen
Metrics it pulls:
- CPU
- Memory
- Network
- VM status
Just say: “Yeah, I’ve monitored VMs with Nagios before” — whether in a project, lab, or home server.
64. Three Variables That Control Recursion And Inheritance In Nagios
Nagios doesn’t really “think” in objects the way a Java dev would, but its config system borrows the idea of reusable building blocks. That’s where templates come in.
Here’s the deal:
- name: Think of this as naming a blueprint. You're not telling Nagios to do anything yet — just creating something other objects can copy from.
- use: This is where you say, “I want this thing to behave like that blueprint.” It pulls in the variables and settings.
- register: If 0, you’re saying “this is just a blueprint — don’t run it.” If 1, it’s live and Nagios will act on it.
Example:
define someobjecttype{
name template_name
use name_of_template
register 0
}
You can stack templates, too, so you can reference another object that itself references another template. Gets weird fast, but powerful when you get the hang of it.
65. Why People Say Nagios Is “Object-Oriented”
Honestly? It’s mostly about how it lets you inherit values.
You define hosts, services, and commands, then reuse chunks of config from templates or other objects. It’s not “object-oriented” in the Java or Python sense, but it borrows the idea of DRY (don’t repeat yourself) and inheritance.
Types of things you define:
- Hosts
- Services
- Commands
- Time periods
That’s about it. Nothing fancy, just a structured config with inheritance baked in.
66. What is State Stalking in Nagios?
This one sounds dramatic, but it’s actually just Nagios being nosy in a good way.
Stalking is when Nagios keeps extra close watch on a host or service and logs output even if the state hasn't changed. Usually, if a service stays OK, Nagios stops logging. But with stalking turned on, it’ll log if the output of the check changes even if the status remains the same.
Useful for debugging weird edge cases or figuring out flaky checks that don’t change state but change their output constantly.
67. What is a VCS?
Version Control is like save points in a video game, but for code. It lets you:
- Track every change
- Undo mistakes
- Try weird ideas on branches
- Collaborate without stepping on each other’s toes
That’s the real point. Not just tracking confidence.
68. Why VCS Isn’t Optional If You Work With Other Humans
If you’re not using VCS, you're either working solo or asking for merge hell.
Here's what it gives you:
- Complete history of every file
- Instant rollbacks when things break
- Branching without fear
- Merge power (yes, Git merge is a beast, but it’s better than emailing .zip files)
- Shared accountability
Also, having Git in your muscle memory is just table stakes now.
69. Centralized vs Distributed VCS
Two flavors:
Centralized (SVN)
One central server, everyone pulls and pushes from there. Easy to manage. Risky if the server goes down.
Distributed (Git)
Everyone has a full copy of the repo. You can commit, branch, and experiment locally without breaking anything upstream.
Git gives you freedom. SVN gives you control. Most teams pick Git now, for good reason.
70. Git vs SVN: Real-World Differences
- Git is fast. SVN feels like dial-up sometimes.
- Git makes branching and merging feel natural. SVN makes you scared of them.
- SVN does better with binary files (PDFs, images), but most teams don’t care.
- Git is built for open-source chaos. SVN is more old-school, centralized IT vibes.
71. What is Virtualization?
It’s like creating a bunch of fake PCs on one real machine. Each fake PC gets its own chunk of CPU, memory, and disk, and thinks it’s a real machine.
Why care? Because instead of buying 10 servers, you run 10 virtual ones on one beefy box.
72. Why Teams Actually Use It
Not because it’s cool. Because:
- Servers are expensive
- You want to test risky stuff without nuking production.
- Scaling up/down should take minutes, not weeks.
- You can snapshot, pause, and restore like it’s a saved game.
73. Different Types of Virtualization
Server
Run 5 VMs on one machine
Network
Fake out different networks on the same hardware
Storage
Combine 10 disks into one virtual one
Desktop
Run a Mac on a Windows box (or vice versa)
74. What’s a Hypervisor?
It’s the bouncer. Manages which VM gets which hardware resources. Keeps them from stepping on each other.
Two kinds:
Type 1
Bare metal (runs directly on hardware, like VMware ESXi)
Type 2
Runs on top of an OS (like VirtualBox)
75. How Does Virtualization Help DevOps?
You can spin up whole dev or staging environments without shipping hardware.
More specifically:
- Automate test environments
- Clone production setups
- Scale infra with scripts
- Stay cost-efficient
76. The Actual Wins for DevOps Teams
- Build-test-destroy cycles are faster.
- Infra as code actually works.
- No more “but it worked on my machine” excuses.
- Cost goes down, uptime goes up.
77. Common Virtualization Tools You’ll See in DevOps
VMs
VMware, VirtualBox
Containers
Docker, Kubernetes
Cloud Providers
AWS, Azure, and GCP all run on heavy virtualization under the hood.
If you made it this far, congrats, you now understand more about Nagios, VCS, and Virtualization than most junior DevOps engineers I’ve interviewed.
Want more prep like this? Try Interview Coder, I built it to help you land big interviews without losing your weekends to Leetcode hell.
Or, subscribe here to get more blunt, no-BS tech prep in your inbox.
Nail Coding Interviews with our AI Interview Assistant − Get Your Dream Job Today
Look, I’ve been that guy. Up at 1 am, cramming binary tree patterns I’d already “learned” five times. Crushed 500 LeetCode problems, still blanked when a TikTok interviewer hit me with a simple “design this.” Why? Because brute force doesn’t prep you for real interviews. Communication does. Decision-making does. Staying calm while writing something that actually runs does.
That’s why I built Interview Coder.
It’s not another site with endless problems. It’s a second brain during interviews. You think out loud, it writes code, runs tests, explains tradeoffs, and helps you move faster while staying invisible on screen share.
Grinding problems is a waste if you can’t think clearly under pressure. I built InterviewCoder to help you focus on what actually matters, such as clear thinking, solid logic, and communication, while it handles the boilerplate in the background. It’s how I landed Amazon, Meta, and TikTok. Now it’s yours.
What InterviewCoder Actually Does (No BS)
I hate fluff, so here’s the straight answer: it’s your silent pair programmer during interviews. You type what you’re thinking. It fills in code. Test it. Points out dumb mistakes. Suggests cleaner ways to write it without taking over your screen or giving you away.
- Works with Python, JavaScript, Go, Java, etc.
- Handles build tools, shell scripting, and cloud templates.
- Clean interface. Nothing visible to the interviewer.
- Stays out of the way unless you need it.
Want to generate a test case mid-interview? Done. Want to rewrite a function to avoid mutating state? Just type it. The assistant’s got your back.
Stays Hidden, On Purpose
Interview Coder was built for interviews, not classroom demos. It doesn’t mess with your screen share, no weird UI layers. No overlays. No logging into weird portals. Just sits quietly while you talk through your approach like a pro.
What it does help with:
- Writing code that actually compiles and runs
- Avoiding brain farts under pressure
- Keeping your thought process clean, simple, and explainable
You still have to think. But you don’t have to freeze.
Real-Time Help: From Hello World to Helm Charts
Technical interviews are messy. One minute it’s a BFS problem. Next minute, it’s “how would you deploy this with autoscaling and logging?”
InterviewCoder doesn’t care what direction the interview goes. It keeps up.
- Need a quick rolling update strategy? It’s got one.
- Containerizing a Python app for Kubernetes? No sweat.
- Writing Terraform to spin up a VPC and subnet? That too.
- Need a rollback plan you can explain without sounding lost? Done.
You focus on logic. It handles the syntax and structure.
DevOps Q&A: Straight Answers You Can Actually Use
What's The Difference Between CI and CD?
CI is about merging fast and testing everything before it breaks. CD is about shipping to production without humans screwing it up. CI = build + test. CD = deploy + don’t get paged.
How Would You Design A Ci/Cd Pipeline For Microservices?
Git + clean branching
Automated builds + unit tests
Push to an artifact repo
Run integration tests
Deploy infra as code with Terraform
Stagin.g first
Canary or blue/green deploy
Monitoring with Prometheus/Grafana
Logs with ELK or Loki
Pray slightly less than usual
Why I Built This
Honestly? I was tired of pretending LeetCode = interview prep. I wanted something that helped when it actually mattered in the moment. During the call. When your voice is shaky and your hands are sweaty.
So I made it. I used it. I landed the roles. Now it’s yours.
Action Steps
Want to stop freezing mid-interview and start thinking clearly? Try Interview Coder for free and make your prep count. Want weekly insights that don’t read like corporate nonsense? Join the newsletter. No fluff. Just stuff that works.
How Does Docker Help With Deployment?
It keeps your app and its mess of dependencies in one place so you don’t spend your weekend debugging “it works on my machine” problems. Use multi-stage builds to keep images lean, and toss in health checks and resource caps to stop things from melting down in prod.
What Kubernetes Components Should I Mention?
Start with kubectl (the command line thing), then mention the API server, etcd (it remembers everything), controller manager, scheduler, and kubelet (runs stuff on the nodes). Also: pods (the thing you actually deploy), deployments (how you manage pods), services (networking), ingresses (expose stuff), and RBAC (who can do what). Don’t just name-drop. Be ready to explain when and why they matter.
When Should I Use Terraform Vs CloudFormation?
Terraform if you’re playing across clouds or want the bigger community. CloudFormation if you live in AWS and want the “official” way with all the built-in toys. Both work. Just don’t argue about it on Reddit.
How Do You Handle Logging And Observability?
Centralize logs (ELK, or anything that doesn’t make your life hell), scrape metrics with Prometheus, and put nice graphs on Grafana. Use OpenTelemetry to connect the dots across requests. Write actual alerts that tie to stuff users care about, not CPU spikes nobody understands. Oh, and have a runbook. It saves lives.
What’s A Good Rollback Plan When Stuff Breaks?
Keep previous versions tagged and ready to go. In Kubernetes, use deployment history or switch traffic with a service. On cloud VMs? Save images and pin versions in your autoscaling groups. Panic is not a strategy; preparedness is.
How Do You Troubleshoot Latency Spikes In Prod?
Metrics first CPU, memory, disk, and IO. Then logs. Then see if someone deployed something dumb. Check for slow DB queries. Use curl to hit your endpoints. If you can’t reproduce it with a load test, you didn’t really find the problem.
What Config Management Tools Are Worth Talking About?
Ansible, if you want push-based. Chef/Puppet if you wish to model-driven stuff. Bonus points if you explain why you stopped using them. Also, mention why you lean toward immutable infra these days, less config drift, less crying.
How Do You Lock Down Your CD/CD Pipeline?
Treat it like prod least privilege for service accounts. Rotate secrets. Sign your builds. Scan for vulns. Do static analysis for things like hardcoded API keys. CI is code secure, it's like you would your app.
People Are Actually Getting Hired With This
I built Interview Coder to help folks like me go from “I’m not ready” to “I got the offer.” Over 87,000 developers have used it to clean up their explanations, build absolute confidence, and land roles at companies like Amazon, Meta, TikTok, and fast-growing startups. The biggest feedback? “I finally sounded like I knew what I was doing.”
Use It Ethically. You're Still the One Interviewing.
Interview Coder helps you practice and learn. Don’t bring it into the actual interview or try to cheat your way through. You still need to do the talking. We just help you not freeze up when someone asks about trade-offs or why your pod just died.
How to Start
- Download Interview Coder
- Pick the role you’re targeting (SRE, backend, platform, etc.)
- Practice with fundamental questions about CI/CD, Terraform, monitoring, scaling, and more
- Use the assistant to make your answers tighter, faster, and more production-ready
Who It’s For
Whether you’re a fresh grad or a senior SRE, if you’re done with memorizing answers and want actually to think like an engineer under pressure, this is for you.
We cover interviews for:
- Site reliability engineering
- DevOps and platform roles
- Backend and infra-heavy positions
- Systems design, scaling, logging, networking, security
If you want to show you can actually do the job, this helps.