diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index ae121b3..c2a9528 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -24,6 +24,6 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md) for the full format.
- [ ] **Heading** is `#
` and matches the frontmatter exactly.
- [ ] **Answer structure** follows Short answer → Detail → Example → Interview tips.
- [ ] **New topic only**: registered in `scripts/topic_meta.json` with an `order`, `description`, and `study_notes`.
-- [ ] Ran `python3 scripts/generate_indexes.py` (indexes are generated - do not hand-edit topic READMEs or the root TOC).
+- [ ] Ran `python3 scripts/generate_indexes.py` and `python3 scripts/build_knowledge_graph.py` (indexes and graph HTML are generated - do not hand-edit topic READMEs, graph HTML, or the root TOC).
- [ ] Ran `python3 scripts/validate_content.py` and it passed.
- [ ] Content is accurate, and any code examples actually work.
diff --git a/.github/workflows/knowledge-graph.yml b/.github/workflows/knowledge-graph.yml
new file mode 100644
index 0000000..19ab774
--- /dev/null
+++ b/.github/workflows/knowledge-graph.yml
@@ -0,0 +1,49 @@
+name: Deploy Knowledge Graph to GitHub Pages
+
+on:
+ push:
+ branches: [main]
+ workflow_dispatch:
+
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+concurrency:
+ group: pages
+ cancel-in-progress: true
+
+jobs:
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+
+ env:
+ PYTHON_VERSION: "3.13"
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
+
+ - name: Set up Python
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
+ with:
+ python-version: ${{ env.PYTHON_VERSION }}
+
+ - name: Build Knowledge Graph HTML
+ run: python3 scripts/build_knowledge_graph.py --output docs/index.html
+
+ - name: Setup Pages
+ uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0
+
+ - name: Upload Artifacts
+ uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
+ with:
+ path: docs
+
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index faab57d..7281546 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -84,11 +84,13 @@ The `# ` heading must match the frontmatter exactly.
Topic READMEs and the root README's table of contents are **generated**. Never edit them by hand - your change will be overwritten and CI will fail.
```bash
-python3 scripts/generate_indexes.py # rewrite all indexes from the question files
-python3 scripts/validate_content.py # frontmatter, naming, links, index freshness
+python3 scripts/generate_indexes.py # rewrite all indexes from the question files
+python3 scripts/inject_wikilinks.py # inject cross-topic [[wikilinks]]
+python3 scripts/build_knowledge_graph.py # regenerate 3D knowledge graph (docs/index.html)
+python3 scripts/validate_content.py # frontmatter, naming, links, index freshness
```
-Both are stdlib-only Python 3.11+ - nothing to install.
+All are stdlib-only Python 3.11+ - nothing to install.
Then run the two Markdown checks CI runs. Neither needs a `package.json`; `npx` fetches them on demand:
diff --git a/README.md b/README.md
index adc61d3..d66db02 100644
--- a/README.md
+++ b/README.md
@@ -9,12 +9,13 @@ Role tracks: **DevOps** (junior → senior) · **DevSecOps** · **SecOps** · **
Every answer gives you a short answer you can say out loud, the detail and trade-offs behind it, a runnable example, and the follow-ups to expect.
[](https://github.com/mchittineni/ultimate-devops-guide/actions/workflows/validate-and-format.yml)
+[](https://github.com/mchittineni/ultimate-devops-guide/actions/workflows/knowledge-graph.yml)




-[Pick your role](#-pick-your-role) · [Browse topics](#-browse-all-topics) · [All questions](#-all-questions) · [How answers are structured](#-how-answers-are-structured) · [Contributing](./CONTRIBUTING.md)
+[🌐 3D Knowledge Graph](https://mchittineni.github.io/ultimate-devops-guide/) · [Pick your role](#-pick-your-role) · [Browse topics](#-browse-all-topics) · [All questions](#-all-questions) · [How answers are structured](#-how-answers-are-structured) · [Contributing](./CONTRIBUTING.md)
⭐ Star the project if it helps you land the role.
@@ -22,6 +23,18 @@ Every answer gives you a short answer you can say out loud, the detail and trade
---
+## 🌐 3D DevOps Knowledge Graph
+
+Explore the entire repository visually through our **Interactive 3D Telemetry Graph** deployed on GitHub Pages:
+
+👉 **[Launch Interactive 3D Knowledge Graph](https://mchittineni.github.io/ultimate-devops-guide/)**
+
+- **Visual Infrastructure Mapping**: Explore relationship edges connecting all 500+ questions across 40 topics.
+- **Cross-Topic Concept Wikilinks**: Discover cross-cutting concepts between Docker, Kubernetes, CI/CD, IaC, and SRE.
+- **Filterable Telemetry**: Filter nodes live by difficulty, domain group, or specific keywords.
+
+---
+
## 🚀 Pick your role
Thirteen tracks, each a reading order rather than a pile of links. Start at the left and work right.
diff --git a/advanced-devops-cloud/what-is-a-playbook-in-incident-response.md b/advanced-devops-cloud/what-is-a-playbook-in-incident-response.md
index e82357f..6abeadf 100644
--- a/advanced-devops-cloud/what-is-a-playbook-in-incident-response.md
+++ b/advanced-devops-cloud/what-is-a-playbook-in-incident-response.md
@@ -44,6 +44,16 @@ tags:
- Decision authority ("who can declare, who can approve failover") is what playbooks uniquely provide.
- Mention regulatory notification deadlines for security incidents; it shows breadth beyond the technical.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is Docker?]] (`#6`): [What is Docker?](../docker/what-is-docker.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-a-runbook.md b/advanced-devops-cloud/what-is-a-runbook.md
index 81687fd..7f0ef2b 100644
--- a/advanced-devops-cloud/what-is-a-runbook.md
+++ b/advanced-devops-cloud/what-is-a-runbook.md
@@ -70,6 +70,16 @@ Not resolved in 20 minutes → page the platform on-call (#incident channel).
- Linking runbooks directly from alert annotations is the practical detail that shows experience.
- Note that runbooks decay - validating them during game days is how you keep them true.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-a-self-healing-system.md b/advanced-devops-cloud/what-is-a-self-healing-system.md
index 3c56ac6..8e366c8 100644
--- a/advanced-devops-cloud/what-is-a-self-healing-system.md
+++ b/advanced-devops-cloud/what-is-a-self-healing-system.md
@@ -39,6 +39,16 @@ tags:
- Kubernetes reconciliation is the canonical example; explain the control loop rather than naming the feature.
- Graceful shutdown and idempotency as prerequisites shows you understand what makes it safe.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-a-service-catalog.md b/advanced-devops-cloud/what-is-a-service-catalog.md
index baa90ad..4035897 100644
--- a/advanced-devops-cloud/what-is-a-service-catalog.md
+++ b/advanced-devops-cloud/what-is-a-service-catalog.md
@@ -38,6 +38,16 @@ tags:
- Deployment gated on registration is a strong enforcement mechanism worth naming.
- Scorecards turning a catalogue into a driver of standards is the mature use case.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-a-service-level-agreement-sla.md b/advanced-devops-cloud/what-is-a-service-level-agreement-sla.md
index 8860e08..6751cce 100644
--- a/advanced-devops-cloud/what-is-a-service-level-agreement-sla.md
+++ b/advanced-devops-cloud/what-is-a-service-level-agreement-sla.md
@@ -42,6 +42,16 @@ tags:
- Note that service credits rarely compensate the actual business loss - SLAs are not insurance.
- The measurement definition and exclusions matter more than the percentage; saying so shows commercial awareness.
+
+
+## Related Concepts
+
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What are Jenkins Pipelines?]] (`#18`): [What are Jenkins Pipelines?](../cicd/what-are-jenkins-pipelines.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-a-service-level-indicator-sli.md b/advanced-devops-cloud/what-is-a-service-level-indicator-sli.md
index ed16412..d2105cf 100644
--- a/advanced-devops-cloud/what-is-a-service-level-indicator-sli.md
+++ b/advanced-devops-cloud/what-is-a-service-level-indicator-sli.md
@@ -40,6 +40,16 @@ tags:
- Latency as "proportion under a threshold" rather than a percentile is a subtle differentiator.
- Discuss the measurement point; measuring inside the application misses whole categories of user-visible failure.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-a-service-level-objective-slo.md b/advanced-devops-cloud/what-is-a-service-level-objective-slo.md
index a81cb0a..7828d88 100644
--- a/advanced-devops-cloud/what-is-a-service-level-objective-slo.md
+++ b/advanced-devops-cloud/what-is-a-service-level-objective-slo.md
@@ -35,6 +35,16 @@ tags:
- "100% is the wrong target" plus the cost-curve reasoning is the SRE point to land.
- Mention reviewing SLOs periodically; a target set once and never revisited stops reflecting reality.
+
+
+## Related Concepts
+
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What are Jenkins Pipelines?]] (`#18`): [What are Jenkins Pipelines?](../cicd/what-are-jenkins-pipelines.md)
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-a-service-mesh-control-plane.md b/advanced-devops-cloud/what-is-a-service-mesh-control-plane.md
index 6b07a2b..67107f9 100644
--- a/advanced-devops-cloud/what-is-a-service-mesh-control-plane.md
+++ b/advanced-devops-cloud/what-is-a-service-mesh-control-plane.md
@@ -35,6 +35,16 @@ tags:
- Fail-static behaviour during control-plane downtime is the detail that demonstrates operational depth.
- Certificate issuance and rotation is the control plane's most valuable function - do not reduce it to routing.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-a-sidecar-pattern.md b/advanced-devops-cloud/what-is-a-sidecar-pattern.md
index fcd2fa7..9e1eb77 100644
--- a/advanced-devops-cloud/what-is-a-sidecar-pattern.md
+++ b/advanced-devops-cloud/what-is-a-sidecar-pattern.md
@@ -56,6 +56,16 @@ spec:
- Multiply the overhead by pod count to show scale awareness.
- Mention ambient mesh and eBPF as the emerging alternative - it demonstrates you are current.
+
+
+## Related Concepts
+
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[What is GitLab CI?]] (`#19`): [What is GitLab CI?](../cicd/what-is-gitlab-ci.md)
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-blue-green-deployment.md b/advanced-devops-cloud/what-is-blue-green-deployment.md
index 48f3d05..dc19295 100644
--- a/advanced-devops-cloud/what-is-blue-green-deployment.md
+++ b/advanced-devops-cloud/what-is-blue-green-deployment.md
@@ -41,6 +41,16 @@ tags:
- Contrast with canary on rollback speed versus blast radius; that trade-off is the interesting part.
- Mention connection draining and background jobs; they are what actually break in practice.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-canary-analysis.md b/advanced-devops-cloud/what-is-canary-analysis.md
index be08576..9a4b536 100644
--- a/advanced-devops-cloud/what-is-canary-analysis.md
+++ b/advanced-devops-cloud/what-is-canary-analysis.md
@@ -61,6 +61,16 @@ spec:
- Statistical significance and warm-up periods show you have tuned this, not just enabled it.
- Include a business metric in the analysis - it is what catches the failures monitoring misses.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-chaos-engineering.md b/advanced-devops-cloud/what-is-chaos-engineering.md
index 7a4131a..cb692c9 100644
--- a/advanced-devops-cloud/what-is-chaos-engineering.md
+++ b/advanced-devops-cloud/what-is-chaos-engineering.md
@@ -38,6 +38,16 @@ tags:
- The abort condition and stop button are the safety details interviewers listen for.
- "Do not start chaos engineering before you have observability" is a mature caveat.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-feature-flagging.md b/advanced-devops-cloud/what-is-feature-flagging.md
index 2069bf9..c3a7b1e 100644
--- a/advanced-devops-cloud/what-is-feature-flagging.md
+++ b/advanced-devops-cloud/what-is-feature-flagging.md
@@ -46,6 +46,16 @@ return enabled ? newCheckout(cart) : legacyCheckout(cart); // default false = sa
- Flag debt and expiry dates is the operational reality most candidates omit.
- A safe default when the flag service is unreachable is a small detail that shows production thinking.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-finops.md b/advanced-devops-cloud/what-is-finops.md
index d44fb87..4e45187 100644
--- a/advanced-devops-cloud/what-is-finops.md
+++ b/advanced-devops-cloud/what-is-finops.md
@@ -35,6 +35,16 @@ tags:
- Unit economics over absolute spend is the insight that separates FinOps from cost-cutting.
- Infracost in pull requests is a concrete, modern practice worth naming.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-github-actions.md b/advanced-devops-cloud/what-is-github-actions.md
index 36b9ad7..fd4b136 100644
--- a/advanced-devops-cloud/what-is-github-actions.md
+++ b/advanced-devops-cloud/what-is-github-actions.md
@@ -67,6 +67,16 @@ jobs:
- Pinning actions to a SHA is a supply-chain detail that distinguishes serious users.
- Environments with required reviewers is how approval gates are done properly - not a manual step in a script.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-infrastructure-drift.md b/advanced-devops-cloud/what-is-infrastructure-drift.md
index f95bb80..6f8c5e1 100644
--- a/advanced-devops-cloud/what-is-infrastructure-drift.md
+++ b/advanced-devops-cloud/what-is-infrastructure-drift.md
@@ -53,6 +53,16 @@ terraform plan -detailed-exitcode -lock=false
- Emphasise process alongside tooling: break-glass access with mandatory reconciliation afterwards.
- Note that automatic reconciliation is not always safe - reverting a fix during an incident is a real risk.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-observability.md b/advanced-devops-cloud/what-is-observability.md
index dedff23..83317aa 100644
--- a/advanced-devops-cloud/what-is-observability.md
+++ b/advanced-devops-cloud/what-is-observability.md
@@ -41,6 +41,16 @@ The pillars framing is useful but incomplete. What actually delivers observabili
- Cardinality as the enabler of observability - and the enemy of Prometheus - is a nuanced point worth making.
- OpenTelemetry plus correlation IDs is the concrete implementation answer.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-platform-engineering.md b/advanced-devops-cloud/what-is-platform-engineering.md
index 3e55295..23f2567 100644
--- a/advanced-devops-cloud/what-is-platform-engineering.md
+++ b/advanced-devops-cloud/what-is-platform-engineering.md
@@ -37,6 +37,16 @@ tags:
- Cognitive load (from Team Topologies) is the theoretical grounding worth naming.
- Adoption as a voluntary metric, not a mandate, is the test of whether a platform is any good.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-policy-as-code.md b/advanced-devops-cloud/what-is-policy-as-code.md
index 1da8f97..b96305b 100644
--- a/advanced-devops-cloud/what-is-policy-as-code.md
+++ b/advanced-devops-cloud/what-is-policy-as-code.md
@@ -55,6 +55,16 @@ spec:
- Layering CI checks with admission control - fast feedback plus real enforcement - is the architecture point.
- Emphasise actionable violation messages; it is what determines whether engineers accept the system.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/advanced-devops-cloud/what-is-tracing-in-observability.md b/advanced-devops-cloud/what-is-tracing-in-observability.md
index bf61721..a714065 100644
--- a/advanced-devops-cloud/what-is-tracing-in-observability.md
+++ b/advanced-devops-cloud/what-is-tracing-in-observability.md
@@ -48,6 +48,16 @@ trace_id=b7e1 ├─ gateway 240ms
- Context propagation across queues is the most common real-world instrumentation gap.
- Adding business attributes to spans is what elevates tracing from debugging to product insight.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Advanced DevOps & Cloud](./README.md) · [All topics](../README.md)
diff --git a/api-gateway-and-service-mesh/how-do-you-debug-a-service-mesh-that-is-breaking-service-to-service-traffic.md b/api-gateway-and-service-mesh/how-do-you-debug-a-service-mesh-that-is-breaking-service-to-service-traffic.md
index 9098f6a..f3fe1c0 100644
--- a/api-gateway-and-service-mesh/how-do-you-debug-a-service-mesh-that-is-breaking-service-to-service-traffic.md
+++ b/api-gateway-and-service-mesh/how-do-you-debug-a-service-mesh-that-is-breaking-service-to-service-traffic.md
@@ -140,6 +140,16 @@ spec:
- Say that you would rule out plain Kubernetes first: no endpoints or a NetworkPolicy drop will be reported by the mesh as an upstream failure.
- Close with `outlierDetection` and circuit-breaker limits as things you tune rather than disable, and note that `503 UO` means your own connection-pool limits, not the backend. See [what is a service mesh](../cloud-native-architecture/what-is-service-mesh.md) and [what is Istio](../container-orchestration-advanced/what-is-istio.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+
+
+
---
[⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md)
diff --git a/api-gateway-and-service-mesh/how-do-you-run-a-service-mesh-in-production-without-the-sidecar-tax.md b/api-gateway-and-service-mesh/how-do-you-run-a-service-mesh-in-production-without-the-sidecar-tax.md
index df08308..7c2ecb7 100644
--- a/api-gateway-and-service-mesh/how-do-you-run-a-service-mesh-in-production-without-the-sidecar-tax.md
+++ b/api-gateway-and-service-mesh/how-do-you-run-a-service-mesh-in-production-without-the-sidecar-tax.md
@@ -109,6 +109,16 @@ istioctl upgrade --revision canary-1-24 # revisioned control plane, one namespa
- Have a control-plane failure story: proxies keep last-known-good config, so the failure surfaces on the next deploy. Alerting on config convergence is the senior detail.
- Be willing to say "we did not need a mesh" for a small estate. Knowing when the answer is a gateway plus a library is a strength, not a gap.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md)
diff --git a/api-gateway-and-service-mesh/what-are-the-benefits-of-using-api-gateway.md b/api-gateway-and-service-mesh/what-are-the-benefits-of-using-api-gateway.md
index ac81390..c5785d8 100644
--- a/api-gateway-and-service-mesh/what-are-the-benefits-of-using-api-gateway.md
+++ b/api-gateway-and-service-mesh/what-are-the-benefits-of-using-api-gateway.md
@@ -41,6 +41,16 @@ tags:
- Response aggregation for mobile clients is a concrete, memorable example.
- Balance the answer with the costs; a purely positive answer sounds rehearsed.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md)
diff --git a/api-gateway-and-service-mesh/what-do-the-common-http-status-codes-mean-and-how-do-you-debug-a-502-503-or-504.md b/api-gateway-and-service-mesh/what-do-the-common-http-status-codes-mean-and-how-do-you-debug-a-502-503-or-504.md
index e56b0ac..103a612 100644
--- a/api-gateway-and-service-mesh/what-do-the-common-http-status-codes-mean-and-how-do-you-debug-a-502-503-or-504.md
+++ b/api-gateway-and-service-mesh/what-do-the-common-http-status-codes-mean-and-how-do-you-debug-a-502-503-or-504.md
@@ -193,6 +193,16 @@ The timeout ladder - get this wrong and you generate your own 504s
- Draw the **timeout ladder** and state the rule that timeouts decrease with depth. Then add that retrying a 504 amplifies load, so retries must be bounded, jittered, idempotent-only, and paired with a circuit breaker.
- For "deployment succeeded but I get a 404", say it is routing rather than the workload - ingress host/path rules, path rewriting, `targetPort`, and the app's base path - and note that you can tell a proxy 404 from an application 404 by the response headers. See [what is an API gateway](./what-is-an-api-gateway.md), [debugging a Kubernetes Ingress that is not routing traffic](../kubernetes/how-do-you-debug-a-kubernetes-ingress-that-is-not-routing-traffic.md), [troubleshooting a load balancer returning 5xx errors](../scalability-and-high-availability/how-do-you-troubleshoot-a-load-balancer-returning-5xx-errors-or-sending-traffic-unevenly.md), [troubleshooting high latency in a microservices architecture](../cloud-native-architecture/how-do-you-troubleshoot-high-latency-in-a-microservices-architecture.md), and [a Service that has no endpoints](../kubernetes/how-do-you-troubleshoot-a-kubernetes-service-that-has-no-endpoints.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md)
diff --git a/api-gateway-and-service-mesh/what-is-an-api-gateway.md b/api-gateway-and-service-mesh/what-is-an-api-gateway.md
index 9ab84c1..a1e5498 100644
--- a/api-gateway-and-service-mesh/what-is-an-api-gateway.md
+++ b/api-gateway-and-service-mesh/what-is-an-api-gateway.md
@@ -40,6 +40,16 @@ Without a gateway, every client must know every service's address, and every ser
- Backend-for-frontend is a good pattern to mention - a tailored gateway per client type.
- Warn against business logic in the gateway; it shows architectural judgement.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md)
diff --git a/api-gateway-and-service-mesh/what-is-api-documentation.md b/api-gateway-and-service-mesh/what-is-api-documentation.md
index c51d7ba..811e6d4 100644
--- a/api-gateway-and-service-mesh/what-is-api-documentation.md
+++ b/api-gateway-and-service-mesh/what-is-api-documentation.md
@@ -63,6 +63,16 @@ paths:
- Contract testing in CI is how you prove docs and implementation agree - mention it.
- Note that error documentation is the most commonly missing and most needed section.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md)
diff --git a/api-gateway-and-service-mesh/what-is-api-security.md b/api-gateway-and-service-mesh/what-is-api-security.md
index b2db6b1..4d0f490 100644
--- a/api-gateway-and-service-mesh/what-is-api-security.md
+++ b/api-gateway-and-service-mesh/what-is-api-security.md
@@ -48,6 +48,16 @@ plugins:
- Distinguish authentication from authorisation cleanly and early.
- Mention API inventory and schema validation; both indicate real-world experience.
+
+
+## Related Concepts
+
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[What is GitLab CI?]] (`#19`): [What is GitLab CI?](../cicd/what-is-gitlab-ci.md)
+
+
+
---
[⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md)
diff --git a/api-gateway-and-service-mesh/what-is-rate-limiting.md b/api-gateway-and-service-mesh/what-is-rate-limiting.md
index c75c296..7345275 100644
--- a/api-gateway-and-service-mesh/what-is-rate-limiting.md
+++ b/api-gateway-and-service-mesh/what-is-rate-limiting.md
@@ -55,6 +55,16 @@ return 1
- Returning `Retry-After` and rate-limit headers shows API design maturity.
- Mention that clients should implement exponential backoff with jitter in response.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+
+
+
---
[⬅ Back to API Gateway and Service Mesh](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md b/aws-engineering/how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md
index 7e8c743..6995b78 100644
--- a/aws-engineering/how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md
+++ b/aws-engineering/how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md
@@ -76,6 +76,16 @@ resource "aws_autoscaling_policy" "api_rps" {
- Deregistration delay plus `SIGTERM` handling is the answer to "why do we see 502s during deploys?".
- Expect: "which metric would you scale on?" - reject CPU as a reflex and name the actual bottleneck.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-access-an-instance-in-a-private-subnet-without-ssh-keys-or-a-bastion-host.md b/aws-engineering/how-do-you-access-an-instance-in-a-private-subnet-without-ssh-keys-or-a-bastion-host.md
index f58a13f..2d12019 100644
--- a/aws-engineering/how-do-you-access-an-instance-in-a-private-subnet-without-ssh-keys-or-a-bastion-host.md
+++ b/aws-engineering/how-do-you-access-an-instance-in-a-private-subnet-without-ssh-keys-or-a-bastion-host.md
@@ -183,6 +183,16 @@ nslookup ssmmessages.eu-west-1.amazonaws.com # 3. private IP => endpoint reac
- For patching private instances with no internet, answer SSM Patch Manager over VPC endpoints with an internal repository or S3-hosted mirror - not "open the NAT".
- Finish with the design position: no `key_name`, no inbound rules, interactive access as an audited exception, and frequent shell access treated as a signal of missing automation or observability. See [how does a private subnet reach the internet](./how-does-a-private-subnet-reach-the-internet.md), [what are VPC endpoints](./what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md), [troubleshooting SSH failures on Linux](../linux-administration/how-do-you-troubleshoot-ssh-failures-high-cpu-and-disk-space-on-linux-servers.md), and [designing least-privilege identity in the cloud](../cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md).
+
+
+## Related Concepts
+
+- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md)
+- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md)
+- [[How do you troubleshoot a Kubernetes node that is NotReady?]] (`#449`): [How do you troubleshoot a Kubernetes node that is NotReady?](../kubernetes/how-do-you-troubleshoot-a-kubernetes-node-that-is-notready.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-aws.md b/aws-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-aws.md
index 305973a..51e9761 100644
--- a/aws-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-aws.md
+++ b/aws-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-aws.md
@@ -99,6 +99,16 @@ module "eks" {
- Emphasize keyless identity: explain why using **EKS Pod Identity** or **IRSA** and **GitHub Actions OIDC** is superior to static IAM access keys.
- Address cost optimization: mention using Karpenter to schedule Spot Instances for stateless workloads while keeping Aurora and EKS control plane highly available.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md)
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-authenticate-to-aws-without-long-lived-access-keys.md b/aws-engineering/how-do-you-authenticate-to-aws-without-long-lived-access-keys.md
index d034227..2403656 100644
--- a/aws-engineering/how-do-you-authenticate-to-aws-without-long-lived-access-keys.md
+++ b/aws-engineering/how-do-you-authenticate-to-aws-without-long-lived-access-keys.md
@@ -214,6 +214,16 @@ aws configure list | grep token
- Volunteer **IMDSv2 required** as hardening, and explain the SSRF attack it blocks. It is specific, it is real, and few candidates raise it.
- Cover the migration honestly: credential report, SCP denying `iam:CreateAccessKey`, deactivate-before-delete, secret scanning, and GuardDuty for credentials used from unexpected locations. Then say why keys appear in the first place - the keyless path was inconvenient - and fix that with `aws sso login` profiles. See [how does AWS IAM evaluate a request](./how-does-aws-iam-evaluate-a-request.md), [securing Pod access to AWS resources with EKS Pod Identity or IRSA](./how-do-you-secure-pod-access-to-aws-resources-using-eks-pod-identity-or-irsa.md), [designing least-privilege identity in the cloud](../cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md), and [running Terraform through a CI/CD pipeline](../infrastructure-as-code/how-do-you-run-terraform-through-a-ci-cd-pipeline.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md)
+- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md)
+- [[What is the difference between a ConfigMap and a Secret in Kubernetes?]] (`#442`): [What is the difference between a ConfigMap and a Secret in Kubernetes?](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-automate-ec2-log-shipping-to-s3-with-iam-boundaries-and-cloudwatch.md b/aws-engineering/how-do-you-automate-ec2-log-shipping-to-s3-with-iam-boundaries-and-cloudwatch.md
index a87804c..db7bc44 100644
--- a/aws-engineering/how-do-you-automate-ec2-log-shipping-to-s3-with-iam-boundaries-and-cloudwatch.md
+++ b/aws-engineering/how-do-you-automate-ec2-log-shipping-to-s3-with-iam-boundaries-and-cloudwatch.md
@@ -89,6 +89,16 @@ Fluent Bit configuration on EC2 instance (`/etc/fluent-bit/fluent-bit.conf`):
- Discuss **S3 Lifecycle rules**: move logs from S3 Standard to S3 Infrequent Access (IA) after 30 days, Glacier Flexible Retrieval after 90 days, and expire/delete after retention requirements (e.g., 365 days).
- Address high-volume log cost management: gzip compression, buffering before writing to S3, and avoiding writing micro-batches to save on S3 `PutObject` API call costs.
+
+
+## Related Concepts
+
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-build-a-ci-cd-pipeline-using-aws-codepipeline-codebuild-and-codedeploy.md b/aws-engineering/how-do-you-build-a-ci-cd-pipeline-using-aws-codepipeline-codebuild-and-codedeploy.md
index 562b353..fb27a26 100644
--- a/aws-engineering/how-do-you-build-a-ci-cd-pipeline-using-aws-codepipeline-codebuild-and-codedeploy.md
+++ b/aws-engineering/how-do-you-build-a-ci-cd-pipeline-using-aws-codepipeline-codebuild-and-codedeploy.md
@@ -90,6 +90,16 @@ Hooks:
- Highlight **ECS Blue/Green deployment with AWS CodeDeploy & AWS CodePipeline**: explain how CodeDeploy creates a new ECS task set, routes test traffic to a test listener port, executes a validation Lambda hook, and shifts ALB production traffic dynamically.
- Mention security best practices: grant CodeBuild and CodeDeploy minimal IAM service roles, storing secrets in AWS Secrets Manager or Parameter Store (`/aws/reference/secretsmanager/secret_name`).
+
+
+## Related Concepts
+
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-choose-between-ebs-efs-and-s3.md b/aws-engineering/how-do-you-choose-between-ebs-efs-and-s3.md
index 4bd64e4..74b4c4a 100644
--- a/aws-engineering/how-do-you-choose-between-ebs-efs-and-s3.md
+++ b/aws-engineering/how-do-you-choose-between-ebs-efs-and-s3.md
@@ -145,6 +145,16 @@ spec:
- For shared storage in EKS, answer EFS CSI for `ReadWriteMany` - and add the nuance that `ReadWriteOnce` means one **node**, so co-located Pods can share an EBS volume.
- Say explicitly that S3 is not a filesystem - no appends, rename is copy-and-delete, no locking - and that mounting it does not change that. Then round out the answer with instance store (ephemeral, fastest) and FSx (SMB/Lustre) for the lift-and-shift cases. See [what are the S3 storage classes](./what-are-the-s3-storage-classes-and-when-do-you-use-each.md), [securing and managing the lifecycle of an S3 bucket](./how-do-you-secure-and-manage-the-lifecycle-of-an-s3-bucket.md), [how does persistent storage work in Kubernetes](../kubernetes/how-does-persistent-storage-work-in-kubernetes.md), and [containerising a legacy application](../cloud-migration/how-do-you-containerise-a-legacy-application-and-move-it-to-kubernetes.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-configure-auto-scaling-group-policies-health-checks-and-instance-refresh.md b/aws-engineering/how-do-you-configure-auto-scaling-group-policies-health-checks-and-instance-refresh.md
index 960faf0..9ba2909 100644
--- a/aws-engineering/how-do-you-configure-auto-scaling-group-policies-health-checks-and-instance-refresh.md
+++ b/aws-engineering/how-do-you-configure-auto-scaling-group-policies-health-checks-and-instance-refresh.md
@@ -204,6 +204,16 @@ aws cloudwatch list-metrics --namespace CWAgent --metric-name mem_used_percent
- Bring up connection draining (target group deregistration delay) and lifecycle hooks for graceful shutdown, plus termination policies and scale-in protection.
- Mention mixed instances with Spot and `capacity-optimized` allocation as a real cost lever, with the interruption-handling caveat. And for "instances should replace themselves when they fail", answer ASG with min=max=1 plus health checks and an immutable AMI. See [how do Auto Scaling groups and load balancers work together on AWS](./how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md), [why did your autoscaling not kick in during a traffic spike](../scalability-and-high-availability/why-did-your-autoscaling-not-kick-in-during-a-traffic-spike.md), [what is immutable infrastructure](../infrastructure-as-code/what-is-immutable-infrastructure-and-how-do-you-adopt-it.md), and [troubleshooting a load balancer returning 5xx errors](../scalability-and-high-availability/how-do-you-troubleshoot-a-load-balancer-returning-5xx-errors-or-sending-traffic-unevenly.md).
+
+
+## Related Concepts
+
+- [[How do requests, limits, and QoS classes work in Kubernetes?]] (`#444`): [How do requests, limits, and QoS classes work in Kubernetes?](../kubernetes/how-do-requests-limits-and-qos-classes-work-in-kubernetes.md)
+- [[What happens when a Kubernetes control-plane node or etcd fails?]] (`#448`): [What happens when a Kubernetes control-plane node or etcd fails?](../kubernetes/what-happens-when-a-kubernetes-control-plane-node-or-etcd-fails.md)
+- [[How do you troubleshoot a DNS problem in production?]] (`#435`): [How do you troubleshoot a DNS problem in production?](../cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-connect-many-vpcs-peering-transit-gateway-or-privatelink.md b/aws-engineering/how-do-you-connect-many-vpcs-peering-transit-gateway-or-privatelink.md
index 2937386..094f0f7 100644
--- a/aws-engineering/how-do-you-connect-many-vpcs-peering-transit-gateway-or-privatelink.md
+++ b/aws-engineering/how-do-you-connect-many-vpcs-peering-transit-gateway-or-privatelink.md
@@ -162,6 +162,16 @@ aws ec2 create-network-insights-path --source i-0abc --destination i-0def \
- Mention cost as a design input: peering has no hourly charge, TGW charges per attachment-hour plus per GB, and a hybrid (TGW backbone plus direct peering for the two chattiest pairs) is a legitimate optimisation.
- Add appliance mode for stateful inspection and per-AZ attachments for cost and latency - both are details only practitioners mention. See [what are VPC endpoints](./what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md), [structuring a multi-account AWS organisation](./how-do-you-structure-a-multi-account-aws-organisation.md), [connecting an on-premises network to the cloud](../cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md), and [designing a production-ready VPC](./how-do-you-design-a-production-ready-vpc-on-aws.md).
+
+
+## Related Concepts
+
+- [[How do you connect an on-premises network to the cloud?]] (`#216`): [How do you connect an on-premises network to the cloud?](../cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md)
+- [[How do you manage DNS and global traffic routing?]] (`#220`): [How do you manage DNS and global traffic routing?](../cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md)
+- [[How do you troubleshoot a DNS problem in production?]] (`#435`): [How do you troubleshoot a DNS problem in production?](../cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md b/aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md
index c8c52e1..3915f96 100644
--- a/aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md
+++ b/aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md
@@ -59,6 +59,16 @@ module "vpc" {
- EKS IP exhaustion with the VPC CNI is the practical war story worth naming.
- Expect: "security groups or NACLs?" - security groups referencing security groups, with NACLs as a coarse guardrail only.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md)
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-run-a-highly-available-database-on-aws.md b/aws-engineering/how-do-you-run-a-highly-available-database-on-aws.md
index ba2fb4c..bbd2ef2 100644
--- a/aws-engineering/how-do-you-run-a-highly-available-database-on-aws.md
+++ b/aws-engineering/how-do-you-run-a-highly-available-database-on-aws.md
@@ -71,6 +71,16 @@ Application requirements, not optional:
- Naming the DNS-cache and connection-lifetime pitfalls is the detail that shows you have lived through a failover.
- Expect: "what is your RTO?" - tie it to _tested_ restore time, and admit if you have not tested it.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-run-a-service-on-amazon-ecs.md b/aws-engineering/how-do-you-run-a-service-on-amazon-ecs.md
index 6155e2f..3c40326 100644
--- a/aws-engineering/how-do-you-run-a-service-on-amazon-ecs.md
+++ b/aws-engineering/how-do-you-run-a-service-on-amazon-ecs.md
@@ -200,6 +200,16 @@ aws ecs execute-command --cluster prod --task "$TASK_ARN" \
- Know `aws ecs execute-command` as the way into a container, and the `stoppedReason`/`exitCode` diagnostic path (`CannotPullContainerError`, 137 for OOM, ELB health check failures).
- Give a fair ECS-versus-EKS answer: ECS for lowest operational burden on AWS, EKS for the Kubernetes ecosystem and portability. See [what is the difference between ECS, EKS, and Fargate](./what-is-the-difference-between-ecs-eks-and-fargate.md), [building a CI/CD pipeline with CodePipeline, CodeBuild, and CodeDeploy](./how-do-you-build-a-ci-cd-pipeline-using-aws-codepipeline-codebuild-and-codedeploy.md), [what are deployment strategies](../devops-tools-and-automation/what-are-deployment-strategies.md), and [what are VPC endpoints](./what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md)
+- [[How does persistent storage work in Kubernetes?]] (`#443`): [How does persistent storage work in Kubernetes?](../kubernetes/how-does-persistent-storage-work-in-kubernetes.md)
+- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-secure-and-manage-the-lifecycle-of-an-s3-bucket.md b/aws-engineering/how-do-you-secure-and-manage-the-lifecycle-of-an-s3-bucket.md
index d0463cc..a489600 100644
--- a/aws-engineering/how-do-you-secure-and-manage-the-lifecycle-of-an-s3-bucket.md
+++ b/aws-engineering/how-do-you-secure-and-manage-the-lifecycle-of-an-s3-bucket.md
@@ -209,6 +209,16 @@ aws accessanalyzer list-findings --analyzer-arn "$ANALYZER" # unintended publi
- For static websites, give the private-bucket-plus-CloudFront-with-OAC pattern rather than the legacy public website endpoint.
- Have the "policy allows but access is denied" checklist ready: explicit deny, SCP, permissions boundary, KMS key policy, missing bucket-level ARN, or a source condition. See [what are the S3 storage classes](./what-are-the-s3-storage-classes-and-when-do-you-use-each.md), [how does AWS IAM evaluate a request](./how-does-aws-iam-evaluate-a-request.md), [what are VPC endpoints](./what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md), and [choosing between EBS, EFS, and S3](./how-do-you-choose-between-ebs-efs-and-s3.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md)
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-secure-pod-access-to-aws-resources-using-eks-pod-identity-or-irsa.md b/aws-engineering/how-do-you-secure-pod-access-to-aws-resources-using-eks-pod-identity-or-irsa.md
index a9b572f..93ca2f9 100644
--- a/aws-engineering/how-do-you-secure-pod-access-to-aws-resources-using-eks-pod-identity-or-irsa.md
+++ b/aws-engineering/how-do-you-secure-pod-access-to-aws-resources-using-eks-pod-identity-or-irsa.md
@@ -119,6 +119,16 @@ aws eks create-pod-identity-association \
- Explain the security flaw of node-level IAM roles (Instance Profiles): every pod on the node inherits the node's IAM permissions unless IRSA or Pod Identity is enforced.
- Mention `sts:AssumeRoleWithWebIdentity` for IRSA vs `sts:AssumeRole` with `sts:TagSession` for EKS Pod Identity.
+
+
+## Related Concepts
+
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md)
+- [[What is a cloud landing zone?]] (`#215`): [What is a cloud landing zone?](../cloud-engineering/what-is-a-cloud-landing-zone.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-structure-a-multi-account-aws-organisation.md b/aws-engineering/how-do-you-structure-a-multi-account-aws-organisation.md
index 642530d..d206c8a 100644
--- a/aws-engineering/how-do-you-structure-a-multi-account-aws-organisation.md
+++ b/aws-engineering/how-do-you-structure-a-multi-account-aws-organisation.md
@@ -81,6 +81,16 @@ The management (payer) account holds nothing but Organizations, billing, and the
- Naming the log-archive account that workload accounts cannot write to shows you think about an attacker with admin.
- Expect: "how do you stop an engineer spinning up GPUs in an unapproved region?" - a region-deny SCP plus budgets in the account baseline.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md)
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-do-you-upgrade-scale-and-resize-an-rds-instance-without-downtime.md b/aws-engineering/how-do-you-upgrade-scale-and-resize-an-rds-instance-without-downtime.md
index ad11740..8e4e228 100644
--- a/aws-engineering/how-do-you-upgrade-scale-and-resize-an-rds-instance-without-downtime.md
+++ b/aws-engineering/how-do-you-upgrade-scale-and-resize-an-rds-instance-without-downtime.md
@@ -180,6 +180,16 @@ aws cloudwatch get-metric-statistics --namespace AWS/RDS --metric-name FreeStora
- For major upgrades, name **blue/green deployments**, the lack of rollback, and the pre-flight work (extensions, deprecated syntax, plan regressions on a restored snapshot).
- For storage at 95%, give the immediate online action (autoscaling or increase), the investigation (bloat, WAL/binlog retention, unvacuumed tables), and the two constraints - you cannot shrink, and there is a cooldown. See [running a highly available database on AWS](./how-do-you-run-a-highly-available-database-on-aws.md), [troubleshooting a database that is slow or timing out](../database-management-in-devops/how-do-you-troubleshoot-a-database-that-is-slow-or-timing-out-under-load.md), [changing a production schema without downtime](../database-management-in-devops/how-do-you-change-a-production-database-schema-without-downtime.md), and [migrating a production database to the cloud](../cloud-migration/how-do-you-migrate-a-production-database-to-the-cloud-with-near-zero-downtime.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md)
+- [[What is a PodDisruptionBudget and when do you need one?]] (`#446`): [What is a PodDisruptionBudget and when do you need one?](../kubernetes/what-is-a-poddisruptionbudget-and-when-do-you-need-one.md)
+- [[What happens when a Kubernetes control-plane node or etcd fails?]] (`#448`): [What happens when a Kubernetes control-plane node or etcd fails?](../kubernetes/what-happens-when-a-kubernetes-control-plane-node-or-etcd-fails.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-does-a-private-subnet-reach-the-internet.md b/aws-engineering/how-does-a-private-subnet-reach-the-internet.md
index 1da12ff..d5ca4ea 100644
--- a/aws-engineering/how-does-a-private-subnet-reach-the-internet.md
+++ b/aws-engineering/how-does-a-private-subnet-reach-the-internet.md
@@ -152,6 +152,16 @@ aws cloudwatch get-metric-statistics --namespace AWS/NATGateway \
- For inbound to private subnets, draw the path: Route 53 → public ALB → private targets → data tier, with security groups chained by reference. Then add SSM Session Manager and PrivateLink as the non-NAT inbound answers.
- Mention the egress-only internet gateway for IPv6 - there is no NAT in IPv6, and few candidates know the equivalent. See [designing a production-ready VPC on AWS](./how-do-you-design-a-production-ready-vpc-on-aws.md), [security groups versus network ACLs](./what-is-the-difference-between-a-security-group-and-a-network-acl.md), [accessing an instance in a private subnet without SSH keys or a bastion](./how-do-you-access-an-instance-in-a-private-subnet-without-ssh-keys-or-a-bastion-host.md), and [designing a secure, highly available three-tier architecture](../cloud-native-architecture/how-do-you-design-a-secure-highly-available-three-tier-architecture.md).
+
+
+## Related Concepts
+
+- [[How does Pod networking and service discovery work in Kubernetes?]] (`#447`): [How does Pod networking and service discovery work in Kubernetes?](../kubernetes/how-does-pod-networking-and-service-discovery-work-in-kubernetes.md)
+- [[How do you troubleshoot a Kubernetes Service that has no endpoints?]] (`#403`): [How do you troubleshoot a Kubernetes Service that has no endpoints?](../kubernetes/how-do-you-troubleshoot-a-kubernetes-service-that-has-no-endpoints.md)
+- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/how-does-aws-iam-evaluate-a-request.md b/aws-engineering/how-does-aws-iam-evaluate-a-request.md
index f843df4..29fbd42 100644
--- a/aws-engineering/how-does-aws-iam-evaluate-a-request.md
+++ b/aws-engineering/how-does-aws-iam-evaluate-a-request.md
@@ -68,6 +68,16 @@ tags:
- Describe boundaries as an intersection - it explains permission boundaries and session policies in one sentence.
- Expect: "how would you prove this role is least privilege?" - Access Analyzer policy generation from CloudTrail, plus last-accessed data.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md)
+- [[How does networking differ across AWS, Azure, and GCP?]] (`#282`): [How does networking differ across AWS, Azure, and GCP?](../cloud-platforms/how-does-networking-differ-across-aws-azure-and-gcp.md)
+- [[What is a cloud landing zone?]] (`#215`): [What is a cloud landing zone?](../cloud-engineering/what-is-a-cloud-landing-zone.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/what-are-the-core-aws-services-a-devops-engineer-uses-daily.md b/aws-engineering/what-are-the-core-aws-services-a-devops-engineer-uses-daily.md
index 1cd2827..14b8aac 100644
--- a/aws-engineering/what-are-the-core-aws-services-a-devops-engineer-uses-daily.md
+++ b/aws-engineering/what-are-the-core-aws-services-a-devops-engineer-uses-daily.md
@@ -83,6 +83,16 @@ resource "aws_instance" "app" {
- Mention tagging (`Environment`, `Owner`, `CostCenter`) unprompted - it connects to cost and governance questions later.
- If you have only used one provider, say so plainly and map the concepts: VPC ≈ VNet, IAM role ≈ managed identity, S3 ≈ Blob Storage.
+
+
+## Related Concepts
+
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/what-are-the-dns-record-types-and-how-do-you-delegate-a-domain.md b/aws-engineering/what-are-the-dns-record-types-and-how-do-you-delegate-a-domain.md
index 28514d9..acc2a54 100644
--- a/aws-engineering/what-are-the-dns-record-types-and-how-do-you-delegate-a-domain.md
+++ b/aws-engineering/what-are-the-dns-record-types-and-how-do-you-delegate-a-domain.md
@@ -177,6 +177,16 @@ aws route53 list-hosted-zones --query "HostedZones[?Name=='example.com.'].[Id,Co
- If routing policies come up, name them and then make the key point: DNS does not notice failures by itself - **health checks** are what stop a dead address being handed out.
- Add the certificate links - ACM's DNS validation CNAME must stay in place for renewals, CAA restricts which CAs may issue, and a wildcard covers one level only. See [managing DNS and global traffic routing](../cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md), [troubleshooting a DNS problem in production](../cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md), [managing TLS certificates in production](../network-security/how-do-you-manage-tls-certificates-in-production.md), and [what happens when a user opens your application in a browser](../network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a DNS problem in production?]] (`#435`): [How do you troubleshoot a DNS problem in production?](../cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md)
+- [[What is a cloud landing zone?]] (`#215`): [What is a cloud landing zone?](../cloud-engineering/what-is-a-cloud-landing-zone.md)
+- [[How do you manage DNS and global traffic routing?]] (`#220`): [How do you manage DNS and global traffic routing?](../cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/what-are-the-s3-storage-classes-and-when-do-you-use-each.md b/aws-engineering/what-are-the-s3-storage-classes-and-when-do-you-use-each.md
index d81ebb0..80855c4 100644
--- a/aws-engineering/what-are-the-s3-storage-classes-and-when-do-you-use-each.md
+++ b/aws-engineering/what-are-the-s3-storage-classes-and-when-do-you-use-each.md
@@ -66,6 +66,16 @@ tags:
- Minimum-duration charges and the incomplete-multipart cleanup rule are the two details that mark real bill-owning experience.
- Push back firmly on "durability means we do not need backups": versioning, Object Lock, and replication protect against deletion; durability does not.
+
+
+## Related Concepts
+
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md)
+- [[How do you design least-privilege identity in the cloud?]] (`#217`): [How do you design least-privilege identity in the cloud?](../cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md b/aws-engineering/what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md
index 576a221..7c78b1b 100644
--- a/aws-engineering/what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md
+++ b/aws-engineering/what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md
@@ -174,6 +174,16 @@ aws cloudwatch get-metric-statistics --namespace AWS/NATGateway \
- Have the two failure modes ready: private DNS disabled (or VPC DNS attributes off) so traffic silently uses the public endpoint, and a security group on the endpoint ENI that does not allow 443.
- Close with PrivateLink for your own services as the answer to overlapping CIDRs where peering or Transit Gateway is not an option. See [how does a private subnet reach the internet](./how-does-a-private-subnet-reach-the-internet.md), [connecting many VPCs](./how-do-you-connect-many-vpcs-peering-transit-gateway-or-privatelink.md), [designing a production-ready VPC](./how-do-you-design-a-production-ready-vpc-on-aws.md), and [cutting a cloud bill without hurting reliability](../cloud-cost-optimization/how-do-you-cut-a-cloud-bill-without-hurting-reliability.md).
+
+
+## Related Concepts
+
+- [[How do you debug DNS resolution failures inside a Kubernetes cluster?]] (`#404`): [How do you debug DNS resolution failures inside a Kubernetes cluster?](../kubernetes/how-do-you-debug-dns-resolution-failures-inside-a-kubernetes-cluster.md)
+- [[How do requests, limits, and QoS classes work in Kubernetes?]] (`#444`): [How do requests, limits, and QoS classes work in Kubernetes?](../kubernetes/how-do-requests-limits-and-qos-classes-work-in-kubernetes.md)
+- [[How does Pod networking and service discovery work in Kubernetes?]] (`#447`): [How does Pod networking and service discovery work in Kubernetes?](../kubernetes/how-does-pod-networking-and-service-discovery-work-in-kubernetes.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/what-is-the-difference-between-a-security-group-and-a-network-acl.md b/aws-engineering/what-is-the-difference-between-a-security-group-and-a-network-acl.md
index 872fad0..6304120 100644
--- a/aws-engineering/what-is-the-difference-between-a-security-group-and-a-network-acl.md
+++ b/aws-engineering/what-is-the-difference-between-a-security-group-and-a-network-acl.md
@@ -156,6 +156,16 @@ aws ec2 describe-security-groups --query \
- If asked "do I need a NACL when I already have a security group?", say usually not for access control, and name the three genuine cases: explicit deny, subnet-wide guardrail for defence in depth or compliance, and isolating a sensitive subnet.
- Close with debugging: VPC Flow Logs plus Reachability Analyzer, which names the blocking component instead of leaving you to guess. See [designing a production-ready VPC on AWS](./how-do-you-design-a-production-ready-vpc-on-aws.md), [how does a private subnet reach the internet](./how-does-a-private-subnet-reach-the-internet.md), [defence in depth for a cloud network](../network-security/how-do-you-design-defence-in-depth-for-a-cloud-network.md), and [what is network segmentation](../network-security/what-is-network-segmentation.md).
+
+
+## Related Concepts
+
+- [[How do you debug DNS resolution failures inside a Kubernetes cluster?]] (`#404`): [How do you debug DNS resolution failures inside a Kubernetes cluster?](../kubernetes/how-do-you-debug-dns-resolution-failures-inside-a-kubernetes-cluster.md)
+- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md)
+- [[How do you debug a Kubernetes Ingress that is not routing traffic?]] (`#406`): [How do you debug a Kubernetes Ingress that is not routing traffic?](../kubernetes/how-do-you-debug-a-kubernetes-ingress-that-is-not-routing-traffic.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/what-is-the-difference-between-cloudwatch-cloudtrail-and-aws-config.md b/aws-engineering/what-is-the-difference-between-cloudwatch-cloudtrail-and-aws-config.md
index e5ecfb7..6fe7fd3 100644
--- a/aws-engineering/what-is-the-difference-between-cloudwatch-cloudtrail-and-aws-config.md
+++ b/aws-engineering/what-is-the-difference-between-cloudwatch-cloudtrail-and-aws-config.md
@@ -163,6 +163,16 @@ aws configservice select-resource-config \
- Tell the incident narrative rather than three definitions - alarm, log query, CloudTrail lookup, Config diff, then the preventive control. It reads as experience.
- Close on cost: set retention on every log group, restrict Config's recorded resource types, and enable data events selectively. Unbounded log retention is the classic surprise bill. See [what is monitoring in DevOps](../monitoring-and-logging/what-is-monitoring-in-devops.md), [designing a logging pipeline that stays affordable at scale](../monitoring-and-logging/how-do-you-design-a-logging-pipeline-that-stays-affordable-at-scale.md), [automating compliance checks](../security-and-compliance/how-do-you-automate-compliance-checks-for-pci-dss-soc-2-hipaa-and-gdpr.md), and [what is infrastructure drift](../advanced-devops-cloud/what-is-infrastructure-drift.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md)
+- [[How do you debug DNS resolution failures inside a Kubernetes cluster?]] (`#404`): [How do you debug DNS resolution failures inside a Kubernetes cluster?](../kubernetes/how-do-you-debug-dns-resolution-failures-inside-a-kubernetes-cluster.md)
+- [[How do you troubleshoot a Kubernetes Job or CronJob that never completes?]] (`#408`): [How do you troubleshoot a Kubernetes Job or CronJob that never completes?](../kubernetes/how-do-you-troubleshoot-a-kubernetes-job-or-cronjob-that-never-completes.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md b/aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md
index e06a97e..2886732 100644
--- a/aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md
+++ b/aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md
@@ -66,6 +66,16 @@ tags:
- Naming Karpenter and the EKS version-support treadmill shows current, hands-on knowledge.
- Expect: "when would you not choose Kubernetes?" - answer honestly; recommending EKS unconditionally reads as inexperience.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?]] (`#407`): [How do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim?](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/aws-engineering/when-do-you-choose-cloudformation-cdk-or-terraform-on-aws.md b/aws-engineering/when-do-you-choose-cloudformation-cdk-or-terraform-on-aws.md
index fbf0d94..6fd6cc4 100644
--- a/aws-engineering/when-do-you-choose-cloudformation-cdk-or-terraform-on-aws.md
+++ b/aws-engineering/when-do-you-choose-cloudformation-cdk-or-terraform-on-aws.md
@@ -77,6 +77,16 @@ export class SecureBucket extends Construct {
- Mention the BUSL licence change and OpenTofu factually; interviewers use it to see whether you follow the ecosystem.
- Expect: "how do you stop console changes?" - drift detection, plan gates in CI, and IAM that denies humans write access in production.
+
+
+## Related Concepts
+
+- [[What are the different types of cloud services?]] (`#25`): [What are the different types of cloud services?](../cloud-platforms/what-are-the-different-types-of-cloud-services.md)
+- [[How do you choose a cloud provider for a new workload?]] (`#281`): [How do you choose a cloud provider for a new workload?](../cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md)
+- [[What is a cloud landing zone?]] (`#215`): [What is a cloud landing zone?](../cloud-engineering/what-is-a-cloud-landing-zone.md)
+
+
+
---
[⬅ Back to AWS Engineering](./README.md) · [All topics](../README.md)
diff --git a/azure-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-azure.md b/azure-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-azure.md
index 34eade2..6602831 100644
--- a/azure-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-azure.md
+++ b/azure-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-azure.md
@@ -118,6 +118,16 @@ resource aksCluster 'Microsoft.ContainerService/managedClusters@2023-10-01' = {
- Emphasize **Azure Workload Identity**: explain how it replaces static Azure Service Principal client secrets in CI/CD pipelines and AKS pods with OIDC federated tokens.
- Address PaaS isolation: always mention using **Azure Private Endpoints** and **Azure Private DNS Zones** to secure Azure Key Vault, ACR, and Azure SQL DB from public internet access.
+
+
+## Related Concepts
+
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+
+
+
---
[⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md)
diff --git a/azure-engineering/how-do-you-build-a-ci-cd-pipeline-in-azure-devops.md b/azure-engineering/how-do-you-build-a-ci-cd-pipeline-in-azure-devops.md
index 8871e59..f5e541e 100644
--- a/azure-engineering/how-do-you-build-a-ci-cd-pipeline-in-azure-devops.md
+++ b/azure-engineering/how-do-you-build-a-ci-cd-pipeline-in-azure-devops.md
@@ -232,6 +232,16 @@ az devops invoke --area distributedtask --resource environmentdeploymentrecords
- Prefer **pipeline artefacts** over build artefacts and be able to say why (faster, better for large files and cross-stage handoff).
- For fifty applications, answer with a shared, versioned template repository consumed via `extends`, and mention that an `extends` template can enforce steps a consumer cannot remove. See [how do you scale CI/CD across many services and teams](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md), [consuming Azure Key Vault secrets from AKS and Azure Pipelines](./how-do-you-consume-azure-key-vault-secrets-from-aks-and-azure-pipelines.md), [architecting an end-to-end production DevOps project on Azure](./how-do-you-architect-an-end-to-end-production-devops-project-on-azure.md), and [promoting a release across dev, staging, and production](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md).
+
+
+## Related Concepts
+
+- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md)
+- [[What is the difference between a ConfigMap and a Secret in Kubernetes?]] (`#442`): [What is the difference between a ConfigMap and a Secret in Kubernetes?](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+
+
+
---
[⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md)
diff --git a/azure-engineering/how-do-you-choose-between-azure-load-balancer-application-gateway-and-front-door.md b/azure-engineering/how-do-you-choose-between-azure-load-balancer-application-gateway-and-front-door.md
index 590d71e..1f7dc08 100644
--- a/azure-engineering/how-do-you-choose-between-azure-load-balancer-application-gateway-and-front-door.md
+++ b/azure-engineering/how-do-you-choose-between-azure-load-balancer-application-gateway-and-front-door.md
@@ -208,6 +208,16 @@ openssl s_client -connect www.example.com:443 -servername www.example.com
+
+## Related Concepts
+
+- [[How do you troubleshoot a DNS problem in production?]] (`#435`): [How do you troubleshoot a DNS problem in production?](../cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md)
+- [[How do you debug a Kubernetes Ingress that is not routing traffic?]] (`#406`): [How do you debug a Kubernetes Ingress that is not routing traffic?](../kubernetes/how-do-you-debug-a-kubernetes-ingress-that-is-not-routing-traffic.md)
+- [[What happens when a Kubernetes control-plane node or etcd fails?]] (`#448`): [What happens when a Kubernetes control-plane node or etcd fails?](../kubernetes/what-happens-when-a-kubernetes-control-plane-node-or-etcd-fails.md)
+
+
+
---
[⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md)
diff --git a/azure-engineering/how-do-you-consume-azure-key-vault-secrets-from-aks-and-azure-pipelines.md b/azure-engineering/how-do-you-consume-azure-key-vault-secrets-from-aks-and-azure-pipelines.md
index 25a86c6..473977d 100644
--- a/azure-engineering/how-do-you-consume-azure-key-vault-secrets-from-aks-and-azure-pipelines.md
+++ b/azure-engineering/how-do-you-consume-azure-key-vault-secrets-from-aks-and-azure-pipelines.md
@@ -185,6 +185,16 @@ steps:
- Prefer **Azure RBAC over access policies**, a **vault per environment**, purge protection on, and diagnostic logs to Log Analytics for the "who read this secret?" audit trail.
- Close by mapping the pattern to AWS (IRSA / Pod Identity) and GCP (Workload Identity) to show you understand federation rather than one product. See [what is Azure Kubernetes Service (AKS)](./what-is-azure-kubernetes-service-aks.md), [what is Microsoft Entra ID and how does Azure RBAC work](./what-is-microsoft-entra-id-and-how-does-azure-rbac-work.md), [ConfigMaps and Secrets in Kubernetes](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md), and [rotating secrets without downtime](../devsecops/how-do-you-rotate-secrets-without-downtime.md).
+
+
+## Related Concepts
+
+- [[What is the difference between a ConfigMap and a Secret in Kubernetes?]] (`#442`): [What is the difference between a ConfigMap and a Secret in Kubernetes?](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md)
+- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md)
+- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md)
+
+
+
---
[⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md)
diff --git a/azure-engineering/how-do-you-design-an-azure-virtual-network.md b/azure-engineering/how-do-you-design-an-azure-virtual-network.md
index e979f9e..84fbf74 100644
--- a/azure-engineering/how-do-you-design-an-azure-virtual-network.md
+++ b/azure-engineering/how-do-you-design-an-azure-virtual-network.md
@@ -100,6 +100,16 @@ resource vnet 'Microsoft.Network/virtualNetworks@2023-11-01' = {
- Private endpoints plus linked private DNS zones - and naming DNS as the usual failure - signals hands-on experience.
- Expect: "how does traffic leave?" - explicit NAT gateway or Firewall, and mention SNAT port exhaustion.
+
+
+## Related Concepts
+
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+
+
+
---
[⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md)
diff --git a/azure-engineering/how-do-you-monitor-azure-with-azure-monitor-and-kql.md b/azure-engineering/how-do-you-monitor-azure-with-azure-monitor-and-kql.md
index 90b1983..9e57c58 100644
--- a/azure-engineering/how-do-you-monitor-azure-with-azure-monitor-and-kql.md
+++ b/azure-engineering/how-do-you-monitor-azure-with-azure-monitor-and-kql.md
@@ -55,6 +55,16 @@ AzureActivity
- "Filter on TimeGenerated first" is the KQL performance answer; be ready to write a small query on a whiteboard.
- Expect: "how do you guarantee every resource sends logs?" - a `DeployIfNotExists` Azure Policy, not a checklist.
+
+
+## Related Concepts
+
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md)
+
+
+
---
[⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md)
diff --git a/azure-engineering/how-is-the-azure-resource-hierarchy-organised.md b/azure-engineering/how-is-the-azure-resource-hierarchy-organised.md
index f518132..8137bfb 100644
--- a/azure-engineering/how-is-the-azure-resource-hierarchy-organised.md
+++ b/azure-engineering/how-is-the-azure-resource-hierarchy-organised.md
@@ -50,6 +50,16 @@ Tenant root group
- The tags-do-not-inherit detail and the policy `modify` fix is a strong practical addition.
- Expect the AWS comparison: subscription ≈ account, management group ≈ OU, resource group has no AWS equivalent.
+
+
+## Related Concepts
+
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md)
+- [[What are the different types of cloud services?]] (`#25`): [What are the different types of cloud services?](../cloud-platforms/what-are-the-different-types-of-cloud-services.md)
+
+
+
---
[⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md)
diff --git a/azure-engineering/what-is-azure-kubernetes-service-aks.md b/azure-engineering/what-is-azure-kubernetes-service-aks.md
index aeb0295..cf2a153 100644
--- a/azure-engineering/what-is-azure-kubernetes-service-aks.md
+++ b/azure-engineering/what-is-azure-kubernetes-service-aks.md
@@ -77,6 +77,16 @@ spec:
- Say that the network plugin choice is immutable and explain the IP-exhaustion trade-off.
- Expect: "how do you handle upgrades?" - surge upgrades, PDBs, maintenance windows, and the roughly-annual version cadence.
+
+
+## Related Concepts
+
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md)
+
+
+
---
[⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md)
diff --git a/azure-engineering/what-is-azure-policy-and-how-do-landing-zones-use-it.md b/azure-engineering/what-is-azure-policy-and-how-do-landing-zones-use-it.md
index 5dc0552..6628a04 100644
--- a/azure-engineering/what-is-azure-policy-and-how-do-landing-zones-use-it.md
+++ b/azure-engineering/what-is-azure-policy-and-how-do-landing-zones-use-it.md
@@ -79,6 +79,16 @@ az policy assignment create \
- "Audit first, then Deny, with expiring exemptions" is the rollout discipline interviewers want to hear.
- Expect the AWS comparison: Azure Policy is closer to Config rules plus SCPs combined, and unlike SCPs it can remediate.
+
+
+## Related Concepts
+
+- [[How do you choose a cloud provider for a new workload?]] (`#281`): [How do you choose a cloud provider for a new workload?](../cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md)
+- [[How does networking differ across AWS, Azure, and GCP?]] (`#282`): [How does networking differ across AWS, Azure, and GCP?](../cloud-platforms/how-does-networking-differ-across-aws-azure-and-gcp.md)
+- [[What is a cloud landing zone?]] (`#215`): [What is a cloud landing zone?](../cloud-engineering/what-is-a-cloud-landing-zone.md)
+
+
+
---
[⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md)
diff --git a/azure-engineering/what-is-bicep-and-how-does-it-compare-to-arm-templates.md b/azure-engineering/what-is-bicep-and-how-does-it-compare-to-arm-templates.md
index 628ea22..18a1c0e 100644
--- a/azure-engineering/what-is-bicep-and-how-does-it-compare-to-arm-templates.md
+++ b/azure-engineering/what-is-bicep-and-how-does-it-compare-to-arm-templates.md
@@ -87,6 +87,16 @@ az deployment group what-if --resource-group rg-checkout-prod-weu \
- Incremental versus Complete mode is the trap; volunteering it shows you have deployed for real.
- Expect: "Bicep or Terraform?" - decide by whether Azure is your only provider, and mention module registries either way.
+
+
+## Related Concepts
+
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What are the different types of cloud services?]] (`#25`): [What are the different types of cloud services?](../cloud-platforms/what-are-the-different-types-of-cloud-services.md)
+- [[How do you choose a cloud provider for a new workload?]] (`#281`): [How do you choose a cloud provider for a new workload?](../cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md)
+
+
+
---
[⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md)
diff --git a/azure-engineering/what-is-microsoft-entra-id-and-how-does-azure-rbac-work.md b/azure-engineering/what-is-microsoft-entra-id-and-how-does-azure-rbac-work.md
index 9b70f6c..9889b02 100644
--- a/azure-engineering/what-is-microsoft-entra-id-and-how-does-azure-rbac-work.md
+++ b/azure-engineering/what-is-microsoft-entra-id-and-how-does-azure-rbac-work.md
@@ -55,6 +55,16 @@ az role assignment create \
- Managed identities and workload identity federation are the answers to every "how do you avoid secrets?" follow-up.
- Mention PIM plus Conditional Access for human access, and Azure Policy for what RBAC cannot express.
+
+
+## Related Concepts
+
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+
+
+
---
[⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md)
diff --git a/azure-engineering/what-is-the-difference-between-a-managed-identity-a-service-principal-and-an-app-registration.md b/azure-engineering/what-is-the-difference-between-a-managed-identity-a-service-principal-and-an-app-registration.md
index 87c9e41..e15b852 100644
--- a/azure-engineering/what-is-the-difference-between-a-managed-identity-a-service-principal-and-an-app-registration.md
+++ b/azure-engineering/what-is-the-difference-between-a-managed-identity-a-service-principal-and-an-app-registration.md
@@ -145,6 +145,16 @@ az monitor activity-log list --caller "$APP_ID" --start-time "$(date -u -d '-7 d
- Mention that roles are assigned to the **service principal**, at the resource or resource-group scope, using built-in least-privilege roles rather than Contributor.
- Close by mapping to AWS (instance profile / task role / IRSA, and OIDC role trust) and GCP (attached service account, Workload Identity Federation) so it is clear you understand federation as a pattern. See [what is Microsoft Entra ID and how does Azure RBAC work](./what-is-microsoft-entra-id-and-how-does-azure-rbac-work.md), [how is the Azure resource hierarchy organised](./how-is-the-azure-resource-hierarchy-organised.md), [authenticating to AWS without long-lived access keys](../aws-engineering/how-do-you-authenticate-to-aws-without-long-lived-access-keys.md), and [designing least-privilege identity in the cloud](../cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md).
+
+
+## Related Concepts
+
+- [[What is the difference between a ConfigMap and a Secret in Kubernetes?]] (`#442`): [What is the difference between a ConfigMap and a Secret in Kubernetes?](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md)
+- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+
+
+
---
[⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md)
diff --git a/azure-engineering/when-do-you-choose-app-service-container-apps-or-azure-functions.md b/azure-engineering/when-do-you-choose-app-service-container-apps-or-azure-functions.md
index f2c7231..3fcb83d 100644
--- a/azure-engineering/when-do-you-choose-app-service-container-apps-or-azure-functions.md
+++ b/azure-engineering/when-do-you-choose-app-service-container-apps-or-azure-functions.md
@@ -57,6 +57,16 @@ az containerapp ingress traffic set --name checkout --resource-group rg-checkout
- Naming KEDA behind Container Apps and Flex Consumption for Functions shows current knowledge.
- Expect: "why not AKS for everything?" - operational cost, upgrade treadmill, and no business value unless you need the API.
+
+
+## Related Concepts
+
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md)
+
+
+
---
[⬅ Back to Azure Engineering](./README.md) · [All topics](../README.md)
diff --git a/backup-and-disaster-recovery/how-do-you-execute-a-disaster-recovery-failover-with-minimal-rto-and-rpo.md b/backup-and-disaster-recovery/how-do-you-execute-a-disaster-recovery-failover-with-minimal-rto-and-rpo.md
index 6823ec3..3ea687f 100644
--- a/backup-and-disaster-recovery/how-do-you-execute-a-disaster-recovery-failover-with-minimal-rto-and-rpo.md
+++ b/backup-and-disaster-recovery/how-do-you-execute-a-disaster-recovery-failover-with-minimal-rto-and-rpo.md
@@ -95,6 +95,16 @@ aws rds failover-global-cluster \
- Explain the trade-offs: Active-Active provides zero downtime but introduces split-brain risks, data consistency complexity, and doubled infrastructure costs.
- Emphasize regular **Game Days** (Chaos Engineering / simulated region outages) to validate that automated failover runbooks actually work when real outages occur.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Backup and Disaster Recovery](./README.md) · [All topics](../README.md)
diff --git a/backup-and-disaster-recovery/how-do-you-verify-that-your-backups-can-actually-be-restored.md b/backup-and-disaster-recovery/how-do-you-verify-that-your-backups-can-actually-be-restored.md
index 96d8f0c..62f6338 100644
--- a/backup-and-disaster-recovery/how-do-you-verify-that-your-backups-can-actually-be-restored.md
+++ b/backup-and-disaster-recovery/how-do-you-verify-that-your-backups-can-actually-be-restored.md
@@ -150,6 +150,16 @@ groups:
- Distinguish data verification from a DR game day: the former tests technology, the latter tests runbooks, permissions, DNS, and people. Interviewers want to hear you have done the second.
- Close on alerting for **staleness** as well as failure, because a verification job that quietly stopped is indistinguishable from a passing one until the day it matters. See [what is business continuity planning](./what-is-business-continuity-planning.md).
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+- [[How do you take a monthly release process to daily deployments?]] (`#285`): [How do you take a monthly release process to daily deployments?](../core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md)
+
+
+
---
[⬅ Back to Backup and Disaster Recovery](./README.md) · [All topics](../README.md)
diff --git a/backup-and-disaster-recovery/what-are-backup-best-practices.md b/backup-and-disaster-recovery/what-are-backup-best-practices.md
index 117ee77..3eb4246 100644
--- a/backup-and-disaster-recovery/what-are-backup-best-practices.md
+++ b/backup-and-disaster-recovery/what-are-backup-best-practices.md
@@ -47,6 +47,16 @@ aws s3api put-object-lock-configuration --bucket acme-backups \
- Immutability plus a separate account is the ransomware answer.
- Close on restore testing with a real number - it is the most credible thing you can say about backups.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Backup and Disaster Recovery](./README.md) · [All topics](../README.md)
diff --git a/backup-and-disaster-recovery/what-are-different-types-of-backups.md b/backup-and-disaster-recovery/what-are-different-types-of-backups.md
index 1364997..c3df875 100644
--- a/backup-and-disaster-recovery/what-are-different-types-of-backups.md
+++ b/backup-and-disaster-recovery/what-are-different-types-of-backups.md
@@ -39,6 +39,16 @@ tags:
- Application-consistent backups for databases is the detail that shows production experience.
- Always close with verification: checksums, test restores, and monitoring of backup job outcomes.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Backup and Disaster Recovery](./README.md) · [All topics](../README.md)
diff --git a/backup-and-disaster-recovery/what-is-backup-and-disaster-recovery.md b/backup-and-disaster-recovery/what-is-backup-and-disaster-recovery.md
index a7d6804..28c2842 100644
--- a/backup-and-disaster-recovery/what-is-backup-and-disaster-recovery.md
+++ b/backup-and-disaster-recovery/what-is-backup-and-disaster-recovery.md
@@ -40,6 +40,16 @@ The uncomfortable truth interviewers probe: most organisations have backups; far
- Volunteer a restore-testing cadence before being asked.
- Note that replication is not backup: it faithfully replicates a deletion or corruption too.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Docker Compose?]] (`#9`): [What is Docker Compose?](../docker/what-is-docker-compose.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Backup and Disaster Recovery](./README.md) · [All topics](../README.md)
diff --git a/backup-and-disaster-recovery/what-is-business-continuity-planning.md b/backup-and-disaster-recovery/what-is-business-continuity-planning.md
index 7d87cc5..28c1c83 100644
--- a/backup-and-disaster-recovery/what-is-business-continuity-planning.md
+++ b/backup-and-disaster-recovery/what-is-business-continuity-planning.md
@@ -36,6 +36,16 @@ For a DevOps engineer, the practical contributions are: keeping the dependency m
- Name the BIA as the source of RTO/RPO targets.
- The best practical point: store the plan and credentials somewhere that survives the outage the plan is for.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Backup and Disaster Recovery](./README.md) · [All topics](../README.md)
diff --git a/backup-and-disaster-recovery/what-is-rpo-and-rto.md b/backup-and-disaster-recovery/what-is-rpo-and-rto.md
index bf86ba6..ae98a7d 100644
--- a/backup-and-disaster-recovery/what-is-rpo-and-rto.md
+++ b/backup-and-disaster-recovery/what-is-rpo-and-rto.md
@@ -45,6 +45,16 @@ Picture an outage on a timeline:
- Note the synchronous-replication latency cost - it shows you understand the trade-off, not just the term.
- Mention measuring actual achieved values during DR tests, and reporting the gap.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[How do you take a monthly release process to daily deployments?]] (`#285`): [How do you take a monthly release process to daily deployments?](../core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md)
+
+
+
---
[⬅ Back to Backup and Disaster Recovery](./README.md) · [All topics](../README.md)
diff --git a/cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md b/cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md
index cea36f1..27e3b99 100644
--- a/cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md
+++ b/cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md
@@ -89,6 +89,16 @@ jobs:
- Quarantine with an owner, a date, and a cap - and be willing to say you would delete a test nobody will fix. That decisiveness is often the point of the question.
- Tie it to the metric: pipeline pass rate on `main` and change failure rate. See [what is change failure rate](../devops-metrics-and-kpis/what-is-change-failure-rate.md) and [what is blameless culture](../devops-culture-and-practices/what-is-blameless-culture.md) for the cultural half of the answer.
+
+
+## Related Concepts
+
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md)
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md b/cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md
index 5c7d351..f8a7ad0 100644
--- a/cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md
+++ b/cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md
@@ -107,6 +107,16 @@ Per-service pipeline (the same shape for all 50, from one template)
- If asked about fifty pipelines' maintenance, answer with templates plus a platform team owning the golden path, and mention concurrency caps and artefact expiry for cost.
- Have the compatibility story ready for the follow-up "what breaks during a rollout?" - two versions live at once, so schema and event changes must be additive. See [what are microservices](../cloud-native-architecture/what-are-microservices.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[What is Infrastructure Automation?]] (`#86`): [What is Infrastructure Automation?](../devops-tools-and-automation/what-is-infrastructure-automation.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md b/cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md
index bedf59a..ff4a3a5 100644
--- a/cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md
+++ b/cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md
@@ -165,6 +165,16 @@ ls -l target/site/jacoco/jacoco.xml
- Draw the boundary: Sonar is not dependency scanning, image scanning, or IaC scanning - name the companions.
- For "a developer wants the slow scan removed", answer with diagnosis and parallelisation first, then a time-boxed audited exception if genuinely needed - never a silent deletion. See [what does a DevSecOps pipeline look like end to end](../devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md), [SAST, DAST, IAST, and SCA](../devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md), [speeding up a slow CI/CD pipeline](./how-do-you-speed-up-a-slow-ci-cd-pipeline.md), and [how do you deal with flaky tests](./how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md).
+
+
+## Related Concepts
+
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md b/cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md
index 42747d6..f8b5785 100644
--- a/cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md
+++ b/cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md
@@ -88,6 +88,16 @@ npm ci && npm test # frozen lockfile: exactly what CI will instal
- Close on the deleted dependency: the fastest way to fix a vulnerable or broken dependency is often to remove it. `depcheck` and a hard look at the tree beat any upgrade.
- Tie it to security posture with SBOM plus SCA, and to [what is the difference between SAST, DAST, IAST, and SCA](../devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md).
+
+
+## Related Concepts
+
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md b/cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md
index 681432c..5dde8ad 100644
--- a/cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md
+++ b/cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md
@@ -90,6 +90,16 @@ repos:
- Explain why running `git rm secret.txt` in a subsequent commit is insufficient: the secret remains in `.git` packfiles and commit history.
- Mention automated key rotation pipelines and immediate audit logging (e.g., CloudTrail events) as part of incident response.
+
+
+## Related Concepts
+
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md)
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md b/cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md
index 9b3993e..b17c3f4 100644
--- a/cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md
+++ b/cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md
@@ -82,6 +82,16 @@ externalSecrets:
- If the interviewer uses Kubernetes, offer the GitOps version - promotion as a pull request changing an image digest, with `git revert` as the rollback path.
- Have an opinion on environment count. "We had seven long-lived environments and cut to three plus ephemeral PR environments" is a strong, real answer. See [what are deployment strategies](../devops-tools-and-automation/what-are-deployment-strategies.md) and [continuous delivery versus continuous deployment](./what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md).
+
+
+## Related Concepts
+
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md b/cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md
index 7fee80b..dedfd69 100644
--- a/cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md
+++ b/cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md
@@ -151,6 +151,16 @@ curl -s -u "$U:$T" https://jenkins.example.com/updateCenter/api/json?tree=jobs\[
- Cover patching explicitly - LTS line, monthly plugin updates, remove unused plugins - because plugin CVEs are the realistic attack path.
- Be honest that Jenkins OSS has no active-active HA and describe fast, rehearsed recovery instead. See [how do you prevent and handle secret leaks in CI/CD pipelines](./how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md), [troubleshooting a Jenkins pipeline that never starts](./how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md), [Jenkins shared libraries](./how-do-you-use-jenkins-shared-libraries.md), and [what is Jenkins](./what-is-jenkins.md).
+
+
+## Related Concepts
+
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+- [[What does a DevSecOps pipeline look like end to end?]] (`#161`): [What does a DevSecOps pipeline look like end to end?](../devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md b/cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md
index d0c37e6..3a7af95 100644
--- a/cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md
+++ b/cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md
@@ -158,6 +158,16 @@ Platform metrics that prove it is scaling, reviewed monthly
- Finish with metrics: DORA per service plus platform metrics (queue wait, p95 duration, cache hit rate, cost per build, onboarding time). Being able to say what you would measure is what makes this a senior answer.
- If asked about consolidating three CI systems, refuse the big-bang: template the target, migrate high-value services first, run in parallel, set a deprecation date. See [designing CI/CD for a microservices architecture](./how-do-you-design-ci-cd-for-a-microservices-architecture.md), [speeding up a slow pipeline](./how-do-you-speed-up-a-slow-ci-cd-pipeline.md), [what is an Internal Developer Platform](../platform-engineering/what-is-an-internal-developer-platform-idp.md), and [managing build artefacts with Nexus or Artifactory](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md b/cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md
index d0a1177..4d73286 100644
--- a/cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md
+++ b/cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md
@@ -91,6 +91,16 @@ jobs:
- Flag the anti-pattern of fixing slowness by retrying or deleting tests, and handle flakiness as its own problem: see [how do you deal with flaky tests in a CI pipeline](./how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md).
- Close on cost: autoscaled ephemeral agents plus artefact expiry usually cut both the wait and the bill. See [how do you cut a cloud bill without hurting reliability](../cloud-cost-optimization/how-do-you-cut-a-cloud-bill-without-hurting-reliability.md).
+
+
+## Related Concepts
+
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md b/cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md
index 7595781..3d95335 100644
--- a/cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md
+++ b/cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md
@@ -154,6 +154,16 @@ gh workflow run api.yml -f environment=staging # GitHub Actions equivalent
- Volunteer filtering as the other half of the answer: branch and path filters for monorepos, concurrency groups so overlapping pushes do not run overlapping deploys, and `[skip ci]` plus ignoring bot commits to avoid trigger loops.
- Raise the fork-PR security boundary - `pull_request` versus `pull_request_target`, secrets never exposed to untrusted code. Very few candidates bring this up unprompted and it matters. See [how do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue](./how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md), [declarative versus scripted pipelines](./what-is-the-difference-between-a-declarative-and-a-scripted-jenkins-pipeline.md), [writing an efficient and secure GitHub Actions workflow](./how-do-you-write-an-efficient-and-secure-github-actions-workflow.md), and [scaling CI/CD across many services and teams](./how-do-you-scale-ci-cd-across-many-services-and-teams.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md b/cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md
index 56a623c..234e749 100644
--- a/cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md
+++ b/cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md
@@ -89,6 +89,16 @@ df -h /var/lib/jenkins /tmp && java -version
- If asked about high availability, be precise: Jenkins controllers are active/passive, so the answer is fast rebuild plus backed-up `$JENKINS_HOME`, ephemeral agents, and configuration as code - not "run three replicas".
- Close on prevention: alert on queue time and offline agents, and keep `pollSCM` as a cheap safety net for a lost webhook. See [what is Jenkins](./what-is-jenkins.md) and [what are Jenkins pipelines](./what-are-jenkins-pipelines.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/how-do-you-use-jenkins-shared-libraries.md b/cicd/how-do-you-use-jenkins-shared-libraries.md
index c93c671..c789882 100644
--- a/cicd/how-do-you-use-jenkins-shared-libraries.md
+++ b/cicd/how-do-you-use-jenkins-shared-libraries.md
@@ -122,6 +122,16 @@ standardPipeline(
- If CPS or `@NonCPS` comes up, explain it simply: pipeline code is transformed so it can be paused and resumed, which breaks some ordinary Groovy; `@NonCPS` opts out but cannot call pipeline steps.
- Be ready to compare with GitHub Actions reusable workflows or GitLab `include:` - many interviewers now ask what you would use if you were not on Jenkins.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md b/cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md
index f904115..43e382e 100644
--- a/cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md
+++ b/cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md
@@ -167,6 +167,16 @@ jobs:
- Bring up `pull_request` versus `pull_request_target` unprompted, describe the RCE pattern, and give the safe alternative (untrusted build uploads an artifact; a separate privileged workflow consumes it). Add the script-injection example with `env:`.
- Warn against self-hosted runners on public repositories and recommend ephemeral runners. See [how do you prevent and handle secret leaks in CI/CD pipelines](./how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md), [what is GitHub Actions](../advanced-devops-cloud/what-is-github-actions.md), [how do you trigger a pipeline](./how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md), [speeding up a slow pipeline](./how-do-you-speed-up-a-slow-ci-cd-pipeline.md), and [authenticating to AWS without long-lived access keys](../aws-engineering/how-do-you-authenticate-to-aws-without-long-lived-access-keys.md).
+
+
+## Related Concepts
+
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/what-are-jenkins-pipelines.md b/cicd/what-are-jenkins-pipelines.md
index a85edd2..0ea07b9 100644
--- a/cicd/what-are-jenkins-pipelines.md
+++ b/cicd/what-are-jenkins-pipelines.md
@@ -61,6 +61,16 @@ pipeline {
- `parallel` plus per-stage agents is the standard answer to "how do you speed up a Jenkins build?"
- Shared libraries are the answer to pipeline sprawl across many repositories.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/what-is-ci-cd-pipeline.md b/cicd/what-is-ci-cd-pipeline.md
index 286fcf5..8af5401 100644
--- a/cicd/what-is-ci-cd-pipeline.md
+++ b/cicd/what-is-ci-cd-pipeline.md
@@ -67,6 +67,16 @@ jobs:
- Mention what fails the build and what only warns - that distinction shows operational judgement.
- Have an answer for pipeline speed: caching, parallel jobs, test splitting, and selective builds in a monorepo.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/what-is-gitlab-ci.md b/cicd/what-is-gitlab-ci.md
index dad45b7..dc16ea6 100644
--- a/cicd/what-is-gitlab-ci.md
+++ b/cicd/what-is-gitlab-ci.md
@@ -74,6 +74,16 @@ include:
- Review apps - a live environment per merge request - are a strong differentiator worth naming.
- Know how to avoid long-lived cloud credentials by using GitLab's OIDC token with AWS/GCP.
+
+
+## Related Concepts
+
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md)
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/what-is-jenkins.md b/cicd/what-is-jenkins.md
index 1f2342d..08defba 100644
--- a/cicd/what-is-jenkins.md
+++ b/cicd/what-is-jenkins.md
@@ -63,6 +63,16 @@ pipeline {
- Know how credentials are handled (`withCredentials`, never plain environment variables in the Jenkinsfile).
- Be ready to compare Jenkins with GitHub Actions/GitLab CI on operational cost versus control.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/what-is-the-difference-between-a-declarative-and-a-scripted-jenkins-pipeline.md b/cicd/what-is-the-difference-between-a-declarative-and-a-scripted-jenkins-pipeline.md
index 2ead811..298186f 100644
--- a/cicd/what-is-the-difference-between-a-declarative-and-a-scripted-jenkins-pipeline.md
+++ b/cicd/what-is-the-difference-between-a-declarative-and-a-scripted-jenkins-pipeline.md
@@ -153,6 +153,16 @@ buildJavaService(
- Mention that `Jenkinsfile` Groovy executes on the **controller** and that CPS serialisation is why some Groovy idioms explode. That is the kind of detail only people who have debugged a `NotSerializableException` know.
- Land on shared libraries as the way to get scripted flexibility without unmaintainable `Jenkinsfile`s. See [what are Jenkins Pipelines](./what-are-jenkins-pipelines.md), [how do you use Jenkins shared libraries](./how-do-you-use-jenkins-shared-libraries.md), [how do you trigger a pipeline](./how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md), and [running and securing a Jenkins controller in production](./how-do-you-run-and-secure-a-jenkins-controller-in-production.md).
+
+
+## Related Concepts
+
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md)
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md b/cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md
index c938db2..372e7c6 100644
--- a/cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md
+++ b/cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md
@@ -36,6 +36,16 @@ A useful middle ground many teams adopt: continuous deployment to staging automa
- Note that both require deployment to be decoupled from release, via feature flags.
- Say which you would pick for a given context, and why - the judgement is what is being assessed.
+
+
+## Related Concepts
+
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md)
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cicd/why-does-a-build-pass-locally-but-fail-in-ci.md b/cicd/why-does-a-build-pass-locally-but-fail-in-ci.md
index deb8b51..682ec99 100644
--- a/cicd/why-does-a-build-pass-locally-but-fail-in-ci.md
+++ b/cicd/why-does-a-build-pass-locally-but-fail-in-ci.md
@@ -80,6 +80,16 @@ steps:
- Say that the answer is _not_ "make CI more like my laptop" but "make both come from one declared image". Reference [what a Dockerfile is](../docker/what-is-dockerfile.md) and [what is configuration management](../configuration-management/what-is-configuration-management.md).
- Add the guardrail: a fresh-clone-in-clean-container job on every pull request, so drift fails at review rather than at release.
+
+
+## Related Concepts
+
+- [[How do you manage build artefacts with Nexus or Artifactory?]] (`#460`): [How do you manage build artefacts with Nexus or Artifactory?](../devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md)
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+- [[What do you need to know about Maven as a DevOps engineer?]] (`#461`): [What do you need to know about Maven as a DevOps engineer?](../devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md)
+
+
+
---
[⬅ Back to CI/CD](./README.md) · [All topics](../README.md)
diff --git a/cloud-cost-optimization/how-do-you-cut-a-cloud-bill-without-hurting-reliability.md b/cloud-cost-optimization/how-do-you-cut-a-cloud-bill-without-hurting-reliability.md
index ddd8c7d..bf48e51 100644
--- a/cloud-cost-optimization/how-do-you-cut-a-cloud-bill-without-hurting-reliability.md
+++ b/cloud-cost-optimization/how-do-you-cut-a-cloud-bill-without-hurting-reliability.md
@@ -92,6 +92,16 @@ spec:
- Have a concrete number ready from your own experience, with the mechanism: "cross-AZ chatter was 18% of the bill; topology-aware routing removed most of it."
- Mention tagging enforcement and anomaly alerting as the durability story. Interviewers know one-off cleanups regress.
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md)
diff --git a/cloud-cost-optimization/how-do-you-implement-real-time-kubernetes-cost-monitoring-using-opencost-or-kubecost.md b/cloud-cost-optimization/how-do-you-implement-real-time-kubernetes-cost-monitoring-using-opencost-or-kubecost.md
index 88dbef7..35ea0b8 100644
--- a/cloud-cost-optimization/how-do-you-implement-real-time-kubernetes-cost-monitoring-using-opencost-or-kubecost.md
+++ b/cloud-cost-optimization/how-do-you-implement-real-time-kubernetes-cost-monitoring-using-opencost-or-kubecost.md
@@ -92,6 +92,16 @@ Sample JSON cost allocation output:
- Highlight **Idle Cost Allocation**: explain that if a node has 16 CPU cores but pods only request 8 cores, OpenCost attributes the remaining 8 idle cores to cost-center metrics.
- Discuss **Resource Efficiency Ratio**: $\frac{\text{Actual Usage}}{\text{Requested Resources}}$. An efficiency ratio below 0.3 indicates severe over-provisioning and wasted cloud spend.
+
+
+## Related Concepts
+
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[What is GitLab CI?]] (`#19`): [What is GitLab CI?](../cicd/what-is-gitlab-ci.md)
+- [[How do you prevent and handle secret leaks in CI/CD pipelines?]] (`#237`): [How do you prevent and handle secret leaks in CI/CD pipelines?](../cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md)
+
+
+
---
[⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md)
diff --git a/cloud-cost-optimization/how-do-you-investigate-a-sudden-spike-in-your-cloud-bill.md b/cloud-cost-optimization/how-do-you-investigate-a-sudden-spike-in-your-cloud-bill.md
index 1326eac..77816e1 100644
--- a/cloud-cost-optimization/how-do-you-investigate-a-sudden-spike-in-your-cloud-bill.md
+++ b/cloud-cost-optimization/how-do-you-investigate-a-sudden-spike-in-your-cloud-bill.md
@@ -172,6 +172,16 @@ curl -s 'localhost:9003/allocation?window=7d&aggregate=namespace' \
- Finish on prevention: budgets on **forecast** as well as actual, anomaly detection, SCPs restricting unused regions and expensive instance families, non-production scheduled to zero, and per-team cost reports - because the people who can fix a query are the ones who need to see the number.
- State the guard rail: cost reduction must not silently trade away reliability or compliance retention. Make that trade-off explicit. See [how do you cut a cloud bill without hurting reliability](./how-do-you-cut-a-cloud-bill-without-hurting-reliability.md), [how to implement cost tagging strategy](./how-to-implement-cost-tagging-strategy.md), [real-time Kubernetes cost monitoring with OpenCost or Kubecost](./how-do-you-implement-real-time-kubernetes-cost-monitoring-using-opencost-or-kubecost.md), [what is FinOps](../advanced-devops-cloud/what-is-finops.md), and [what are VPC endpoints](../aws-engineering/what-are-vpc-endpoints-and-when-do-you-use-a-gateway-versus-an-interface-endpoint.md).
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md)
+
+
+
---
[⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md)
diff --git a/cloud-cost-optimization/how-to-implement-cost-tagging-strategy.md b/cloud-cost-optimization/how-to-implement-cost-tagging-strategy.md
index 61390b8..5d5c994 100644
--- a/cloud-cost-optimization/how-to-implement-cost-tagging-strategy.md
+++ b/cloud-cost-optimization/how-to-implement-cost-tagging-strategy.md
@@ -45,6 +45,16 @@ Agree on case and allowed values, and document them - `Env=prod` and `environmen
- Mention that cost-allocation tags apply going forward only - a genuinely useful practical detail.
- Untagged-spend percentage as a tracked KPI shows you have run this programme, not just designed it.
+
+
+## Related Concepts
+
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md)
diff --git a/cloud-cost-optimization/what-are-cost-allocation-reports.md b/cloud-cost-optimization/what-are-cost-allocation-reports.md
index 55e3829..c592149 100644
--- a/cloud-cost-optimization/what-are-cost-allocation-reports.md
+++ b/cloud-cost-optimization/what-are-cost-allocation-reports.md
@@ -33,6 +33,16 @@ tags:
- Shared-cost allocation is the question that reveals whether you have actually done this.
- Mention amortised versus unblended cost - it shows familiarity with real billing data.
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md)
diff --git a/cloud-cost-optimization/what-are-reserved-instances.md b/cloud-cost-optimization/what-are-reserved-instances.md
index c2b98f2..afdbf79 100644
--- a/cloud-cost-optimization/what-are-reserved-instances.md
+++ b/cloud-cost-optimization/what-are-reserved-instances.md
@@ -38,6 +38,16 @@ tags:
- Recommend Savings Plans over RIs for most cases, and explain the flexibility trade-off.
- Mention monitoring commitment utilisation; buying is the easy part, keeping coverage right is the ongoing work.
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md)
diff --git a/cloud-cost-optimization/what-is-cloud-cost-optimization.md b/cloud-cost-optimization/what-is-cloud-cost-optimization.md
index fb2b197..72252e5 100644
--- a/cloud-cost-optimization/what-is-cloud-cost-optimization.md
+++ b/cloud-cost-optimization/what-is-cloud-cost-optimization.md
@@ -34,6 +34,16 @@ tags:
- Data transfer costs are the ones teams miss - naming cross-AZ traffic signals real experience.
- Emphasise that cost is an engineering quality attribute, owned by teams and made visible, not a finance problem.
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md)
diff --git a/cloud-cost-optimization/what-is-spot-instance-pricing.md b/cloud-cost-optimization/what-is-spot-instance-pricing.md
index bd2edb8..d33115e 100644
--- a/cloud-cost-optimization/what-is-spot-instance-pricing.md
+++ b/cloud-cost-optimization/what-is-spot-instance-pricing.md
@@ -54,6 +54,16 @@ spec:
- Describe what your application does in the two-minute window - that is the practical test.
- The mature pattern is a blended fleet: reserved baseline, on-demand buffer, spot for burst.
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Cloud Cost Optimization](./README.md) · [All topics](../README.md)
diff --git a/cloud-engineering/how-do-the-core-services-of-aws-azure-and-gcp-map-to-each-other.md b/cloud-engineering/how-do-the-core-services-of-aws-azure-and-gcp-map-to-each-other.md
index 53f3116..d39c29d 100644
--- a/cloud-engineering/how-do-the-core-services-of-aws-azure-and-gcp-map-to-each-other.md
+++ b/cloud-engineering/how-do-the-core-services-of-aws-azure-and-gcp-map-to-each-other.md
@@ -56,6 +56,16 @@ tags:
- Score points by naming where the mapping _fails_ (global VPC, resource groups, IAM models) rather than reciting the table.
- Expect: "you know AWS, could you work on GCP?" - answer with the primitives that transfer and the specific differences you would need to learn.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md)
diff --git a/cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md b/cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md
index 7c43dc7..89aebc4 100644
--- a/cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md
+++ b/cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md
@@ -58,6 +58,16 @@ Test quarterly: fail circuit #1, confirm convergence and no asymmetric drops
- Non-overlapping address planning and hybrid DNS are the two failures that cause the most real pain - mention both.
- Expect: "is a dedicated circuit encrypted?" - no; add IPsec/MACsec or rely on application-layer TLS.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md)
diff --git a/cloud-engineering/how-do-you-design-for-multi-region-resilience.md b/cloud-engineering/how-do-you-design-for-multi-region-resilience.md
index 59746c8..ab181df 100644
--- a/cloud-engineering/how-do-you-design-for-multi-region-resilience.md
+++ b/cloud-engineering/how-do-you-design-for-multi-region-resilience.md
@@ -57,6 +57,16 @@ Rehearsal quarterly, in business hours, with a rollback plan; last tested RTO
- "Failover must not depend on the failed region" plus one concrete example (DNS or CI) is a memorable point.
- Expect: "what is your RTO?" - quote the _tested_ number and say when you last rehearsed.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md)
diff --git a/cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md b/cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md
index 9695210..90c5a1b 100644
--- a/cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md
+++ b/cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md
@@ -61,6 +61,16 @@ Derivation
- "Derive the policy from audit logs" is the answer that separates practitioners from policy theorists.
- Expect: "what about emergencies?" - a designed, alerted, reviewed break-glass path, not weakening the guardrails.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md)
diff --git a/cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md b/cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md
index f60cae2..6b7d6fe 100644
--- a/cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md
+++ b/cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md
@@ -76,6 +76,16 @@ resource "aws_route53_record" "caa" {
- Recommend an anycast global load balancer when the RTO requirement is seconds - DNS is the coarse tool.
- Expect: "what is subdomain takeover?" - a dangling CNAME to a deprovisioned resource that an attacker can claim; monitor for it.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md)
diff --git a/cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md b/cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md
index b2310a6..465e0ac 100644
--- a/cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md
+++ b/cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md
@@ -127,6 +127,16 @@ The change-management habit that prevents most DNS incidents
- Domain expiry, DNSSEC signature expiry, and delegation drift are the three catastrophic-but-preventable causes. Monitoring them is cheap and almost nobody does it.
- Close on records as code, and the specific trap of fixing a record in the console during an incident so the next Terraform apply reverts it. That detail lands because everyone has seen it happen. See [what happens when a user opens your application in a browser](../network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md)
diff --git a/cloud-engineering/what-are-the-real-trade-offs-of-multi-cloud.md b/cloud-engineering/what-are-the-real-trade-offs-of-multi-cloud.md
index 1988e58..ae4d894 100644
--- a/cloud-engineering/what-are-the-real-trade-offs-of-multi-cloud.md
+++ b/cloud-engineering/what-are-the-real-trade-offs-of-multi-cloud.md
@@ -59,6 +59,16 @@ Requirement claimed: "board mandated reducing concentration risk"
- "Lock-in is data gravity and skills, not APIs" is the line that carries the argument.
- Expect: "how would you make an application portable?" - containers, OpenTelemetry, one IaC tool, native data services with an honest migration plan, not a self-hosted everything.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md)
diff --git a/cloud-engineering/what-is-a-cloud-landing-zone.md b/cloud-engineering/what-is-a-cloud-landing-zone.md
index 4f25f16..ce5e7f1 100644
--- a/cloud-engineering/what-is-a-cloud-landing-zone.md
+++ b/cloud-engineering/what-is-a-cloud-landing-zone.md
@@ -61,6 +61,16 @@ Expand only when a real requirement appears. Every guardrail must have an owner.
- The self-service vending machine and preventive-versus-detective distinction are the strongest points to make.
- Expect: "how big should it be?" - right-size it; describing the enterprise version for a five-person team is the trap.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Cloud Engineering](./README.md) · [All topics](../README.md)
diff --git a/cloud-migration/how-do-you-containerise-a-legacy-application-and-move-it-to-kubernetes.md b/cloud-migration/how-do-you-containerise-a-legacy-application-and-move-it-to-kubernetes.md
index ba5e23e..4e669b8 100644
--- a/cloud-migration/how-do-you-containerise-a-legacy-application-and-move-it-to-kubernetes.md
+++ b/cloud-migration/how-do-you-containerise-a-legacy-application-and-move-it-to-kubernetes.md
@@ -157,6 +157,16 @@ Traffic shift, not a cutover
- Keep data migration as a separate project, and say why: moving compute and state in one change multiplies risk.
- Finish by naming the cases where you would decline - hardware-locked licences, kernel modules, imminent retirement - and that documenting the exceptions is part of the deliverable. See [what are cloud migration strategies](./what-are-cloud-migration-strategies.md).
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+
+
+
---
[⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md)
diff --git a/cloud-migration/how-do-you-migrate-a-kubernetes-cluster-to-another-cloud-provider.md b/cloud-migration/how-do-you-migrate-a-kubernetes-cluster-to-another-cloud-provider.md
index 5cd26d7..5dac247 100644
--- a/cloud-migration/how-do-you-migrate-a-kubernetes-cluster-to-another-cloud-provider.md
+++ b/cloud-migration/how-do-you-migrate-a-kubernetes-cluster-to-another-cloud-provider.md
@@ -128,6 +128,16 @@ Cutover: weighted DNS, both clusters live, old one warm
- Describe the gradual weighted cutover with both clusters live and the old one warm as the rollback, rather than a big-bang switch.
- Close on the strategic point: this procedure is identical to an immutable cluster upgrade and to a DR rebuild, so the durable deliverable is the repeatable path - and be honest that migration costs months and dual-running spend. See [what is cloud migration](./what-is-cloud-migration.md).
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md)
diff --git a/cloud-migration/how-do-you-migrate-a-production-database-to-the-cloud-with-near-zero-downtime.md b/cloud-migration/how-do-you-migrate-a-production-database-to-the-cloud-with-near-zero-downtime.md
index 0c367b0..2173636 100644
--- a/cloud-migration/how-do-you-migrate-a-production-database-to-the-cloud-with-near-zero-downtime.md
+++ b/cloud-migration/how-do-you-migrate-a-production-database-to-the-cloud-with-near-zero-downtime.md
@@ -95,6 +95,16 @@ done
- Name at least three real failure modes: replication slot filling the source disk, un-advanced sequences, missing primary keys, collation-driven index differences, target connection limits.
- Insist on a mechanism for the write freeze (flag or read-only mode) rather than a process. "We asked people not to write" is not an answer at this level.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md)
diff --git a/cloud-migration/what-are-cloud-migration-strategies.md b/cloud-migration/what-are-cloud-migration-strategies.md
index 56aecbb..c241dbe 100644
--- a/cloud-migration/what-are-cloud-migration-strategies.md
+++ b/cloud-migration/what-are-cloud-migration-strategies.md
@@ -36,6 +36,16 @@ tags:
- "Migrate then modernise" versus "modernise then migrate" is a great trade-off to discuss.
- The retire finding - often 10–20% of servers - is a memorable, credible detail.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+
+
+
---
[⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md)
diff --git a/cloud-migration/what-are-cloud-migration-tools.md b/cloud-migration/what-are-cloud-migration-tools.md
index 0f0c0e7..1a80452 100644
--- a/cloud-migration/what-are-cloud-migration-tools.md
+++ b/cloud-migration/what-are-cloud-migration-tools.md
@@ -39,6 +39,16 @@ tags:
- "Rehearse the cutover repeatedly" is the practical advice that shows you have done one.
- Note that heterogeneous database migration is an application project, not a tooling exercise.
+
+
+## Related Concepts
+
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[How do you prevent and handle secret leaks in CI/CD pipelines?]] (`#237`): [How do you prevent and handle secret leaks in CI/CD pipelines?](../cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md)
+- [[What is Docker?]] (`#6`): [What is Docker?](../docker/what-is-docker.md)
+
+
+
---
[⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md)
diff --git a/cloud-migration/what-is-application-modernization.md b/cloud-migration/what-is-application-modernization.md
index e519f21..87ff5a8 100644
--- a/cloud-migration/what-is-application-modernization.md
+++ b/cloud-migration/what-is-application-modernization.md
@@ -35,6 +35,16 @@ tags:
- "Automate the pipeline first" is practical, underrated advice that shows delivery experience.
- Show restraint: not everything should be modernised, and saying so demonstrates judgement.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md)
diff --git a/cloud-migration/what-is-cloud-assessment.md b/cloud-migration/what-is-cloud-assessment.md
index 3ef6a19..39e7b26 100644
--- a/cloud-migration/what-is-cloud-assessment.md
+++ b/cloud-migration/what-is-cloud-assessment.md
@@ -34,6 +34,16 @@ tags:
- Right-sizing from measured utilisation, not from existing specs, is where the cost case is won or lost.
- Mention licence portability - it derails more migrations than technology does.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md)
diff --git a/cloud-migration/what-is-cloud-migration.md b/cloud-migration/what-is-cloud-migration.md
index 9adce8a..9514793 100644
--- a/cloud-migration/what-is-cloud-migration.md
+++ b/cloud-migration/what-is-cloud-migration.md
@@ -36,6 +36,16 @@ tags:
- Dependency discovery is the phase most underestimated - say so.
- Be clear that cost savings come from optimisation _after_ the move, not the move itself.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to Cloud Migration](./README.md) · [All topics](../README.md)
diff --git a/cloud-native-architecture/how-do-you-design-a-secure-highly-available-three-tier-architecture.md b/cloud-native-architecture/how-do-you-design-a-secure-highly-available-three-tier-architecture.md
index 47dad8f..2eafc7c 100644
--- a/cloud-native-architecture/how-do-you-design-a-secure-highly-available-three-tier-architecture.md
+++ b/cloud-native-architecture/how-do-you-design-a-secure-highly-available-three-tier-architecture.md
@@ -191,6 +191,16 @@ Failure walk-through - answer this before you are asked
- Walk a failure scenario unprompted ("AZ-a is gone: here is what happens at each tier"), including the ~60-second RDS failover and the fact that in-flight transactions fail so clients must retry.
- Be deliberate about multi-region: multi-AZ covers AZ failure and most SLAs; multi-region roughly doubles cost, so ask for the RTO/RPO first. See [designing a production-ready VPC on AWS](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md), [security groups versus network ACLs](../aws-engineering/what-is-the-difference-between-a-security-group-and-a-network-acl.md), [how do you design for multi-region resilience](../cloud-engineering/how-do-you-design-for-multi-region-resilience.md), [designing a system to degrade gracefully under overload](../scalability-and-high-availability/how-do-you-design-a-system-to-degrade-gracefully-under-overload.md), and [what happens when a user opens your application in a browser](../network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md).
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md)
diff --git a/cloud-native-architecture/how-do-you-troubleshoot-high-latency-in-a-microservices-architecture.md b/cloud-native-architecture/how-do-you-troubleshoot-high-latency-in-a-microservices-architecture.md
index 9ae1398..c68a69d 100644
--- a/cloud-native-architecture/how-do-you-troubleshoot-high-latency-in-a-microservices-architecture.md
+++ b/cloud-native-architecture/how-do-you-troubleshoot-high-latency-in-a-microservices-architecture.md
@@ -102,6 +102,16 @@ histogram_quantile(0.99, sum by (le) (rate(db_pool_wait_seconds_bucket[5m])))
- The senior move is questioning the synchronous chain itself - events, queues, or a read model - rather than only making each hop faster.
- Close with how you keep it fixed: a latency SLO with an error budget, per-route p99 alerts, and a fan-out budget metric. See [what are microservices](./what-are-microservices.md) and [what is the difference between a monolith and microservices](./what-is-the-difference-between-a-monolith-and-microservices.md).
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md)
diff --git a/cloud-native-architecture/what-are-microservices.md b/cloud-native-architecture/what-are-microservices.md
index a8f5e8b..4855d46 100644
--- a/cloud-native-architecture/what-are-microservices.md
+++ b/cloud-native-architecture/what-are-microservices.md
@@ -36,6 +36,16 @@ tags:
- Name the anti-pattern by name: distributed monolith, and the shared database that causes it.
- Discuss data consistency - sagas, outbox pattern, idempotency - to show you have run this in production.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md)
diff --git a/cloud-native-architecture/what-are-the-12-factor-app-principles.md b/cloud-native-architecture/what-are-the-12-factor-app-principles.md
index 7b65477..ea9a22d 100644
--- a/cloud-native-architecture/what-are-the-12-factor-app-principles.md
+++ b/cloud-native-architecture/what-are-the-12-factor-app-principles.md
@@ -38,6 +38,16 @@ Common additions for modern services: expose health endpoints, emit telemetry (m
- Connect each factor to a Kubernetes behaviour (disposability ↔ pod eviction, logs ↔ `kubectl logs`) to show applied understanding.
- Note that factor 10 (dev/prod parity) is what containers and IaC finally made achievable.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md)
diff --git a/cloud-native-architecture/what-is-cloud-native-architecture.md b/cloud-native-architecture/what-is-cloud-native-architecture.md
index ac102dd..a42a80d 100644
--- a/cloud-native-architecture/what-is-cloud-native-architecture.md
+++ b/cloud-native-architecture/what-is-cloud-native-architecture.md
@@ -32,6 +32,16 @@ The CNCF definition names the enabling technologies: containers, service meshes,
- "Designed for failure" is the phrase that captures the mindset shift.
- Show judgement by naming when a monolith is the better architecture - seniority is visible in restraint.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md)
diff --git a/cloud-native-architecture/what-is-event-driven-architecture.md b/cloud-native-architecture/what-is-event-driven-architecture.md
index f9498bb..90710b1 100644
--- a/cloud-native-architecture/what-is-event-driven-architecture.md
+++ b/cloud-native-architecture/what-is-event-driven-architecture.md
@@ -55,6 +55,16 @@ tags:
- The outbox pattern is the standard solution to "how do you avoid updating the database and failing to publish?"
- Mention schema registries and versioning; event contracts break teams silently otherwise.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md)
diff --git a/cloud-native-architecture/what-is-service-mesh.md b/cloud-native-architecture/what-is-service-mesh.md
index c83e059..9901705 100644
--- a/cloud-native-architecture/what-is-service-mesh.md
+++ b/cloud-native-architecture/what-is-service-mesh.md
@@ -52,6 +52,16 @@ spec:
- Automatic mTLS is the single most compelling reason teams adopt a mesh; say so.
- Be honest about the operational cost and name the situation where you would not use one.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md)
diff --git a/cloud-native-architecture/what-is-the-difference-between-a-monolith-and-microservices.md b/cloud-native-architecture/what-is-the-difference-between-a-monolith-and-microservices.md
index e0dc094..7c32d7f 100644
--- a/cloud-native-architecture/what-is-the-difference-between-a-monolith-and-microservices.md
+++ b/cloud-native-architecture/what-is-the-difference-between-a-monolith-and-microservices.md
@@ -74,6 +74,16 @@ publish("order.created", {"order_id": order.id, "total": order.total})
- Know the phrase "distributed monolith" and why it is the worst outcome - services that cannot deploy independently.
- If your experience is only monoliths, say so and describe where you would draw the first boundary and why. That answers better than pretending.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Cloud Native Architecture](./README.md) · [All topics](../README.md)
diff --git a/cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md b/cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md
index 5ec808b..edd4953 100644
--- a/cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md
+++ b/cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md
@@ -71,6 +71,16 @@ module "cloud_glue" {
- Distinguish reversibility from portability. Full portability is a cost most teams should decline.
- Expect the follow-up "so when _is_ multi-cloud right?" Have an answer ready: acquisitions, a hard customer or regulatory requirement, or one specific service you cannot get elsewhere.
+
+
+## Related Concepts
+
+- [[How do you design a production-ready VPC on AWS?]] (`#191`): [How do you design a production-ready VPC on AWS?](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md)
+- [[What is the difference between ECS, EKS, and Fargate?]] (`#193`): [What is the difference between ECS, EKS, and Fargate?](../aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md)
+- [[How do Auto Scaling groups and load balancers work together on AWS?]] (`#194`): [How do Auto Scaling groups and load balancers work together on AWS?](../aws-engineering/how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md)
+
+
+
---
[⬅ Back to Cloud Platforms](./README.md) · [All topics](../README.md)
diff --git a/cloud-platforms/how-does-networking-differ-across-aws-azure-and-gcp.md b/cloud-platforms/how-does-networking-differ-across-aws-azure-and-gcp.md
index 19bdb4a..52e5697 100644
--- a/cloud-platforms/how-does-networking-differ-across-aws-azure-and-gcp.md
+++ b/cloud-platforms/how-does-networking-differ-across-aws-azure-and-gcp.md
@@ -106,6 +106,16 @@ nslookup mydb.database.windows.net # must return a 10.x address, not a public
- Have the private-endpoint DNS trap ready - it is the most common practical failure and shows hands-on time.
- Bring up CIDR planning and GKE secondary ranges. Address exhaustion forcing a cluster rebuild is a story interviewers recognise immediately.
+
+
+## Related Concepts
+
+- [[How do you design a production-ready VPC on AWS?]] (`#191`): [How do you design a production-ready VPC on AWS?](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md)
+- [[How does AWS IAM evaluate a request?]] (`#192`): [How does AWS IAM evaluate a request?](../aws-engineering/how-does-aws-iam-evaluate-a-request.md)
+- [[What is the difference between ECS, EKS, and Fargate?]] (`#193`): [What is the difference between ECS, EKS, and Fargate?](../aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md)
+
+
+
---
[⬅ Back to Cloud Platforms](./README.md) · [All topics](../README.md)
diff --git a/cloud-platforms/what-are-the-different-types-of-cloud-services.md b/cloud-platforms/what-are-the-different-types-of-cloud-services.md
index 288772c..96bb396 100644
--- a/cloud-platforms/what-are-the-different-types-of-cloud-services.md
+++ b/cloud-platforms/what-are-the-different-types-of-cloud-services.md
@@ -41,6 +41,16 @@ Who manages what:
- Give a concrete example of each from a platform you have used.
- Good closing judgement: "use the highest-level service that meets the requirement" - it minimises undifferentiated work.
+
+
+## Related Concepts
+
+- [[How do you design a production-ready VPC on AWS?]] (`#191`): [How do you design a production-ready VPC on AWS?](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md)
+- [[What is the difference between ECS, EKS, and Fargate?]] (`#193`): [What is the difference between ECS, EKS, and Fargate?](../aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md)
+- [[How do you run a highly available database on AWS?]] (`#196`): [How do you run a highly available database on AWS?](../aws-engineering/how-do-you-run-a-highly-available-database-on-aws.md)
+
+
+
---
[⬅ Back to Cloud Platforms](./README.md) · [All topics](../README.md)
diff --git a/cloud-platforms/what-is-aws-amazon-web-services.md b/cloud-platforms/what-is-aws-amazon-web-services.md
index 65405d8..1172c9b 100644
--- a/cloud-platforms/what-is-aws-amazon-web-services.md
+++ b/cloud-platforms/what-is-aws-amazon-web-services.md
@@ -46,6 +46,16 @@ aws ec2 describe-instances \
- Understand the AZ/region distinction well enough to design a highly available architecture on a whiteboard.
- Know a cost lever or two - S3 lifecycle policies, Graviton instances, savings plans.
+
+
+## Related Concepts
+
+- [[How do you design a production-ready VPC on AWS?]] (`#191`): [How do you design a production-ready VPC on AWS?](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md)
+- [[What is the difference between ECS, EKS, and Fargate?]] (`#193`): [What is the difference between ECS, EKS, and Fargate?](../aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md)
+- [[How do Auto Scaling groups and load balancers work together on AWS?]] (`#194`): [How do Auto Scaling groups and load balancers work together on AWS?](../aws-engineering/how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md)
+
+
+
---
[⬅ Back to Cloud Platforms](./README.md) · [All topics](../README.md)
diff --git a/cloud-platforms/what-is-azure.md b/cloud-platforms/what-is-azure.md
index 060dcfe..ac9080b 100644
--- a/cloud-platforms/what-is-azure.md
+++ b/cloud-platforms/what-is-azure.md
@@ -41,6 +41,16 @@ Azure organises resources hierarchically: **management groups → subscriptions
- Managed identities are Azure's answer to "how do you avoid secrets in config?"
- If the role is hybrid-cloud, mention Azure Arc for managing on-premises and other-cloud resources.
+
+
+## Related Concepts
+
+- [[How do you design a production-ready VPC on AWS?]] (`#191`): [How do you design a production-ready VPC on AWS?](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md)
+- [[What is the difference between ECS, EKS, and Fargate?]] (`#193`): [What is the difference between ECS, EKS, and Fargate?](../aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md)
+- [[What are the S3 storage classes and when do you use each?]] (`#195`): [What are the S3 storage classes and when do you use each?](../aws-engineering/what-are-the-s3-storage-classes-and-when-do-you-use-each.md)
+
+
+
---
[⬅ Back to Cloud Platforms](./README.md) · [All topics](../README.md)
diff --git a/cloud-platforms/what-is-cloud-computing.md b/cloud-platforms/what-is-cloud-computing.md
index 5642275..1004d4e 100644
--- a/cloud-platforms/what-is-cloud-computing.md
+++ b/cloud-platforms/what-is-cloud-computing.md
@@ -35,6 +35,16 @@ The **shared responsibility model** is the concept interviewers probe: the provi
- Cloud is not automatically cheaper - it is elastic. Steady, predictable load can be cheaper on-premises.
- Mention the trade-offs: vendor lock-in, egress costs, and the operational cost of doing it badly.
+
+
+## Related Concepts
+
+- [[How do you design a production-ready VPC on AWS?]] (`#191`): [How do you design a production-ready VPC on AWS?](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md)
+- [[How do you structure a multi-account AWS organisation?]] (`#197`): [How do you structure a multi-account AWS organisation?](../aws-engineering/how-do-you-structure-a-multi-account-aws-organisation.md)
+- [[How do you secure pod access to AWS resources using EKS Pod Identity or IRSA?]] (`#247`): [How do you secure pod access to AWS resources using EKS Pod Identity or IRSA?](../aws-engineering/how-do-you-secure-pod-access-to-aws-resources-using-eks-pod-identity-or-irsa.md)
+
+
+
---
[⬅ Back to Cloud Platforms](./README.md) · [All topics](../README.md)
diff --git a/cloud-platforms/what-is-google-cloud-platform-gcp.md b/cloud-platforms/what-is-google-cloud-platform-gcp.md
index 7b2c3c4..b5242e0 100644
--- a/cloud-platforms/what-is-google-cloud-platform-gcp.md
+++ b/cloud-platforms/what-is-google-cloud-platform-gcp.md
@@ -36,6 +36,16 @@ Networking is distinctive: VPCs are global rather than regional, with subnets pe
- Workload Identity Federation is how GCP avoids service-account key files - say it when asked about credentials.
- If the interview leans data, BigQuery's separation of storage and compute is the concept to explain.
+
+
+## Related Concepts
+
+- [[How do you design a production-ready VPC on AWS?]] (`#191`): [How do you design a production-ready VPC on AWS?](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md)
+- [[What is the difference between ECS, EKS, and Fargate?]] (`#193`): [What is the difference between ECS, EKS, and Fargate?](../aws-engineering/what-is-the-difference-between-ecs-eks-and-fargate.md)
+- [[How do Auto Scaling groups and load balancers work together on AWS?]] (`#194`): [How do Auto Scaling groups and load balancers work together on AWS?](../aws-engineering/how-do-auto-scaling-groups-and-load-balancers-work-together-on-aws.md)
+
+
+
---
[⬅ Back to Cloud Platforms](./README.md) · [All topics](../README.md)
diff --git a/configuration-management/compare-different-configuration-management-tools.md b/configuration-management/compare-different-configuration-management-tools.md
index 2e1d4ea..e89d38a 100644
--- a/configuration-management/compare-different-configuration-management-tools.md
+++ b/configuration-management/compare-different-configuration-management-tools.md
@@ -38,6 +38,16 @@ tags:
- Naming the shift towards immutable infrastructure shows current thinking.
- Team familiarity is a legitimate deciding factor; say so, because it is true in practice.
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Configuration Management](./README.md) · [All topics](../README.md)
diff --git a/configuration-management/how-do-you-debug-and-safely-test-an-ansible-playbook.md b/configuration-management/how-do-you-debug-and-safely-test-an-ansible-playbook.md
index 5cc4558..4b5ed6c 100644
--- a/configuration-management/how-do-you-debug-and-safely-test-an-ansible-playbook.md
+++ b/configuration-management/how-do-you-debug-and-safely-test-an-ansible-playbook.md
@@ -183,6 +183,16 @@ molecule test # the whole cycle, including destroy - what CI runs
- Diagnose "yum: command not found" as wrong-module-for-OS, missing interpreter, or a `PATH`/`become` issue, and recommend `ansible.builtin.package`.
- Mention the task debugger (`debugger: on_failed`) and Molecule's idempotence scenario - both are things most candidates have never used. See [structuring an Ansible role](./how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md), [managing inventories and variables](./how-do-you-manage-ansible-inventories-and-variables-across-environments.md), [running Ansible at scale](./how-do-you-run-ansible-at-scale-across-thousands-of-hosts.md), and [what is Ansible](../infrastructure-as-code/what-is-ansible.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to Configuration Management](./README.md) · [All topics](../README.md)
diff --git a/configuration-management/how-do-you-handle-secrets-in-ansible-with-vault.md b/configuration-management/how-do-you-handle-secrets-in-ansible-with-vault.md
index 72b2e6a..5aa884f 100644
--- a/configuration-management/how-do-you-handle-secrets-in-ansible-with-vault.md
+++ b/configuration-management/how-do-you-handle-secrets-in-ansible-with-vault.md
@@ -182,6 +182,16 @@ ansible-playbook site.yml --check --diff -i inventories/prod # --diff can pr
- If asked whether you can encrypt a whole playbook, say yes and then say why you would not - encrypt variables, not logic.
- Mention that secrets are decrypted on the control node in memory, and that writing them to a managed host needs restrictive file modes and ownership. See [managing Ansible inventories and variables](./how-do-you-manage-ansible-inventories-and-variables-across-environments.md), [managing secrets in CI/CD pipelines](../devsecops/how-do-you-manage-secrets-in-ci-cd-pipelines.md), [rotating secrets without downtime](../devsecops/how-do-you-rotate-secrets-without-downtime.md), and [preventing secret leaks in pipelines](../cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md).
+
+
+## Related Concepts
+
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+
+
+
---
[⬅ Back to Configuration Management](./README.md) · [All topics](../README.md)
diff --git a/configuration-management/how-do-you-manage-ansible-inventories-and-variables-across-environments.md b/configuration-management/how-do-you-manage-ansible-inventories-and-variables-across-environments.md
index d0fb66c..7505e87 100644
--- a/configuration-management/how-do-you-manage-ansible-inventories-and-variables-across-environments.md
+++ b/configuration-management/how-do-you-manage-ansible-inventories-and-variables-across-environments.md
@@ -186,6 +186,16 @@ ansible-playbook site.yml -i inventories/prod --limit @site.retry
- Cover the four ways to pass parameters (`--extra-vars`, `vars_prompt`, `vars_files`, role params) and say which you would use in CI.
- Mention `ansible-inventory --graph --vars` as the way to settle precedence arguments with evidence. See [how do you handle secrets in Ansible with Vault](./how-do-you-handle-secrets-in-ansible-with-vault.md), [structuring an Ansible role](./how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md), [running Ansible at scale](./how-do-you-run-ansible-at-scale-across-thousands-of-hosts.md), and [patching hundreds of servers safely](./how-do-you-patch-hundreds-of-servers-safely.md).
+
+
+## Related Concepts
+
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Configuration Management](./README.md) · [All topics](../README.md)
diff --git a/configuration-management/how-do-you-patch-hundreds-of-servers-safely.md b/configuration-management/how-do-you-patch-hundreds-of-servers-safely.md
index 6472f66..5c1d543 100644
--- a/configuration-management/how-do-you-patch-hundreds-of-servers-safely.md
+++ b/configuration-management/how-do-you-patch-hundreds-of-servers-safely.md
@@ -135,6 +135,16 @@ aws ec2 create-snapshot --volume-id vol-0abc ... # take this BEFORE patching
- Volunteer the immutable alternative and why it is better where the workload allows: replacing an instance is a deployment with a known rollback, whereas patching mutates state and can half-fail.
- Close on cadence and prioritisation: frequent small patch runs beat quarterly big ones, and urgency comes from exploitability and exposure rather than CVE counts. See [how do you manage services in Linux](../linux-administration/how-do-you-manage-services-in-linux.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+
+
+
---
[⬅ Back to Configuration Management](./README.md) · [All topics](../README.md)
diff --git a/configuration-management/how-do-you-run-ansible-at-scale-across-thousands-of-hosts.md b/configuration-management/how-do-you-run-ansible-at-scale-across-thousands-of-hosts.md
index 6395022..751ac4c 100644
--- a/configuration-management/how-do-you-run-ansible-at-scale-across-thousands-of-hosts.md
+++ b/configuration-management/how-do-you-run-ansible-at-scale-across-thousands-of-hosts.md
@@ -113,6 +113,16 @@ ANSIBLE_STRATEGY=free ansible-playbook patch.yml # independent hosts, no batch
- Volunteer the limit: past a certain scale, bake images and replace instances. Knowing when the tool is the wrong tool is the senior signal in this question.
- Have the variable-precedence trap ready - a value set in the wrong layer that made staging and prod diverge. It is a universally recognised war story.
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to Configuration Management](./README.md) · [All topics](../README.md)
diff --git a/configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md b/configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md
index 84e3a64..61933fd 100644
--- a/configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md
+++ b/configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md
@@ -185,6 +185,16 @@ ansible-galaxy install -r requirements.yml -p roles/ --force
- Answer the shared-custom-plugins question with collections rather than copying plugin directories into every role.
- Close on Molecule with an idempotence scenario plus `ansible-lint` in CI - very few candidates mention testing roles at all. See [what is Ansible](../infrastructure-as-code/what-is-ansible.md), [managing Ansible inventories and variables across environments](./how-do-you-manage-ansible-inventories-and-variables-across-environments.md), [debugging and safely testing a playbook](./how-do-you-debug-and-safely-test-an-ansible-playbook.md), and [running Ansible at scale](./how-do-you-run-ansible-at-scale-across-thousands-of-hosts.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+
+
+
---
[⬅ Back to Configuration Management](./README.md) · [All topics](../README.md)
diff --git a/configuration-management/what-is-chef.md b/configuration-management/what-is-chef.md
index c86f0ce..57f99c8 100644
--- a/configuration-management/what-is-chef.md
+++ b/configuration-management/what-is-chef.md
@@ -56,6 +56,16 @@ end
- InSpec is worth highlighting - it outlives Chef itself as a compliance-as-code tool.
- Position it against Puppet (Ruby DSL and imperative-friendly vs declarative) and Ansible (agent vs agentless).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Configuration Management](./README.md) · [All topics](../README.md)
diff --git a/configuration-management/what-is-configuration-management.md b/configuration-management/what-is-configuration-management.md
index 35a5a8f..a723fac 100644
--- a/configuration-management/what-is-configuration-management.md
+++ b/configuration-management/what-is-configuration-management.md
@@ -35,6 +35,16 @@ Without it, servers become snowflakes: each hand-tuned differently, none reprodu
- Explain drift and how you detect it before you are asked.
- Show awareness that containers and immutable infrastructure change the role of these tools rather than eliminating it.
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Configuration Management](./README.md) · [All topics](../README.md)
diff --git a/configuration-management/what-is-puppet.md b/configuration-management/what-is-puppet.md
index f4dd8f2..ce8dc78 100644
--- a/configuration-management/what-is-puppet.md
+++ b/configuration-management/what-is-puppet.md
@@ -61,6 +61,16 @@ class profile::nginx (
- Roles and profiles is the design pattern interviewers expect from anyone who has run Puppet at scale.
- Contrast with Ansible: pull/agent/continuous enforcement versus push/agentless/on-demand.
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to Configuration Management](./README.md) · [All topics](../README.md)
diff --git a/configuration-management/what-is-salt-saltstack.md b/configuration-management/what-is-salt-saltstack.md
index a74a1b9..7644f22 100644
--- a/configuration-management/what-is-salt-saltstack.md
+++ b/configuration-management/what-is-salt-saltstack.md
@@ -60,6 +60,16 @@ salt -G 'os:Ubuntu' state.apply nginx # target by grain
- Pillar is the secrets answer; grains are facts, not secrets.
- Be ready to say why most teams still pick Ansible: simplicity and ubiquity beat raw speed for typical fleet sizes.
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to Configuration Management](./README.md) · [All topics](../README.md)
diff --git a/container-orchestration-advanced/how-do-you-back-up-and-restore-a-kubernetes-cluster.md b/container-orchestration-advanced/how-do-you-back-up-and-restore-a-kubernetes-cluster.md
index dabb642..bb2bcbb 100644
--- a/container-orchestration-advanced/how-do-you-back-up-and-restore-a-kubernetes-cluster.md
+++ b/container-orchestration-advanced/how-do-you-back-up-and-restore-a-kubernetes-cluster.md
@@ -139,6 +139,16 @@ Restore runbook - rehearsed quarterly, RTO measured not estimated
- Bring up backup immutability and a separate account. If an attacker holds cluster credentials, unprotected backups are the next target.
- Close on rehearsal: describe the ordered runbook, say how often you test it, and give a measured RTO. "We restore one namespace monthly and rebuild a cluster annually" is the answer that ends the question. See [what is backup and disaster recovery](../backup-and-disaster-recovery/what-is-backup-and-disaster-recovery.md), [verifying that your backups can actually be restored](../backup-and-disaster-recovery/how-do-you-verify-that-your-backups-can-actually-be-restored.md), [executing a DR failover](../backup-and-disaster-recovery/how-do-you-execute-a-disaster-recovery-failover-with-minimal-rto-and-rpo.md), and [what happens when a control-plane node or etcd fails](../kubernetes/what-happens-when-a-kubernetes-control-plane-node-or-etcd-fails.md).
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md)
diff --git a/container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md b/container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md
index 665a20e..ca2bc4a 100644
--- a/container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md
+++ b/container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md
@@ -160,6 +160,16 @@ kubectl get pods -A -o json | jq -r '.items[] | [.metadata.labels.tenant,
- Name upgrade cadence as the honest limit of namespace-based tenancy - control-plane and CRD versions are cluster-wide - and offer virtual clusters (vcluster) as the middle ground and separate clusters or sandboxed runtimes for hostile workloads.
- Say you roll new admission policies in audit mode first. Enforcing a policy across a live estate without an audit pass is a self-inflicted outage. See [how does RBAC work in Kubernetes](../kubernetes/how-does-rbac-work-in-kubernetes.md), [requests, limits, and QoS classes](../kubernetes/how-do-requests-limits-and-qos-classes-work-in-kubernetes.md), [NetworkPolicies](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md), [admission control with Kyverno or OPA Gatekeeper](../devsecops/how-do-you-enforce-kubernetes-admission-control-with-kyverno-or-opa-gatekeeper.md), and [self-service environments for developers](../platform-engineering/how-do-you-provide-self-service-environments-to-developers.md).
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+
+
+
---
[⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md)
diff --git a/container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md b/container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md
index 2cc9e2f..e2b982f 100644
--- a/container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md
+++ b/container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md
@@ -119,6 +119,16 @@ Traffic and data, active/active reads with a single write region
- Volunteer the honest cost: certificates, secrets, upgrades, observability labelling, on-call, spend. And say that a three-zone single cluster already survives a data-centre failure, so multi-cluster needs a requirement it alone can meet.
- Close on testing the failover regularly. An untested standby has never once worked first time.
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md)
diff --git a/container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md b/container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md
index 9e85fcf..b2eae2a 100644
--- a/container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md
+++ b/container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md
@@ -134,6 +134,16 @@ kubectl get pvc -n data # PVCs remain by design -
- The `partition` field in `updateStrategy` is the detail that marks StatefulSet experience - a built-in canary for stateful rollouts.
- Finish with the architectural question: should this be managed instead? A candidate who can justify running data in Kubernetes _and_ knows when not to is the one who gets hired. See [what are StatefulSets in Kubernetes](./what-are-statefulsets-in-kubernetes.md).
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md)
diff --git a/container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md b/container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md
index 3a2469c..d465761 100644
--- a/container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md
+++ b/container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md
@@ -107,6 +107,16 @@ resources: {{- toYaml (.Values.resources | default dict) | nindent 12 }}
- Distinguish "Helm succeeded but Pods are broken" clearly - at that point Helm is irrelevant and you are doing ordinary Pod debugging.
- Close on the production preference for GitOps, where rollback is `git revert` and the cluster state is not the product of someone's shell history.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+
+
+
---
[⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md)
diff --git a/container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md b/container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md
index 1060d76..eea853f 100644
--- a/container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md
+++ b/container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md
@@ -116,6 +116,16 @@ spec:
- Mention add-on and webhook compatibility, and that a broken admission webhook blocks all writes - a failure mode people only learn once.
- Close with the strategy: upgrade small and often, or move to immutable clusters and turn upgrades into deployments. See [what is container orchestration and why do you need it](./what-is-container-orchestration-and-why-do-you-need-it.md).
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md)
diff --git a/container-orchestration-advanced/what-are-customresourcedefinitions-and-operators-in-kubernetes.md b/container-orchestration-advanced/what-are-customresourcedefinitions-and-operators-in-kubernetes.md
index f48a50e..ce4136f 100644
--- a/container-orchestration-advanced/what-are-customresourcedefinitions-and-operators-in-kubernetes.md
+++ b/container-orchestration-advanced/what-are-customresourcedefinitions-and-operators-in-kubernetes.md
@@ -161,6 +161,16 @@ kubectl patch pgc orders-db -n payments -p '{"metadata":{"finalizers":null}}' --
- Know the Helm CRD lifecycle gap (`crds/` is install-once) and that deleting a CRD deletes all its instances. Both are operational scars worth showing.
- If asked how you would run a shell script before every container starts, note that this is an init container's job, not an operator's - and an operator would be the tool if you needed it enforced across every workload, via a mutating webhook. See [what is inside a Helm chart](./what-is-inside-a-helm-chart-and-how-do-you-customise-one.md), [running a multi-tenant Kubernetes cluster](./how-do-you-run-a-multi-tenant-kubernetes-cluster.md), [Kubernetes admission control with Kyverno or OPA Gatekeeper](../devsecops/how-do-you-enforce-kubernetes-admission-control-with-kyverno-or-opa-gatekeeper.md), and [what is Crossplane and how does it compare to Terraform](../platform-engineering/what-is-crossplane-and-how-does-it-compare-to-terraform.md).
+
+
+## Related Concepts
+
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+
+
+
---
[⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md)
diff --git a/container-orchestration-advanced/what-are-daemonsets-in-kubernetes.md b/container-orchestration-advanced/what-are-daemonsets-in-kubernetes.md
index 36abd88..18d297a 100644
--- a/container-orchestration-advanced/what-are-daemonsets-in-kubernetes.md
+++ b/container-orchestration-advanced/what-are-daemonsets-in-kubernetes.md
@@ -58,6 +58,16 @@ spec:
- Multiply resource requests by node count when discussing cost - it shows scale awareness.
- Contrast with a Deployment: DaemonSet replica count is derived from the node count, not declared.
+
+
+## Related Concepts
+
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md)
diff --git a/container-orchestration-advanced/what-are-statefulsets-in-kubernetes.md b/container-orchestration-advanced/what-are-statefulsets-in-kubernetes.md
index 8ed043c..04ed0b6 100644
--- a/container-orchestration-advanced/what-are-statefulsets-in-kubernetes.md
+++ b/container-orchestration-advanced/what-are-statefulsets-in-kubernetes.md
@@ -58,6 +58,16 @@ spec:
- "PVCs are not deleted with the StatefulSet" is a favourite follow-up.
- A strong closing point: for production databases, prefer a managed service or a mature operator over a hand-rolled StatefulSet.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md)
diff --git a/container-orchestration-advanced/what-is-container-orchestration-and-why-do-you-need-it.md b/container-orchestration-advanced/what-is-container-orchestration-and-why-do-you-need-it.md
index 0ff784e..bab570a 100644
--- a/container-orchestration-advanced/what-is-container-orchestration-and-why-do-you-need-it.md
+++ b/container-orchestration-advanced/what-is-container-orchestration-and-why-do-you-need-it.md
@@ -103,6 +103,16 @@ kubectl rollout undo deploy/api # and the rollback
- Mention that resource `requests` are what the scheduler reads. It is a small detail that lands well.
- If asked "when would you not use Kubernetes?", say three containers on one host, a single-team app, or no capacity to operate a cluster. Honesty scores here.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md)
diff --git a/container-orchestration-advanced/what-is-container-runtime-interface-cri.md b/container-orchestration-advanced/what-is-container-runtime-interface-cri.md
index 186e4ec..3ada89f 100644
--- a/container-orchestration-advanced/what-is-container-runtime-interface-cri.md
+++ b/container-orchestration-advanced/what-is-container-runtime-interface-cri.md
@@ -61,6 +61,16 @@ crictl ps # the CRI-level equivalent of docker ps, on a node
- The kubelet → CRI → OCI layering is the diagram to describe.
- RuntimeClass with gVisor or Kata is the answer to "how do you run untrusted workloads?"
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md)
diff --git a/container-orchestration-advanced/what-is-helm.md b/container-orchestration-advanced/what-is-helm.md
index 82f46d9..2a15fc4 100644
--- a/container-orchestration-advanced/what-is-helm.md
+++ b/container-orchestration-advanced/what-is-helm.md
@@ -61,6 +61,16 @@ helm history api && helm rollback api 3
- `--atomic` plus `--wait` is the answer to "how do you make Helm deployments safe?"
- Know the Helm-versus-Kustomize debate and have a reasoned preference.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md)
diff --git a/container-orchestration-advanced/what-is-inside-a-helm-chart-and-how-do-you-customise-one.md b/container-orchestration-advanced/what-is-inside-a-helm-chart-and-how-do-you-customise-one.md
index 90e6ea3..861fd14 100644
--- a/container-orchestration-advanced/what-is-inside-a-helm-chart-and-how-do-you-customise-one.md
+++ b/container-orchestration-advanced/what-is-inside-a-helm-chart-and-how-do-you-customise-one.md
@@ -167,6 +167,16 @@ helm rollback payments 7 -n prod --wait
- Be clear about secrets: not in `values.yaml`, prefer an `existingSecret` reference, and remember `helm get values` exposes anything you passed with `--set`.
- Give a balanced Helm-versus-Kustomize answer rather than a preference. See [what is Helm](./what-is-helm.md), [troubleshooting a failed Helm release](./how-do-you-troubleshoot-a-failed-helm-release.md), [what is ArgoCD](../devops-tools-and-automation/what-is-argocd.md), and [ConfigMaps and Secrets](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md).
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+
+
+
---
[⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md)
diff --git a/container-orchestration-advanced/what-is-istio.md b/container-orchestration-advanced/what-is-istio.md
index 40daa1e..5f3cb97 100644
--- a/container-orchestration-advanced/what-is-istio.md
+++ b/container-orchestration-advanced/what-is-istio.md
@@ -56,6 +56,16 @@ spec:
- Ambient mode is the current answer to the sidecar overhead criticism - worth knowing.
- Compare with Linkerd (simpler, lighter, less featureful) to show you evaluated options.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Container Orchestration Advanced](./README.md) · [All topics](../README.md)
diff --git a/core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md b/core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md
index ecafce5..5b804e8 100644
--- a/core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md
+++ b/core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md
@@ -87,6 +87,16 @@ gh pr list --state merged --limit 200 --json mergedAt,createdAt \
- Address the change-advisory board directly: replace the manual gate with pipeline evidence rather than arguing it away. This shows you have worked in a regulated environment.
- Acknowledge the human side - QA role changes, on-call fear - and answer it with data rather than enthusiasm.
+
+
+## Related Concepts
+
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What is the difference between Continuous Delivery and Continuous Deployment?]] (`#20`): [What is the difference between Continuous Delivery and Continuous Deployment?](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Core DevOps Concepts](./README.md) · [All topics](../README.md)
diff --git a/core-devops-concepts/what-are-the-benefits-of-devops.md b/core-devops-concepts/what-are-the-benefits-of-devops.md
index 850394e..010a5c6 100644
--- a/core-devops-concepts/what-are-the-benefits-of-devops.md
+++ b/core-devops-concepts/what-are-the-benefits-of-devops.md
@@ -33,6 +33,16 @@ tags:
- Note the counter-intuitive one - speed and stability rise together; they are not a trade-off.
- Be honest about costs: tooling investment, upskilling, and the discipline of test automation.
+
+
+## Related Concepts
+
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[What is GitLab CI?]] (`#19`): [What is GitLab CI?](../cicd/what-is-gitlab-ci.md)
+
+
+
---
[⬅ Back to Core DevOps Concepts](./README.md) · [All topics](../README.md)
diff --git a/core-devops-concepts/what-is-continuous-delivery.md b/core-devops-concepts/what-is-continuous-delivery.md
index 88edbe0..bda99c6 100644
--- a/core-devops-concepts/what-is-continuous-delivery.md
+++ b/core-devops-concepts/what-is-continuous-delivery.md
@@ -40,6 +40,16 @@ commit → build & unit tests → package artifact → deploy to staging
- Emphasise the immutable artifact - rebuilding per environment is a classic anti-pattern.
- Mention database migrations, which are usually the hardest part of making delivery truly continuous.
+
+
+## Related Concepts
+
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[What are Jenkins Pipelines?]] (`#18`): [What are Jenkins Pipelines?](../cicd/what-are-jenkins-pipelines.md)
+
+
+
---
[⬅ Back to Core DevOps Concepts](./README.md) · [All topics](../README.md)
diff --git a/core-devops-concepts/what-is-continuous-deployment.md b/core-devops-concepts/what-is-continuous-deployment.md
index db67e36..df8cfb4 100644
--- a/core-devops-concepts/what-is-continuous-deployment.md
+++ b/core-devops-concepts/what-is-continuous-deployment.md
@@ -49,6 +49,16 @@ strategy:
- Feature flags are the answer to "how do you ship unfinished work continuously?"
- Have a view on when _not_ to use it - that judgement reads as senior.
+
+
+## Related Concepts
+
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[What are Jenkins Pipelines?]] (`#18`): [What are Jenkins Pipelines?](../cicd/what-are-jenkins-pipelines.md)
+
+
+
---
[⬅ Back to Core DevOps Concepts](./README.md) · [All topics](../README.md)
diff --git a/core-devops-concepts/what-is-continuous-integration.md b/core-devops-concepts/what-is-continuous-integration.md
index 0d4793b..5fca369 100644
--- a/core-devops-concepts/what-is-continuous-integration.md
+++ b/core-devops-concepts/what-is-continuous-integration.md
@@ -55,6 +55,16 @@ jobs:
- Mention trunk-based development as the branching model that makes CI genuine.
- Know what you do about flaky tests - quarantine, retry budgets, and a fix deadline.
+
+
+## Related Concepts
+
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[What are Jenkins Pipelines?]] (`#18`): [What are Jenkins Pipelines?](../cicd/what-are-jenkins-pipelines.md)
+
+
+
---
[⬅ Back to Core DevOps Concepts](./README.md) · [All topics](../README.md)
diff --git a/core-devops-concepts/what-is-devops.md b/core-devops-concepts/what-is-devops.md
index ff7a3ea..7f817e0 100644
--- a/core-devops-concepts/what-is-devops.md
+++ b/core-devops-concepts/what-is-devops.md
@@ -42,6 +42,16 @@ A concrete before/after for a single change:
- Anchor the answer in the four DORA metrics - it shows you think in outcomes.
- Have one story ready about a cultural change you made, not just a pipeline you built.
+
+
+## Related Concepts
+
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[What is the difference between Continuous Delivery and Continuous Deployment?]] (`#20`): [What is the difference between Continuous Delivery and Continuous Deployment?](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md)
+
+
+
---
[⬅ Back to Core DevOps Concepts](./README.md) · [All topics](../README.md)
diff --git a/database-management-in-devops/how-do-you-change-a-production-database-schema-without-downtime.md b/database-management-in-devops/how-do-you-change-a-production-database-schema-without-downtime.md
index 8870c2a..7a7aab9 100644
--- a/database-management-in-devops/how-do-you-change-a-production-database-schema-without-downtime.md
+++ b/database-management-in-devops/how-do-you-change-a-production-database-schema-without-downtime.md
@@ -122,6 +122,16 @@ ALTER TABLE users DROP COLUMN name; -- metadata-only in PostgreS
- Mention automated migration linting in CI, and rehearsal on a restored production-sized snapshot to get a real duration.
- Be willing to say some changes need a maintenance window, and describe read-only degraded mode as the way to shrink the impact. Honesty beats absolutism here. See [what is database DevOps](./what-is-database-devops.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md)
diff --git a/database-management-in-devops/how-do-you-troubleshoot-a-database-that-is-slow-or-timing-out-under-load.md b/database-management-in-devops/how-do-you-troubleshoot-a-database-that-is-slow-or-timing-out-under-load.md
index b8582ae..f26006e 100644
--- a/database-management-in-devops/how-do-you-troubleshoot-a-database-that-is-slow-or-timing-out-under-load.md
+++ b/database-management-in-devops/how-do-you-troubleshoot-a-database-that-is-slow-or-timing-out-under-load.md
@@ -108,6 +108,16 @@ The pool-exhaustion shape - why "the database is slow" was wrong
- Know the limits of the popular answers - read replicas do not help writes and add lag; caching needs an invalidation story; sharding changes the application.
- Close on the leading indicators you would alert on, and on load testing with production-shaped data because plans change with cardinality.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md)
diff --git a/database-management-in-devops/what-are-database-migration-tools.md b/database-management-in-devops/what-are-database-migration-tools.md
index 4ea2257..83de335 100644
--- a/database-management-in-devops/what-are-database-migration-tools.md
+++ b/database-management-in-devops/what-are-database-migration-tools.md
@@ -37,6 +37,16 @@ tags:
- For very large tables, name `gh-ost` or `pt-online-schema-change` - it signals real scale experience.
- Explain where migrations run in the deployment sequence, and how you prevent two pods running them at once.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md)
diff --git a/database-management-in-devops/what-does-a-devops-engineer-need-to-know-about-databases.md b/database-management-in-devops/what-does-a-devops-engineer-need-to-know-about-databases.md
index 803f3b0..fa82f82 100644
--- a/database-management-in-devops/what-does-a-devops-engineer-need-to-know-about-databases.md
+++ b/database-management-in-devops/what-does-a-devops-engineer-need-to-know-about-databases.md
@@ -80,6 +80,16 @@ aws rds restore-db-instance-to-point-in-time \
- Mention connection pooling and the replicas × pool-size arithmetic. It is a real outage cause that few candidates volunteer.
- Have five database metrics ready. Replication lag and long-running transactions are the two that signal genuine hands-on time.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md)
diff --git a/database-management-in-devops/what-is-database-backup-strategy.md b/database-management-in-devops/what-is-database-backup-strategy.md
index 78741fb..eba79f9 100644
--- a/database-management-in-devops/what-is-database-backup-strategy.md
+++ b/database-management-in-devops/what-is-database-backup-strategy.md
@@ -54,6 +54,16 @@ pg_basebackup -D /backup/base -Ft -z -Xs -P
- "Replication is not backup" is a line worth saying out loud.
- Close with restore testing and the measured restore time - it is the most credible evidence.
+
+
+## Related Concepts
+
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md)
diff --git a/database-management-in-devops/what-is-database-devops.md b/database-management-in-devops/what-is-database-devops.md
index 3c317de..0ac2962 100644
--- a/database-management-in-devops/what-is-database-devops.md
+++ b/database-management-in-devops/what-is-database-devops.md
@@ -49,6 +49,16 @@ CREATE INDEX CONCURRENTLY idx_users_email_verified ON users (email_verified);
- Mention that destructive changes (drop column, rename) are never done in the same release as the code change.
- Long-running locks on large tables are the practical danger; `CONCURRENTLY`, batched backfills, and lock timeouts are the mitigations.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md)
diff --git a/database-management-in-devops/what-is-database-performance-tuning.md b/database-management-in-devops/what-is-database-performance-tuning.md
index 9a54880..07cfb91 100644
--- a/database-management-in-devops/what-is-database-performance-tuning.md
+++ b/database-management-in-devops/what-is-database-performance-tuning.md
@@ -52,6 +52,16 @@ CREATE INDEX CONCURRENTLY idx_orders_customer_created
- N+1 queries and connection pooling are the two highest-yield practical fixes - name both.
- Mention that every index is a write cost; unqualified "add an index" is a junior answer.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[How do you take a monthly release process to daily deployments?]] (`#285`): [How do you take a monthly release process to daily deployments?](../core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md)
+
+
+
---
[⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md)
diff --git a/database-management-in-devops/what-is-database-version-control.md b/database-management-in-devops/what-is-database-version-control.md
index 6d320e8..f165110 100644
--- a/database-management-in-devops/what-is-database-version-control.md
+++ b/database-management-in-devops/what-is-database-version-control.md
@@ -49,6 +49,16 @@ flyway migrate # runs only what has not been applied, records checksums
- Explain the migration-versus-state trade-off; naming both approaches shows breadth.
- Point out that reviewing generated diffs is mandatory - tools generate `DROP` statements cheerfully.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Database Management in DevOps](./README.md) · [All topics](../README.md)
diff --git a/devops-culture-and-practices/how-do-you-scale-devops-culture-across-many-teams.md b/devops-culture-and-practices/how-do-you-scale-devops-culture-across-many-teams.md
index 3116778..cb8b10b 100644
--- a/devops-culture-and-practices/how-do-you-scale-devops-culture-across-many-teams.md
+++ b/devops-culture-and-practices/how-do-you-scale-devops-culture-across-many-teams.md
@@ -83,6 +83,16 @@ sum by (team) (increase(pages_total[7d])) # operation
- "You build it, you run it" must come with authority to change things. Say that explicitly - it is the difference between ownership and blame.
- Distinguish the small set of things that should be uniform guardrails from everything that should be opt-in. And be ready to say what you need from leadership: funded slack for improvement work.
+
+
+## Related Concepts
+
+- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to DevOps Culture and Practices](./README.md) · [All topics](../README.md)
diff --git a/devops-culture-and-practices/what-are-devops-best-practices.md b/devops-culture-and-practices/what-are-devops-best-practices.md
index d557b1f..bfef8ac 100644
--- a/devops-culture-and-practices/what-are-devops-best-practices.md
+++ b/devops-culture-and-practices/what-are-devops-best-practices.md
@@ -55,6 +55,16 @@ tags:
- If asked to pick the highest-leverage practice, small batches with automated testing is a defensible answer.
- Have one example of a practice you introduced, and what measurably changed.
+
+
+## Related Concepts
+
+- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to DevOps Culture and Practices](./README.md) · [All topics](../README.md)
diff --git a/devops-culture-and-practices/what-is-blameless-culture.md b/devops-culture-and-practices/what-is-blameless-culture.md
index e2e51a3..a44595f 100644
--- a/devops-culture-and-practices/what-is-blameless-culture.md
+++ b/devops-culture-and-practices/what-is-blameless-culture.md
@@ -37,6 +37,16 @@ tags:
- The counterfactual/hindsight point is a sophisticated one that lands well.
- More reported incidents as a _positive_ signal is counter-intuitive and shows real understanding.
+
+
+## Related Concepts
+
+- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to DevOps Culture and Practices](./README.md) · [All topics](../README.md)
diff --git a/devops-culture-and-practices/what-is-devops-culture.md b/devops-culture-and-practices/what-is-devops-culture.md
index 391a511..75845bc 100644
--- a/devops-culture-and-practices/what-is-devops-culture.md
+++ b/devops-culture-and-practices/what-is-devops-culture.md
@@ -41,6 +41,16 @@ tags:
- The "DevOps team as a new silo" anti-pattern is worth naming; interviewers often live it.
- Best answer to "how do you change culture?": make the right thing the easy thing, and show data.
+
+
+## Related Concepts
+
+- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to DevOps Culture and Practices](./README.md) · [All topics](../README.md)
diff --git a/devops-culture-and-practices/what-is-knowledge-sharing-in-devops.md b/devops-culture-and-practices/what-is-knowledge-sharing-in-devops.md
index b544bcc..6e3896f 100644
--- a/devops-culture-and-practices/what-is-knowledge-sharing-in-devops.md
+++ b/devops-culture-and-practices/what-is-knowledge-sharing-in-devops.md
@@ -38,6 +38,16 @@ tags:
- "Documentation is part of done" only works if it is reviewed in the same pull request; say that.
- The bus-factor question is a memorable way to frame the risk.
+
+
+## Related Concepts
+
+- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to DevOps Culture and Practices](./README.md) · [All topics](../README.md)
diff --git a/devops-culture-and-practices/what-is-team-collaboration-in-devops.md b/devops-culture-and-practices/what-is-team-collaboration-in-devops.md
index 745b60d..e879a61 100644
--- a/devops-culture-and-practices/what-is-team-collaboration-in-devops.md
+++ b/devops-culture-and-practices/what-is-team-collaboration-in-devops.md
@@ -36,6 +36,16 @@ tags:
- Team Topologies vocabulary (stream-aligned, platform, enabling) signals current thinking.
- The platform team as an enabler rather than a gatekeeper is the distinction interviewers probe.
+
+
+## Related Concepts
+
+- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to DevOps Culture and Practices](./README.md) · [All topics](../README.md)
diff --git a/devops-metrics-and-kpis/how-do-you-build-a-metrics-program-without-teams-gaming-the-numbers.md b/devops-metrics-and-kpis/how-do-you-build-a-metrics-program-without-teams-gaming-the-numbers.md
index 14ffe78..fe93c1c 100644
--- a/devops-metrics-and-kpis/how-do-you-build-a-metrics-program-without-teams-gaming-the-numbers.md
+++ b/devops-metrics-and-kpis/how-do-you-build-a-metrics-program-without-teams-gaming-the-numbers.md
@@ -95,6 +95,16 @@ metrics:
- Mention the fifth DORA metric (reliability) and add operational load plus a DevEx survey. It shows you know throughput metrics alone hide burnout.
- Say that definitions are the hard part and that you publish the query. Anyone who has run a metrics program has had the "our lead time is different from yours" argument.
+
+
+## Related Concepts
+
+- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+
+
+
---
[⬅ Back to DevOps Metrics and KPIs](./README.md) · [All topics](../README.md)
diff --git a/devops-metrics-and-kpis/what-are-devops-metrics.md b/devops-metrics-and-kpis/what-are-devops-metrics.md
index 566c9b1..ea35d6d 100644
--- a/devops-metrics-and-kpis/what-are-devops-metrics.md
+++ b/devops-metrics-and-kpis/what-are-devops-metrics.md
@@ -43,6 +43,16 @@ Two measure **throughput**, two measure **stability** - and the central DORA fin
- The throughput/stability pairing and the fact they correlate positively is the insight worth stating.
- Volunteer the gaming risk before being asked - it shows you have used these in practice.
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md)
+
+
+
---
[⬅ Back to DevOps Metrics and KPIs](./README.md) · [All topics](../README.md)
diff --git a/devops-metrics-and-kpis/what-is-change-failure-rate.md b/devops-metrics-and-kpis/what-is-change-failure-rate.md
index 755d8b2..0dc7db0 100644
--- a/devops-metrics-and-kpis/what-is-change-failure-rate.md
+++ b/devops-metrics-and-kpis/what-is-change-failure-rate.md
@@ -43,6 +43,16 @@ A deployment that fails in the pipeline and never reaches production is _not_ a
- "Smaller batches" is the single highest-impact lever - say it with the reason.
- Pair it with throughput metrics explicitly to show you understand balanced measurement.
+
+
+## Related Concepts
+
+- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+
+
+
---
[⬅ Back to DevOps Metrics and KPIs](./README.md) · [All topics](../README.md)
diff --git a/devops-metrics-and-kpis/what-is-deployment-frequency.md b/devops-metrics-and-kpis/what-is-deployment-frequency.md
index 32e4453..7c78fe7 100644
--- a/devops-metrics-and-kpis/what-is-deployment-frequency.md
+++ b/devops-metrics-and-kpis/what-is-deployment-frequency.md
@@ -47,6 +47,16 @@ These labels come from the report years that published performance tiers; the 20
- Name the practices that unlock it rather than just the target.
- Mention measuring per service - aggregate figures hide the teams that are stuck.
+
+
+## Related Concepts
+
+- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md)
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to DevOps Metrics and KPIs](./README.md) · [All topics](../README.md)
diff --git a/devops-metrics-and-kpis/what-is-lead-time-for-changes.md b/devops-metrics-and-kpis/what-is-lead-time-for-changes.md
index 1d5c35c..469bbd9 100644
--- a/devops-metrics-and-kpis/what-is-lead-time-for-changes.md
+++ b/devops-metrics-and-kpis/what-is-lead-time-for-changes.md
@@ -45,6 +45,16 @@ In most organisations, the dominant components are **waiting for code review** a
- "Measure each stage - the bottleneck is usually review or approval, not the build" is a strong, experience-based answer.
- Flow efficiency is an excellent metric to raise if you want to show depth.
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+
+
+
---
[⬅ Back to DevOps Metrics and KPIs](./README.md) · [All topics](../README.md)
diff --git a/devops-metrics-and-kpis/what-is-mean-time-to-recovery-mttr.md b/devops-metrics-and-kpis/what-is-mean-time-to-recovery-mttr.md
index d50a1cd..ff2e732 100644
--- a/devops-metrics-and-kpis/what-is-mean-time-to-recovery-mttr.md
+++ b/devops-metrics-and-kpis/what-is-mean-time-to-recovery-mttr.md
@@ -41,6 +41,16 @@ For distributed systems, MTTR usually matters more than MTBF. Failures are inevi
- "Optimise for recovery, not just prevention" is the mature framing.
- Mention reporting distribution rather than mean alone; it shows statistical care.
+
+
+## Related Concepts
+
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md)
+
+
+
---
[⬅ Back to DevOps Metrics and KPIs](./README.md) · [All topics](../README.md)
diff --git a/devops-tools-and-automation/how-do-you-consolidate-a-sprawling-devops-toolchain.md b/devops-tools-and-automation/how-do-you-consolidate-a-sprawling-devops-toolchain.md
index 6279dd7..cae1f73 100644
--- a/devops-tools-and-automation/how-do-you-consolidate-a-sprawling-devops-toolchain.md
+++ b/devops-tools-and-automation/how-do-you-consolidate-a-sprawling-devops-toolchain.md
@@ -88,6 +88,16 @@ jobs:
- Prefer the tool with the better API and the boring reputation. Explain that you optimise for a decade of operation, not a feature matrix.
- Concede that some exceptions should survive, and describe how you make them explicit and reviewed. Forced uniformity is the failure mode they are probing for.
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md)
diff --git a/devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md b/devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md
index 7d6588b..af6e290 100644
--- a/devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md
+++ b/devops-tools-and-automation/how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md
@@ -141,6 +141,16 @@ curl -s -u "$U:$T" "https://nexus.example.com/service/rest/v1/status/check" | jq
- Answer the Git-versus-artefact-repository comparison in terms of source versus binaries, diffing versus checksums, permanent history versus retention policy.
- Mention operational reality: storage growth needs retention policies and GC, and backups must cover blobs and metadata together. See [how do you consolidate a sprawling DevOps toolchain](./how-do-you-consolidate-a-sprawling-devops-toolchain.md), [what is a Software Bill of Materials](../devsecops/what-is-a-software-bill-of-materials-sbom.md), [signing and verifying container images](../devsecops/how-do-you-sign-and-verify-container-images.md), and [promoting a release across dev, staging, and production](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md)
diff --git a/devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md b/devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md
index 37fc5a0..2a8d5cb 100644
--- a/devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md
+++ b/devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md
@@ -132,6 +132,16 @@ spec:
- Restate the operating rule - fix the repository, not the cluster; rollback is `git revert` - because it is the cultural half of the answer interviewers are checking for.
- Close on prevention in CI: `kustomize build`, `helm template`, `kubeconform`, and policy tests before merge, so rendering failures never reach the cluster.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?]] (`#455`): [How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?](../cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md)
+
+
+
---
[⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md)
diff --git a/devops-tools-and-automation/what-are-deployment-strategies.md b/devops-tools-and-automation/what-are-deployment-strategies.md
index db62bd4..bec2b09 100644
--- a/devops-tools-and-automation/what-are-deployment-strategies.md
+++ b/devops-tools-and-automation/what-are-deployment-strategies.md
@@ -37,6 +37,16 @@ tags:
- Explain how a canary decides to proceed - automated analysis, not a human staring at a dashboard.
- Blue/green's cost and its database problem (both environments share one database) are worth naming.
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[How do you prevent and handle secret leaks in CI/CD pipelines?]] (`#237`): [How do you prevent and handle secret leaks in CI/CD pipelines?](../cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md)
+
+
+
---
[⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md)
diff --git a/devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md b/devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md
index d9cdb41..448f5ca 100644
--- a/devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md
+++ b/devops-tools-and-automation/what-do-you-need-to-know-about-maven-as-a-devops-engineer.md
@@ -153,6 +153,16 @@ ENTRYPOINT ["java","-jar","/app/api.jar"]
- For "what happens during a build - how does it fetch dependencies?", walk local repository → configured remote → your Nexus/Artifactory mirror, and note that `settings.xml` (not the POM) holds the mirror and credentials.
- Volunteer the CI optimisations: cache `~/.m2` keyed on the POMs, `-B`, `-T 1C`, `-pl -am` for multi-module, and go-offline for hermetic builds. See [how do you manage build artefacts with Nexus or Artifactory](./how-do-you-manage-build-artefacts-with-nexus-or-artifactory.md), [speeding up a slow CI/CD pipeline](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md), [integrating SonarQube and quality gates](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md), and [how does Docker layer caching work](../docker/how-does-docker-layer-caching-work.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md)
diff --git a/devops-tools-and-automation/what-is-argocd.md b/devops-tools-and-automation/what-is-argocd.md
index fd643d4..9b01b4d 100644
--- a/devops-tools-and-automation/what-is-argocd.md
+++ b/devops-tools-and-automation/what-is-argocd.md
@@ -55,6 +55,16 @@ spec:
- ApplicationSet is the answer to managing dozens of clusters or environments.
- Pair Argo CD (delivery) with Argo Rollouts (progressive release) in your answer.
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md)
diff --git a/devops-tools-and-automation/what-is-gitops.md b/devops-tools-and-automation/what-is-gitops.md
index 0e4433a..9bb4cf3 100644
--- a/devops-tools-and-automation/what-is-gitops.md
+++ b/devops-tools-and-automation/what-is-gitops.md
@@ -38,6 +38,16 @@ tags:
- "How do you handle secrets in Git?" is the guaranteed follow-up - have SOPS or External Secrets ready.
- Mention that drift correction means break-glass changes must also go through Git, or be explicitly excluded.
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md)
diff --git a/devops-tools-and-automation/what-is-infrastructure-automation.md b/devops-tools-and-automation/what-is-infrastructure-automation.md
index 76c11e7..de13c1a 100644
--- a/devops-tools-and-automation/what-is-infrastructure-automation.md
+++ b/devops-tools-and-automation/what-is-infrastructure-automation.md
@@ -37,6 +37,16 @@ tags:
- The maturity ladder is a useful structure for an open-ended question.
- Name the risk - automation scales mistakes too - and the guardrails you use.
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md)
diff --git a/devops-tools-and-automation/what-is-tekton.md b/devops-tools-and-automation/what-is-tekton.md
index 29a3e2b..9a3b121 100644
--- a/devops-tools-and-automation/what-is-tekton.md
+++ b/devops-tools-and-automation/what-is-tekton.md
@@ -64,6 +64,16 @@ spec:
- Tekton Chains for supply-chain provenance is a strong detail to raise.
- Be honest that most teams choose GitHub Actions or GitLab CI unless they specifically need Kubernetes-native execution.
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to DevOps Tools and Automation](./README.md) · [All topics](../README.md)
diff --git a/devsecops/how-do-you-enforce-kubernetes-admission-control-with-kyverno-or-opa-gatekeeper.md b/devsecops/how-do-you-enforce-kubernetes-admission-control-with-kyverno-or-opa-gatekeeper.md
index 915c903..8b07481 100644
--- a/devsecops/how-do-you-enforce-kubernetes-admission-control-with-kyverno-or-opa-gatekeeper.md
+++ b/devsecops/how-do-you-enforce-kubernetes-admission-control-with-kyverno-or-opa-gatekeeper.md
@@ -100,6 +100,16 @@ spec:
- Always mention starting new policies in **Audit mode** before moving to **Enforce mode** to prevent accidental pipeline downtime.
- Explain admission controller mechanics: `ValidatingWebhookConfiguration` (blocks or allows) runs after `MutatingWebhookConfiguration` (modifies requests defaults).
+
+
+## Related Concepts
+
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you harden a container image and a Dockerfile?]] (`#441`): [How do you harden a container image and a Dockerfile?](../docker/how-do-you-harden-a-container-image-and-a-dockerfile.md)
+
+
+
---
[⬅ Back to DevSecOps](./README.md) · [All topics](../README.md)
diff --git a/devsecops/how-do-you-manage-kubernetes-secrets-in-a-gitops-workflow.md b/devsecops/how-do-you-manage-kubernetes-secrets-in-a-gitops-workflow.md
index 4e8bbf9..ae3f40b 100644
--- a/devsecops/how-do-you-manage-kubernetes-secrets-in-a-gitops-workflow.md
+++ b/devsecops/how-do-you-manage-kubernetes-secrets-in-a-gitops-workflow.md
@@ -178,6 +178,16 @@ kubectl rollout restart deploy/payments -n prod
- Bring up the GitOps-specific failure modes unprompted: Argo CD self-heal fighting an operator-managed Secret (`ignoreDifferences`), sync ordering so the operator exists first, and the **bootstrap** chicken-and-egg for the operator's own credential.
- Close with enforcement rather than intention: `gitleaks` in pre-commit and CI, a check that fails on a committed `kind: Secret` with values, and the rule that a leaked credential is rotated **first** and cleaned from history second. See [how do you manage secrets in CI/CD pipelines](./how-do-you-manage-secrets-in-ci-cd-pipelines.md), [rotating secrets without downtime](./how-do-you-rotate-secrets-without-downtime.md), [ConfigMaps and Secrets in Kubernetes](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md), [what is GitOps](../devops-tools-and-automation/what-is-gitops.md), and [troubleshooting a GitOps pipeline that will not sync](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md).
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+
+
+
---
[⬅ Back to DevSecOps](./README.md) · [All topics](../README.md)
diff --git a/devsecops/how-do-you-manage-secrets-in-ci-cd-pipelines.md b/devsecops/how-do-you-manage-secrets-in-ci-cd-pipelines.md
index 4fd50c9..383a71b 100644
--- a/devsecops/how-do-you-manage-secrets-in-ci-cd-pipelines.md
+++ b/devsecops/how-do-you-manage-secrets-in-ci-cd-pipelines.md
@@ -65,6 +65,16 @@ condition {
- The `sub` condition pinning repo and ref is the detail that proves you have configured this rather than read about it.
- Expect the fork/`pull_request_target` question, and "what do you do after a leak?" - rotate first, forensics second.
+
+
+## Related Concepts
+
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you harden a container image and a Dockerfile?]] (`#441`): [How do you harden a container image and a Dockerfile?](../docker/how-do-you-harden-a-container-image-and-a-dockerfile.md)
+
+
+
---
[⬅ Back to DevSecOps](./README.md) · [All topics](../README.md)
diff --git a/devsecops/how-do-you-prioritise-vulnerabilities-without-blocking-delivery.md b/devsecops/how-do-you-prioritise-vulnerabilities-without-blocking-delivery.md
index 2298565..adfca56 100644
--- a/devsecops/how-do-you-prioritise-vulnerabilities-without-blocking-delivery.md
+++ b/devsecops/how-do-you-prioritise-vulnerabilities-without-blocking-delivery.md
@@ -53,6 +53,16 @@ python3 rank.py findings.json --kev kev.json --epss epss.csv --top 20
- "Gate on new findings, SLA the backlog" is the sentence that shows you have kept a pipeline usable.
- Expect: "a critical with no patch, shipping tomorrow - what do you do?" Answer with compensating control, time-boxed risk acceptance, and who signs it.
+
+
+## Related Concepts
+
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to DevSecOps](./README.md) · [All topics](../README.md)
diff --git a/devsecops/how-do-you-rotate-secrets-without-downtime.md b/devsecops/how-do-you-rotate-secrets-without-downtime.md
index 6c2a338..14a2afc 100644
--- a/devsecops/how-do-you-rotate-secrets-without-downtime.md
+++ b/devsecops/how-do-you-rotate-secrets-without-downtime.md
@@ -128,6 +128,16 @@ spec:
- Push toward eliminating long-lived secrets - dynamic database credentials, IRSA/Workload Identity, OIDC federation in CI - and note that this converts rotation from a project into a property of the platform.
- Mention the inventory problem honestly: rotation fails most often because nobody knows the complete list of consumers. Owner plus consumer list per secret is the unglamorous prerequisite. See [what does a DevSecOps pipeline look like end to end](./what-does-a-devsecops-pipeline-look-like-end-to-end.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+
+
+
---
[⬅ Back to DevSecOps](./README.md) · [All topics](../README.md)
diff --git a/devsecops/how-do-you-scan-infrastructure-as-code-before-it-is-applied.md b/devsecops/how-do-you-scan-infrastructure-as-code-before-it-is-applied.md
index 228bd4c..227a80e 100644
--- a/devsecops/how-do-you-scan-infrastructure-as-code-before-it-is-applied.md
+++ b/devsecops/how-do-you-scan-infrastructure-as-code-before-it-is-applied.md
@@ -60,6 +60,16 @@ deny contains msg if {
- Mention one org-specific rule you have written - it separates "I enabled a scanner" from "I own the guardrails".
- Follow-up to expect: "how do you stop someone changing it in the console?" - drift detection plus the same policy evaluated against live state, and SCPs/Azure Policy denying it outright.
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+
+
+
---
[⬅ Back to DevSecOps](./README.md) · [All topics](../README.md)
diff --git a/devsecops/how-do-you-sign-and-verify-container-images.md b/devsecops/how-do-you-sign-and-verify-container-images.md
index b618aa2..6aca765 100644
--- a/devsecops/how-do-you-sign-and-verify-container-images.md
+++ b/devsecops/how-do-you-sign-and-verify-container-images.md
@@ -44,6 +44,16 @@ cosign verify ghcr.io/acme/api@"$DIGEST" \
- Keyless and Rekor transparency logging are the modern answer; explain the key-management problem they remove.
- Be ready for "how do you handle upstream images with no signatures?" - mirror, scan, re-sign, and pin by digest.
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+
+
+
---
[⬅ Back to DevSecOps](./README.md) · [All topics](../README.md)
diff --git a/devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md b/devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md
index 75c2530..5f61245 100644
--- a/devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md
+++ b/devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md
@@ -63,6 +63,16 @@ jobs:
- The baseline/new-findings distinction and expiring waivers are the two details that show you have run this in a real team.
- Expect the follow-up: "what do you do when the critical has no fix?" - compensating control, documented risk acceptance, and a tracked ticket.
+
+
+## Related Concepts
+
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to DevSecOps](./README.md) · [All topics](../README.md)
diff --git a/devsecops/what-does-shift-left-security-mean.md b/devsecops/what-does-shift-left-security-mean.md
index b004c42..2a9a734 100644
--- a/devsecops/what-does-shift-left-security-mean.md
+++ b/devsecops/what-does-shift-left-security-mean.md
@@ -101,6 +101,16 @@ CVE-2026-12345 exp:2026-10-01 # dev-only dependency, not in the runtime image -
- Volunteer the noise problem and the fixes: diff-scoped scanning, block only on high/critical with a fix, expiring suppressions, keep it fast.
- Close by saying shift left does not remove pen testing, threat modelling, or runtime detection. Claiming it replaces them is the trap.
+
+
+## Related Concepts
+
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to DevSecOps](./README.md) · [All topics](../README.md)
diff --git a/devsecops/what-is-a-software-bill-of-materials-sbom.md b/devsecops/what-is-a-software-bill-of-materials-sbom.md
index 028e9c0..7de2c7e 100644
--- a/devsecops/what-is-a-software-bill-of-materials-sbom.md
+++ b/devsecops/what-is-a-software-bill-of-materials-sbom.md
@@ -44,6 +44,16 @@ grype sbom:sbom.json --fail-on high
- Naming VEX, and digest-keyed storage, separates people who have generated SBOMs from people who have used them.
- Expect: "who consumes it?" - your own vulnerability management, plus customers' procurement and their scanners.
+
+
+## Related Concepts
+
+- [[How do you harden a container image and a Dockerfile?]] (`#441`): [How do you harden a container image and a Dockerfile?](../docker/how-do-you-harden-a-container-image-and-a-dockerfile.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+
+
+
---
[⬅ Back to DevSecOps](./README.md) · [All topics](../README.md)
diff --git a/devsecops/what-is-slsa-and-how-do-you-secure-the-software-supply-chain.md b/devsecops/what-is-slsa-and-how-do-you-secure-the-software-supply-chain.md
index d3071f0..fdc3d96 100644
--- a/devsecops/what-is-slsa-and-how-do-you-secure-the-software-supply-chain.md
+++ b/devsecops/what-is-slsa-and-how-do-you-secure-the-software-supply-chain.md
@@ -76,6 +76,16 @@ spec:
- Tie levels to incidents - SolarWinds for build-system compromise, Codecov for source/CI tampering.
- The follow-up is always "how do you verify?" - admission control that fails closed, plus what you do for third-party images that have no provenance (mirror, scan, and pin).
+
+
+## Related Concepts
+
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to DevSecOps](./README.md) · [All topics](../README.md)
diff --git a/devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md b/devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md
index 886aa44..a68a77a 100644
--- a/devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md
+++ b/devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md
@@ -48,6 +48,16 @@ semgrep --config p/owasp-top-ten --config ./.semgrep/rules \
- Mention `--ignore-unfixed` and reachability analysis - both show you have fought signal-to-noise in practice.
- Common trap: claiming SAST would have caught Log4Shell. That was a dependency issue, so SCA plus an SBOM is the answer.
+
+
+## Related Concepts
+
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+
+
+
---
[⬅ Back to DevSecOps](./README.md) · [All topics](../README.md)
diff --git a/docker/explain-docker-architecture.md b/docker/explain-docker-architecture.md
index 7e6bfae..37d17b1 100644
--- a/docker/explain-docker-architecture.md
+++ b/docker/explain-docker-architecture.md
@@ -43,6 +43,16 @@ docker CLI ──REST/socket──▶ dockerd ──gRPC──▶ containerd ─
- Explain rootless mode and why exposing the Docker socket to a container is effectively granting root on the host.
- Link it forward: "Kubernetes deprecated dockershim" makes sense only if you know this stack.
+
+
+## Related Concepts
+
+- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md)
+- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md)
+- [[What is a Pod in Kubernetes?]] (`#13`): [What is a Pod in Kubernetes?](../kubernetes/what-is-a-pod-in-kubernetes.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docker/how-do-namespaces-cgroups-and-capabilities-isolate-a-container.md b/docker/how-do-namespaces-cgroups-and-capabilities-isolate-a-container.md
index 271ac3d..4fd1414 100644
--- a/docker/how-do-namespaces-cgroups-and-capabilities-isolate-a-container.md
+++ b/docker/how-do-namespaces-cgroups-and-capabilities-isolate-a-container.md
@@ -98,6 +98,16 @@ resources:
- Be specific about escapes: `--privileged`, the Docker socket, `hostPID`/`hostNetwork`, writable host path mounts. Vague "containers are less secure than VMs" answers score poorly.
- Finish with the boundary: shared kernel means untrusted workloads need a VM or gVisor. Knowing when process isolation is insufficient is the senior signal.
+
+
+## Related Concepts
+
+- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md)
+- [[How do liveness, readiness, and startup probes differ?]] (`#255`): [How do liveness, readiness, and startup probes differ?](../kubernetes/how-do-liveness-readiness-and-startup-probes-differ.md)
+- [[How do you control which node a Pod runs on?]] (`#256`): [How do you control which node a Pod runs on?](../kubernetes/how-do-you-control-which-node-a-pod-runs-on.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docker/how-do-you-harden-a-container-image-and-a-dockerfile.md b/docker/how-do-you-harden-a-container-image-and-a-dockerfile.md
index f40e1bd..def6582 100644
--- a/docker/how-do-you-harden-a-container-image-and-a-dockerfile.md
+++ b/docker/how-do-you-harden-a-container-image-and-a-dockerfile.md
@@ -138,6 +138,16 @@ docker history --no-trunc registry.example.com/api:1.9.0
- Say that signing only matters with admission enforcement, and name Kyverno or Gatekeeper. See [how do you sign and verify container images](../devsecops/how-do-you-sign-and-verify-container-images.md), [Kubernetes admission control with Kyverno or OPA Gatekeeper](../devsecops/how-do-you-enforce-kubernetes-admission-control-with-kyverno-or-opa-gatekeeper.md), [prioritising vulnerabilities without blocking delivery](../devsecops/how-do-you-prioritise-vulnerabilities-without-blocking-delivery.md), and [namespaces, cgroups, and capabilities](./how-do-namespaces-cgroups-and-capabilities-isolate-a-container.md).
- If asked how to fix a CVE in a running container, refuse the in-place upgrade and describe rebuild-rescan-redeploy plus compensating controls when the fix is genuinely far off.
+
+
+## Related Concepts
+
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+- [[What is the difference between a ConfigMap and a Secret in Kubernetes?]] (`#442`): [What is the difference between a ConfigMap and a Secret in Kubernetes?](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md)
+- [[What does a DevSecOps pipeline look like end to end?]] (`#161`): [What does a DevSecOps pipeline look like end to end?](../devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docker/how-do-you-reduce-docker-image-size-and-build-time.md b/docker/how-do-you-reduce-docker-image-size-and-build-time.md
index bc263ef..b968db6 100644
--- a/docker/how-do-you-reduce-docker-image-size-and-build-time.md
+++ b/docker/how-do-you-reduce-docker-image-size-and-build-time.md
@@ -95,6 +95,16 @@ docker buildx build \
- If asked about build _time_ specifically, separate the two levers: cache ordering (avoid rebuilding) and cache transport (`--cache-from` in CI, where every runner starts cold).
- Mention `.dockerignore` unprompted. Interviewers notice when candidates forget the build context.
+
+
+## Related Concepts
+
+- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md)
+- [[What is a Service in Kubernetes?]] (`#14`): [What is a Service in Kubernetes?](../kubernetes/what-is-a-service-in-kubernetes.md)
+- [[How does RBAC work in Kubernetes?]] (`#257`): [How does RBAC work in Kubernetes?](../kubernetes/how-does-rbac-work-in-kubernetes.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docker/how-do-you-troubleshoot-docker-networking-between-containers.md b/docker/how-do-you-troubleshoot-docker-networking-between-containers.md
index df01cae..3b9cba6 100644
--- a/docker/how-do-you-troubleshoot-docker-networking-between-containers.md
+++ b/docker/how-do-you-troubleshoot-docker-networking-between-containers.md
@@ -111,6 +111,16 @@ networks:
- Have one host-layer cause ready - a firewall reload flushing Docker's iptables chains is the classic - and the overlay MTU symptom if the interviewer moves to multi-host.
- Close on `depends_on` not meaning ready, and healthchecks plus client-side retries as the correct fix.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Kubernetes Service that has no endpoints?]] (`#403`): [How do you troubleshoot a Kubernetes Service that has no endpoints?](../kubernetes/how-do-you-troubleshoot-a-kubernetes-service-that-has-no-endpoints.md)
+- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md)
+- [[How does Pod networking and service discovery work in Kubernetes?]] (`#447`): [How does Pod networking and service discovery work in Kubernetes?](../kubernetes/how-does-pod-networking-and-service-discovery-work-in-kubernetes.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docker/how-does-docker-layer-caching-work.md b/docker/how-does-docker-layer-caching-work.md
index 930372a..34d0f2e 100644
--- a/docker/how-does-docker-layer-caching-work.md
+++ b/docker/how-does-docker-layer-caching-work.md
@@ -111,6 +111,16 @@ docker buildx build --progress=plain . 2>&1 | grep -E "CACHED|=> \["
- Mention BuildKit cache mounts for `~/.m2`, `~/.npm`, `~/.cache/pip` as the fix for dependency downloads dominating build time.
- Push back gently on "fewer layers is better": the real goals are cache-hit rate and total content, not layer count. See [reducing Docker image size and build time](./how-do-you-reduce-docker-image-size-and-build-time.md), [COPY versus ADD](./what-is-the-difference-between-the-copy-and-add-instructions-in-a-dockerfile.md), and [speeding up a slow CI/CD pipeline](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md).
+
+
+## Related Concepts
+
+- [[What is inside a Helm chart, and how do you customise one?]] (`#450`): [What is inside a Helm chart, and how do you customise one?](../container-orchestration-advanced/what-is-inside-a-helm-chart-and-how-do-you-customise-one.md)
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docker/what-are-docker-network-types-bridge-host-overlay-macvlan.md b/docker/what-are-docker-network-types-bridge-host-overlay-macvlan.md
index d69ea56..e57961a 100644
--- a/docker/what-are-docker-network-types-bridge-host-overlay-macvlan.md
+++ b/docker/what-are-docker-network-types-bridge-host-overlay-macvlan.md
@@ -95,6 +95,16 @@ networks:
- Explain trade-offs: **Host mode** eliminates NAT overhead for maximum throughput, but introduces port conflict risks on the host and removes network isolation.
- Understand port forwarding mechanics: `docker run -p 8080:80` creates `iptables` DNAT rules intercepting host packets.
+
+
+## Related Concepts
+
+- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md)
+- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md)
+- [[What is a Pod in Kubernetes?]] (`#13`): [What is a Pod in Kubernetes?](../kubernetes/what-is-a-pod-in-kubernetes.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docker/what-is-docker-compose.md b/docker/what-is-docker-compose.md
index e3c91fd..94c0a98 100644
--- a/docker/what-is-docker-compose.md
+++ b/docker/what-is-docker-compose.md
@@ -67,6 +67,16 @@ docker compose down -v # -v also removes named volumes
- `depends_on` alone only waits for _start_, not readiness; the health-check condition is the correct answer.
- Compose files are excellent for reproducible integration tests in CI.
+
+
+## Related Concepts
+
+- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md)
+- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md)
+- [[What is a Pod in Kubernetes?]] (`#13`): [What is a Pod in Kubernetes?](../kubernetes/what-is-a-pod-in-kubernetes.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docker/what-is-docker.md b/docker/what-is-docker.md
index 573beb8..9fd5319 100644
--- a/docker/what-is-docker.md
+++ b/docker/what-is-docker.md
@@ -43,6 +43,16 @@ docker exec -it web sh
- Be clear that containers share the host kernel - that is both the performance win and the security consideration.
- Know the difference between Docker (the tooling) and the OCI standards it now conforms to.
+
+
+## Related Concepts
+
+- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md)
+- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md)
+- [[What is a Pod in Kubernetes?]] (`#13`): [What is a Pod in Kubernetes?](../kubernetes/what-is-a-pod-in-kubernetes.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docker/what-is-dockerfile.md b/docker/what-is-dockerfile.md
index 01f386f..ba136bb 100644
--- a/docker/what-is-dockerfile.md
+++ b/docker/what-is-dockerfile.md
@@ -59,6 +59,16 @@ CMD ["node", "dist/server.js"]
- Always mention `.dockerignore`; without it you ship `node_modules` and `.git` into the build context.
- Running as non-root and pinning base image tags are the security answers interviewers listen for.
+
+
+## Related Concepts
+
+- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md)
+- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md)
+- [[What is a Service in Kubernetes?]] (`#14`): [What is a Service in Kubernetes?](../kubernetes/what-is-a-service-in-kubernetes.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docker/what-is-the-difference-between-a-bind-mount-and-a-volume-in-docker.md b/docker/what-is-the-difference-between-a-bind-mount-and-a-volume-in-docker.md
index d2ae964..1636f40 100644
--- a/docker/what-is-the-difference-between-a-bind-mount-and-a-volume-in-docker.md
+++ b/docker/what-is-the-difference-between-a-bind-mount-and-a-volume-in-docker.md
@@ -104,6 +104,16 @@ docker volume prune # DESTRUCTIVE: deletes unused volumes
- Recommend `--mount` over `-v` and say why: `-v` infers the type from the string shape and silently creates a stray volume on a typo.
- Close by mapping to Kubernetes - `hostPath` ≈ bind mount, `emptyDir` ≈ anonymous volume, PVC ≈ named volume with a driver. See [how does persistent storage work in Kubernetes](../kubernetes/how-does-persistent-storage-work-in-kubernetes.md) and [Docker architecture](./explain-docker-architecture.md).
+
+
+## Related Concepts
+
+- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md)
+- [[What is a Service in Kubernetes?]] (`#14`): [What is a Service in Kubernetes?](../kubernetes/what-is-a-service-in-kubernetes.md)
+- [[How does RBAC work in Kubernetes?]] (`#257`): [How does RBAC work in Kubernetes?](../kubernetes/how-does-rbac-work-in-kubernetes.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docker/what-is-the-difference-between-cmd-and-entrypoint-in-a-dockerfile.md b/docker/what-is-the-difference-between-cmd-and-entrypoint-in-a-dockerfile.md
index 4bb9091..67c73b8 100644
--- a/docker/what-is-the-difference-between-cmd-and-entrypoint-in-a-dockerfile.md
+++ b/docker/what-is-the-difference-between-cmd-and-entrypoint-in-a-dockerfile.md
@@ -90,6 +90,16 @@ docker inspect -f 'ENTRYPOINT={{.Config.Entrypoint}} CMD={{.Config.Cmd}}' img
- Have the `exec "$@"` entrypoint-script pattern ready; it is the answer to "how do you run setup before your app starts without breaking signal handling?"
- The classic follow-up is the port mismatch: "the image `EXPOSE`s 8080 but the app listens on 9090". `EXPOSE` is documentation only - what matters is `-p`/`--publish` mapping and what the process actually binds. See [what is Dockerfile](./what-is-dockerfile.md) and [reducing Docker image size and build time](./how-do-you-reduce-docker-image-size-and-build-time.md).
+
+
+## Related Concepts
+
+- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md)
+- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md)
+- [[What is a Service in Kubernetes?]] (`#14`): [What is a Service in Kubernetes?](../kubernetes/what-is-a-service-in-kubernetes.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docker/what-is-the-difference-between-docker-image-and-docker-container.md b/docker/what-is-the-difference-between-docker-image-and-docker-container.md
index 4f32d3d..b340596 100644
--- a/docker/what-is-the-difference-between-docker-image-and-docker-container.md
+++ b/docker/what-is-the-difference-between-docker-image-and-docker-container.md
@@ -42,6 +42,16 @@ docker diff a # inspect a container's writable layer
- Mention that data in the writable layer is lost on `docker rm` - it leads naturally into volumes.
- A follow-up is often "why are my images so large?" - answer with layer caching and multi-stage builds.
+
+
+## Related Concepts
+
+- [[What is Kubernetes?]] (`#11`): [What is Kubernetes?](../kubernetes/what-is-kubernetes.md)
+- [[What are the main components of Kubernetes architecture?]] (`#12`): [What are the main components of Kubernetes architecture?](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md)
+- [[What is a Pod in Kubernetes?]] (`#13`): [What is a Pod in Kubernetes?](../kubernetes/what-is-a-pod-in-kubernetes.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docker/what-is-the-difference-between-the-copy-and-add-instructions-in-a-dockerfile.md b/docker/what-is-the-difference-between-the-copy-and-add-instructions-in-a-dockerfile.md
index da804df..e138f14 100644
--- a/docker/what-is-the-difference-between-the-copy-and-add-instructions-in-a-dockerfile.md
+++ b/docker/what-is-the-difference-between-the-copy-and-add-instructions-in-a-dockerfile.md
@@ -102,6 +102,16 @@ Dockerfile
- Volunteer `--chown` and `--from=` - both come up as follow-ups, and `--from` leads naturally into multi-stage builds.
- Expect the pivot to caching: "which lines invalidate the cache?" Answer with manifests-first ordering and `.dockerignore`. See [how does Docker layer caching work](./how-does-docker-layer-caching-work.md) and [reducing Docker image size and build time](./how-do-you-reduce-docker-image-size-and-build-time.md).
+
+
+## Related Concepts
+
+- [[Explain the difference between Docker Swarm and Kubernetes]] (`#15`): [Explain the difference between Docker Swarm and Kubernetes](../kubernetes/explain-the-difference-between-docker-swarm-and-kubernetes.md)
+- [[What is the difference between a ConfigMap and a Secret in Kubernetes?]] (`#442`): [What is the difference between a ConfigMap and a Secret in Kubernetes?](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md)
+- [[How does persistent storage work in Kubernetes?]] (`#443`): [How does persistent storage work in Kubernetes?](../kubernetes/how-does-persistent-storage-work-in-kubernetes.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md b/docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md
index d081910..4f6b326 100644
--- a/docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md
+++ b/docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md
@@ -127,6 +127,16 @@ spec:
- Mention `--user 0` as a **diagnostic** to confirm the theory, immediately followed by "not the fix" - the distinction is what interviewers are listening for.
- If asked why images run as non-root at all, connect it to container escape risk and Pod Security Admission rather than treating it as a formality. See [how do you reduce Docker image size and build time](./how-do-you-reduce-docker-image-size-and-build-time.md) for the adjacent build-hygiene answer.
+
+
+## Related Concepts
+
+- [[What is the difference between a ConfigMap and a Secret in Kubernetes?]] (`#442`): [What is the difference between a ConfigMap and a Secret in Kubernetes?](../kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md)
+- [[How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?]] (`#405`): [How do Kubernetes NetworkPolicies work, and how do you debug one that blocks traffic?](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md)
+- [[How do you troubleshoot a Kubernetes node that is NotReady?]] (`#449`): [How do you troubleshoot a Kubernetes node that is NotReady?](../kubernetes/how-do-you-troubleshoot-a-kubernetes-node-that-is-notready.md)
+
+
+
---
[⬅ Back to Docker](./README.md) · [All topics](../README.md)
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 0000000..d36fa04
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,31056 @@
+
+
+
+
+
+ DevOps & Cloud Engineering Knowledge Graph
+
+
+
+
+
+
+
+
+ QUESTION
+ BEGINNER
+
+
Node Info
+
+
+
+
+
+
+
+
+
diff --git a/gcp-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-gcp.md b/gcp-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-gcp.md
index 15a09f4..ea9e2d7 100644
--- a/gcp-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-gcp.md
+++ b/gcp-engineering/how-do-you-architect-an-end-to-end-production-devops-project-on-gcp.md
@@ -109,6 +109,16 @@ resource "google_container_cluster" "primary" {
- Highlight **GCP Workload Identity Federation**: explain why downloading JSON service account keys is anti-pattern on GCP and how Workload Identity exchanges short-lived tokens.
- Emphasize **GKE Autopilot**: explain how Autopilot shifts node management, OS upgrades, and bin-packing responsibilities to Google SREs while enforcing strict security defaults out of the box.
+
+
+## Related Concepts
+
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+
+
+
---
[⬅ Back to GCP Engineering](./README.md) · [All topics](../README.md)
diff --git a/gcp-engineering/how-do-you-manage-google-cloud-infrastructure-as-code.md b/gcp-engineering/how-do-you-manage-google-cloud-infrastructure-as-code.md
index 9ec64f4..dc51c6c 100644
--- a/gcp-engineering/how-do-you-manage-google-cloud-infrastructure-as-code.md
+++ b/gcp-engineering/how-do-you-manage-google-cloud-infrastructure-as-code.md
@@ -78,6 +78,16 @@ module "vpc" {
- State splitting (foundation / network / workload) is the answer to "how do you keep plans safe and fast?".
- Expect: "how does Terraform authenticate?" - Workload Identity Federation and impersonation, never a JSON key.
+
+
+## Related Concepts
+
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md)
+
+
+
---
[⬅ Back to GCP Engineering](./README.md) · [All topics](../README.md)
diff --git a/gcp-engineering/how-do-you-monitor-google-cloud-with-the-cloud-operations-suite.md b/gcp-engineering/how-do-you-monitor-google-cloud-with-the-cloud-operations-suite.md
index aea1f6e..e2335b1 100644
--- a/gcp-engineering/how-do-you-monitor-google-cloud-with-the-cloud-operations-suite.md
+++ b/gcp-engineering/how-do-you-monitor-google-cloud-with-the-cloud-operations-suite.md
@@ -54,6 +54,16 @@ gcloud logging sinks create logs-to-bq \
- Mention the native SLO API - and Managed Service for Prometheus if the platform is GKE-based.
- Expect: "how do you notice a broken exporter?" - alert on metric absence, not just thresholds.
+
+
+## Related Concepts
+
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+
+
+
---
[⬅ Back to GCP Engineering](./README.md) · [All topics](../README.md)
diff --git a/gcp-engineering/how-does-iam-work-in-google-cloud.md b/gcp-engineering/how-does-iam-work-in-google-cloud.md
index 0b7ed68..7b514e7 100644
--- a/gcp-engineering/how-does-iam-work-in-google-cloud.md
+++ b/gcp-engineering/how-does-iam-work-in-google-cloud.md
@@ -60,6 +60,16 @@ gcloud projects add-iam-policy-binding payments-prod \
- Service-account keys are the trap: say you disable their creation by org policy and use federation or impersonation.
- Expect: "how would you prove least privilege?" - IAM Recommender over 90 days of usage, plus Policy Analyzer.
+
+
+## Related Concepts
+
+- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md)
+- [[How do you connect an on-premises network to the cloud?]] (`#216`): [How do you connect an on-premises network to the cloud?](../cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md)
+- [[How do you design least-privilege identity in the cloud?]] (`#217`): [How do you design least-privilege identity in the cloud?](../cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md)
+
+
+
---
[⬅ Back to GCP Engineering](./README.md) · [All topics](../README.md)
diff --git a/gcp-engineering/how-is-the-gcp-resource-hierarchy-organised.md b/gcp-engineering/how-is-the-gcp-resource-hierarchy-organised.md
index 816fe79..9b90d70 100644
--- a/gcp-engineering/how-is-the-gcp-resource-hierarchy-organised.md
+++ b/gcp-engineering/how-is-the-gcp-resource-hierarchy-organised.md
@@ -55,6 +55,16 @@ Org policies at the organization node:
- Distinguish IAM (who may act) from org policy constraints (what configuration is allowed); interviewers probe this.
- Mention `disableServiceAccountKeyCreation` - it signals you know the modern, keyless GCP posture.
+
+
+## Related Concepts
+
+- [[How do you choose a cloud provider for a new workload?]] (`#281`): [How do you choose a cloud provider for a new workload?](../cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md)
+- [[How does networking differ across AWS, Azure, and GCP?]] (`#282`): [How does networking differ across AWS, Azure, and GCP?](../cloud-platforms/how-does-networking-differ-across-aws-azure-and-gcp.md)
+- [[What is a cloud landing zone?]] (`#215`): [What is a cloud landing zone?](../cloud-engineering/what-is-a-cloud-landing-zone.md)
+
+
+
---
[⬅ Back to GCP Engineering](./README.md) · [All topics](../README.md)
diff --git a/gcp-engineering/what-is-cloud-run-and-when-do-you-choose-it.md b/gcp-engineering/what-is-cloud-run-and-when-do-you-choose-it.md
index e19c740..b8670fe 100644
--- a/gcp-engineering/what-is-cloud-run-and-when-do-you-choose-it.md
+++ b/gcp-engineering/what-is-cloud-run-and-when-do-you-choose-it.md
@@ -55,6 +55,16 @@ gcloud run services update-traffic checkout --region=europe-west1 \
- Cold starts plus minimum instances is the expected follow-up; give the trade-off in cost terms.
- Expect: "Cloud Run or GKE?" - Cloud Run unless you need the Kubernetes API, operators, or host-level access.
+
+
+## Related Concepts
+
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+
+
+
---
[⬅ Back to GCP Engineering](./README.md) · [All topics](../README.md)
diff --git a/gcp-engineering/what-is-the-difference-between-gke-standard-and-gke-autopilot.md b/gcp-engineering/what-is-the-difference-between-gke-standard-and-gke-autopilot.md
index 7d07528..7d9869e 100644
--- a/gcp-engineering/what-is-the-difference-between-gke-standard-and-gke-autopilot.md
+++ b/gcp-engineering/what-is-the-difference-between-gke-standard-and-gke-autopilot.md
@@ -77,6 +77,16 @@ spec:
- Say that Autopilot blocks privileged Pods and node SSH, and give an example of a workload that therefore needs Standard.
- Expect: "which would you pick?" - Autopilot as the default for ordinary services, Standard where the exceptions apply.
+
+
+## Related Concepts
+
+- [[What is Google Cloud Platform (GCP)?]] (`#24`): [What is Google Cloud Platform (GCP)?](../cloud-platforms/what-is-google-cloud-platform-gcp.md)
+- [[What are the different types of cloud services?]] (`#25`): [What are the different types of cloud services?](../cloud-platforms/what-are-the-different-types-of-cloud-services.md)
+- [[How do you choose a cloud provider for a new workload?]] (`#281`): [How do you choose a cloud provider for a new workload?](../cloud-platforms/how-do-you-choose-a-cloud-provider-for-a-new-workload.md)
+
+
+
---
[⬅ Back to GCP Engineering](./README.md) · [All topics](../README.md)
diff --git a/gcp-engineering/what-makes-a-google-cloud-vpc-different.md b/gcp-engineering/what-makes-a-google-cloud-vpc-different.md
index 0dbfbaf..7c31726 100644
--- a/gcp-engineering/what-makes-a-google-cloud-vpc-different.md
+++ b/gcp-engineering/what-makes-a-google-cloud-vpc-different.md
@@ -60,6 +60,16 @@ gcloud compute routers nats create nat-euw1 --router=rtr-euw1 --region=europe-we
- Firewall rules targeting service accounts rather than tags is the security-savvy detail.
- Expect: "how do many teams share a network?" - Shared VPC with host and service projects, and note peering is non-transitive.
+
+
+## Related Concepts
+
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+
+
+
---
[⬅ Back to GCP Engineering](./README.md) · [All topics](../README.md)
diff --git a/gcp-engineering/when-do-you-use-bigquery-cloud-sql-or-spanner.md b/gcp-engineering/when-do-you-use-bigquery-cloud-sql-or-spanner.md
index d488be7..5da60e9 100644
--- a/gcp-engineering/when-do-you-use-bigquery-cloud-sql-or-spanner.md
+++ b/gcp-engineering/when-do-you-use-bigquery-cloud-sql-or-spanner.md
@@ -74,6 +74,16 @@ CREATE TABLE Orders (
- `require_partition_filter` and the Spanner hotspot point are the two details that show production experience.
- Expect: "why not BigQuery for the application database?" - no point lookups at OLTP latency or cost, and no transactional semantics for that pattern.
+
+
+## Related Concepts
+
+- [[What is Cloud Computing?]] (`#21`): [What is Cloud Computing?](../cloud-platforms/what-is-cloud-computing.md)
+- [[What is AWS (Amazon Web Services)?]] (`#22`): [What is AWS (Amazon Web Services)?](../cloud-platforms/what-is-aws-amazon-web-services.md)
+- [[What is Azure?]] (`#23`): [What is Azure?](../cloud-platforms/what-is-azure.md)
+
+
+
---
[⬅ Back to GCP Engineering](./README.md) · [All topics](../README.md)
diff --git a/incident-management/how-do-you-respond-when-a-deployment-breaks-production.md b/incident-management/how-do-you-respond-when-a-deployment-breaks-production.md
index 3a5c831..aaaeb83 100644
--- a/incident-management/how-do-you-respond-when-a-deployment-breaks-production.md
+++ b/incident-management/how-do-you-respond-when-a-deployment-breaks-production.md
@@ -110,6 +110,16 @@ kubectl -n prod logs -l app=checkout --since=2m | grep -c ' 5[0-9][0-9] '
- Frame the review around time-to-detect and time-to-mitigate, and prefer one automated gate over several human reminders.
- Have a real story with numbers - what broke, how long, what you changed afterwards - and be willing to say what you would do differently. That self-critique is usually what earns the mark. See [what is an incident response plan](./what-is-an-incident-response-plan.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Incident Management](./README.md) · [All topics](../README.md)
diff --git a/incident-management/how-do-you-run-a-major-incident-as-incident-commander.md b/incident-management/how-do-you-run-a-major-incident-as-incident-commander.md
index 1380690..7ad3d9b 100644
--- a/incident-management/how-do-you-run-a-major-incident-as-incident-commander.md
+++ b/incident-management/how-do-you-run-a-major-incident-as-incident-commander.md
@@ -79,6 +79,16 @@ Channel #inc-2026-08-07-checkout-errors (one channel of record)
- Close on the artifacts: timeline captured live, blameless review scheduled, follow-ups with owners and dates before people disperse.
- Have a real incident ready in this structure, and be honest about what went wrong in your handling of it. The self-critique is usually what earns the mark.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is the difference between Continuous Delivery and Continuous Deployment?]] (`#20`): [What is the difference between Continuous Delivery and Continuous Deployment?](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md)
+
+
+
---
[⬅ Back to Incident Management](./README.md) · [All topics](../README.md)
diff --git a/incident-management/what-are-incident-severity-levels.md b/incident-management/what-are-incident-severity-levels.md
index 2e0732c..00d14ff 100644
--- a/incident-management/what-are-incident-severity-levels.md
+++ b/incident-management/what-are-incident-severity-levels.md
@@ -36,6 +36,16 @@ tags:
- "Declare high, downgrade later" is the correct instinct and worth saying explicitly.
- Tie each severity to concrete consequences - a severity that changes nothing is just a label.
+
+
+## Related Concepts
+
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[What is the difference between Continuous Delivery and Continuous Deployment?]] (`#20`): [What is the difference between Continuous Delivery and Continuous Deployment?](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md)
+
+
+
---
[⬅ Back to Incident Management](./README.md) · [All topics](../README.md)
diff --git a/incident-management/what-is-an-incident-response-plan.md b/incident-management/what-is-an-incident-response-plan.md
index 903e1c4..90a8252 100644
--- a/incident-management/what-is-an-incident-response-plan.md
+++ b/incident-management/what-is-an-incident-response-plan.md
@@ -37,6 +37,16 @@ tags:
- "Accessible when the systems it covers are down" catches a genuine and common failure.
- Mention tabletop exercises - an untested plan is an assumption.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to Incident Management](./README.md) · [All topics](../README.md)
diff --git a/incident-management/what-is-incident-management.md b/incident-management/what-is-incident-management.md
index 1804863..9d19cad 100644
--- a/incident-management/what-is-incident-management.md
+++ b/incident-management/what-is-incident-management.md
@@ -41,6 +41,16 @@ tags:
- Emphasise that the incident commander coordinates rather than fixes - it is the most misunderstood role.
- A timeline captured live, not reconstructed afterwards, is a detail that shows real incident experience.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Incident Management](./README.md) · [All topics](../README.md)
diff --git a/incident-management/what-is-on-call-management.md b/incident-management/what-is-on-call-management.md
index f641505..482aa03 100644
--- a/incident-management/what-is-on-call-management.md
+++ b/incident-management/what-is-on-call-management.md
@@ -38,6 +38,16 @@ tags:
- Naming compensation and sustainable limits shows you think about people, not just systems.
- "You build it, you run it" plus weekly page review is the loop that actually improves things.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Incident Management](./README.md) · [All topics](../README.md)
diff --git a/incident-management/what-is-post-mortem-analysis.md b/incident-management/what-is-post-mortem-analysis.md
index acbfd49..69d3c88 100644
--- a/incident-management/what-is-post-mortem-analysis.md
+++ b/incident-management/what-is-post-mortem-analysis.md
@@ -37,6 +37,16 @@ tags:
- "Contributing factors, not root cause" is a modern, senior framing worth using.
- Tracking action-item completion is the practice that turns post-mortems from ritual into improvement.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to Incident Management](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/how-do-you-import-existing-cloud-infrastructure-into-terraform.md b/infrastructure-as-code/how-do-you-import-existing-cloud-infrastructure-into-terraform.md
index f1024e0..cae5b67 100644
--- a/infrastructure-as-code/how-do-you-import-existing-cloud-infrastructure-into-terraform.md
+++ b/infrastructure-as-code/how-do-you-import-existing-cloud-infrastructure-into-terraform.md
@@ -87,6 +87,16 @@ terraform plan
- Explain how to handle resource dependencies (import parent resources like VPCs/subnets first before importing EC2 instances or security group rules).
- Mention state safety: backup remote state or perform imports in a dedicated workspace/branch before committing changes.
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+- [[What is Configuration Management?]] (`#51`): [What is Configuration Management?](../configuration-management/what-is-configuration-management.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/how-do-you-manage-terraform-state-safely-in-a-team.md b/infrastructure-as-code/how-do-you-manage-terraform-state-safely-in-a-team.md
index 508df73..727e74a 100644
--- a/infrastructure-as-code/how-do-you-manage-terraform-state-safely-in-a-team.md
+++ b/infrastructure-as-code/how-do-you-manage-terraform-state-safely-in-a-team.md
@@ -98,6 +98,16 @@ terraform plan -detailed-exitcode # exit 0 = no changes, 2 = drift, 1 = error
- On workspaces, do not say you use them for dev/stage/prod. Say why: separate directories and backends give real credential and blast-radius isolation.
- `terraform plan -detailed-exitcode` in a scheduled job is a concrete, quotable drift-detection answer.
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+- [[What is Configuration Management?]] (`#51`): [What is Configuration Management?](../configuration-management/what-is-configuration-management.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/how-do-you-recover-a-lost-or-corrupted-terraform-state-file.md b/infrastructure-as-code/how-do-you-recover-a-lost-or-corrupted-terraform-state-file.md
index 9e0ff1e..ffdaf58 100644
--- a/infrastructure-as-code/how-do-you-recover-a-lost-or-corrupted-terraform-state-file.md
+++ b/infrastructure-as-code/how-do-you-recover-a-lost-or-corrupted-terraform-state-file.md
@@ -99,6 +99,16 @@ terraform force-unlock 1a2b3c4d-5e6f-7890-abcd-ef1234567890
- Close by turning it into prevention: versioned encrypted bucket, locking, split state, and no local state in production. That reframes a recovery question as a design answer.
- Do not confuse a stuck lock with corruption. Knowing `force-unlock` - and that using it on a live apply causes the corruption - is a good senior signal.
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+- [[What is Configuration Management?]] (`#51`): [What is Configuration Management?](../configuration-management/what-is-configuration-management.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/how-do-you-run-terraform-through-a-ci-cd-pipeline.md b/infrastructure-as-code/how-do-you-run-terraform-through-a-ci-cd-pipeline.md
index 7d55804..68ba73e 100644
--- a/infrastructure-as-code/how-do-you-run-terraform-through-a-ci-cd-pipeline.md
+++ b/infrastructure-as-code/how-do-you-run-terraform-through-a-ci-cd-pipeline.md
@@ -204,6 +204,16 @@ esac
- Be clear there is no rollback - fix forward, keep blast radius small, expect a held lock after an interrupted apply and verify with `plan` before force-unlocking.
- If the pipeline is slow, diagnose it: state size, backend distance, plugin cache, and planning only the components a change touches. Name Atlantis, Terraform Cloud, or Spacelift as ready-made options. See [managing Terraform state safely in a team](./how-do-you-manage-terraform-state-safely-in-a-team.md), [structuring Terraform code for multiple environments and providers](./how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md), [scanning IaC before it is applied](../devsecops/how-do-you-scan-infrastructure-as-code-before-it-is-applied.md), and [authenticating to AWS without long-lived access keys](../aws-engineering/how-do-you-authenticate-to-aws-without-long-lived-access-keys.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/how-do-you-stop-terraform-from-destroying-or-recreating-a-resource.md b/infrastructure-as-code/how-do-you-stop-terraform-from-destroying-or-recreating-a-resource.md
index 2f17cb9..179ceb6 100644
--- a/infrastructure-as-code/how-do-you-stop-terraform-from-destroying-or-recreating-a-resource.md
+++ b/infrastructure-as-code/how-do-you-stop-terraform-from-destroying-or-recreating-a-resource.md
@@ -185,6 +185,16 @@ terraform show -json tfplan | jq -e '
- Distinguish `-/+` from `+/-` and use it to answer the brief-downtime scenario: an apparently in-place change forced replacement, destroy happened before create, and `create_before_destroy` (plus traffic shifting) is the fix.
- Layer provider-side protection over Terraform-side, and add the process controls: separate state per environment, reviewed saved plans, a policy check that fails unexpected deletions, and no destroy stage in the production pipeline. See [what do terraform init, plan, apply, and refresh actually do](./what-do-terraform-init-plan-apply-and-refresh-actually-do.md), [managing Terraform state safely in a team](./how-do-you-manage-terraform-state-safely-in-a-team.md), [importing existing infrastructure](./how-do-you-import-existing-cloud-infrastructure-into-terraform.md), and [count versus for_each](./what-is-the-difference-between-count-and-for-each-in-terraform.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you handle secrets in Ansible with Vault?]] (`#470`): [How do you handle secrets in Ansible with Vault?](../configuration-management/how-do-you-handle-secrets-in-ansible-with-vault.md)
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md b/infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md
index 2038a24..11ee303 100644
--- a/infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md
+++ b/infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md
@@ -155,6 +155,16 @@ module "eks_dr" {
- Mention pinning: Terraform version, provider versions, module tags, and a committed lock file. Then `plan -out` reviewed and `apply` of that exact plan.
- Close on the diff between environment variable files being your best drift documentation - it is a practical detail that shows you have operated this, not just designed it.
+
+
+## Related Concepts
+
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+- [[How do you manage Ansible inventories and variables across environments?]] (`#469`): [How do you manage Ansible inventories and variables across environments?](../configuration-management/how-do-you-manage-ansible-inventories-and-variables-across-environments.md)
+- [[What is a cloud landing zone?]] (`#215`): [What is a cloud landing zone?](../cloud-engineering/what-is-a-cloud-landing-zone.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md b/infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md
index f5955b6..dd5011b 100644
--- a/infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md
+++ b/infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md
@@ -218,6 +218,16 @@ terraform init -upgrade && terraform plan # read the plan for -/+ replacements
- Prefer `for_each` over `count` in module examples and be ready to say why (stable keys versus index shifting).
- Mention testing and docs generation - `terraform test`/Terratest against `examples/`, `tflint`, `checkov`, `terraform-docs` in a pre-commit hook - and semver where a major version means "this may replace resources". See [structuring Terraform code for multiple environments and providers](./how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md), [count versus for_each](./what-is-the-difference-between-count-and-for-each-in-terraform.md), [what are Terraform providers](./what-are-terraform-providers.md), and [scanning IaC before it is applied](../devsecops/how-do-you-scan-infrastructure-as-code-before-it-is-applied.md).
+
+
+## Related Concepts
+
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/what-are-terraform-providers.md b/infrastructure-as-code/what-are-terraform-providers.md
index 054422d..5af5d00 100644
--- a/infrastructure-as-code/what-are-terraform-providers.md
+++ b/infrastructure-as-code/what-are-terraform-providers.md
@@ -62,6 +62,16 @@ resource "aws_acm_certificate" "cdn" {
- Explain the lock file: it pins provider versions _and_ checksums, and belongs in version control.
- `default_tags` on the AWS provider is a neat answer to "how do you enforce tagging?"
+
+
+## Related Concepts
+
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[What is Configuration Management?]] (`#51`): [What is Configuration Management?](../configuration-management/what-is-configuration-management.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/what-are-terraform-provisioners-and-when-should-you-avoid-them.md b/infrastructure-as-code/what-are-terraform-provisioners-and-when-should-you-avoid-them.md
index 60f2483..eb6764d 100644
--- a/infrastructure-as-code/what-are-terraform-provisioners-and-when-should-you-avoid-them.md
+++ b/infrastructure-as-code/what-are-terraform-provisioners-and-when-should-you-avoid-them.md
@@ -178,6 +178,16 @@ TF_LOG=DEBUG terraform apply 2>&1 | grep -A5 remote-exec # see what the script
- Be balanced rather than dogmatic. Name the uses you would accept: local glue for the next stage, destroy-time graceful cleanup, and appliances with no cloud-init.
- If asked about the difference between a **provider** and a **provisioner**: a provider is the plugin that implements resources and talks to an API declaratively; a provisioner is an imperative escape hatch attached to a resource's lifecycle. They are unrelated despite the similar name, and interviewers use the pair as a trap. See [what are Terraform providers](./what-are-terraform-providers.md), [what is immutable infrastructure](./what-is-immutable-infrastructure-and-how-do-you-adopt-it.md), [Ansible versus Terraform](./what-is-the-difference-between-ansible-and-terraform.md), and [what do terraform init, plan, apply, and refresh actually do](./what-do-terraform-init-plan-apply-and-refresh-actually-do.md).
+
+
+## Related Concepts
+
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+- [[What is Salt (SaltStack)?]] (`#54`): [What is Salt (SaltStack)?](../configuration-management/what-is-salt-saltstack.md)
+- [[How do you handle secrets in Ansible with Vault?]] (`#470`): [How do you handle secrets in Ansible with Vault?](../configuration-management/how-do-you-handle-secrets-in-ansible-with-vault.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/what-do-terraform-init-plan-apply-and-refresh-actually-do.md b/infrastructure-as-code/what-do-terraform-init-plan-apply-and-refresh-actually-do.md
index ce9dca0..82055a0 100644
--- a/infrastructure-as-code/what-do-terraform-init-plan-apply-and-refresh-actually-do.md
+++ b/infrastructure-as-code/what-do-terraform-init-plan-apply-and-refresh-actually-do.md
@@ -141,6 +141,16 @@ terraform state list | wc -l # a huge number explains a slow refresh
- Distinguish `validate` (offline, no API calls, no state) from `plan` (talks to providers, needs credentials and state). That pair gets asked directly.
- Know `TF_LOG=DEBUG` for debug output and `-target` as break-glass only. See [what is Terraform](./what-is-terraform.md), [managing Terraform state safely in a team](./how-do-you-manage-terraform-state-safely-in-a-team.md), [what is infrastructure drift](../advanced-devops-cloud/what-is-infrastructure-drift.md), and [stopping Terraform from destroying or recreating a resource](./how-do-you-stop-terraform-from-destroying-or-recreating-a-resource.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+- [[What is Puppet?]] (`#52`): [What is Puppet?](../configuration-management/what-is-puppet.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/what-is-ansible.md b/infrastructure-as-code/what-is-ansible.md
index b68a3b2..64e36cb 100644
--- a/infrastructure-as-code/what-is-ansible.md
+++ b/infrastructure-as-code/what-is-ansible.md
@@ -74,6 +74,16 @@ ansible-playbook -i inventory/prod site.yml --check --diff # dry run
- `--check --diff` for dry runs, and `serial:` for rolling updates without downtime.
- Vault (or an external secrets manager) is the expected answer on secrets in playbooks.
+
+
+## Related Concepts
+
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[What is Configuration Management?]] (`#51`): [What is Configuration Management?](../configuration-management/what-is-configuration-management.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/what-is-immutable-infrastructure-and-how-do-you-adopt-it.md b/infrastructure-as-code/what-is-immutable-infrastructure-and-how-do-you-adopt-it.md
index cc64f2c..3bd2a9e 100644
--- a/infrastructure-as-code/what-is-immutable-infrastructure-and-how-do-you-adopt-it.md
+++ b/infrastructure-as-code/what-is-immutable-infrastructure-and-how-do-you-adopt-it.md
@@ -117,6 +117,16 @@ The two workflows, side by side
- Mention removing interactive SSH (or making it audited break-glass) as the change that makes it real. Process alone does not survive an incident at 3 a.m.
- Connect it to drift: immutability makes drift structurally impossible, whereas mutable infrastructure can only detect and remediate it. See [what is infrastructure drift](../advanced-devops-cloud/what-is-infrastructure-drift.md) and [what is infrastructure as code](./what-is-infrastructure-as-code.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+- [[How do you manage Ansible inventories and variables across environments?]] (`#469`): [How do you manage Ansible inventories and variables across environments?](../configuration-management/how-do-you-manage-ansible-inventories-and-variables-across-environments.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/what-is-infrastructure-as-code.md b/infrastructure-as-code/what-is-infrastructure-as-code.md
index f9c7f6c..49ff2fd 100644
--- a/infrastructure-as-code/what-is-infrastructure-as-code.md
+++ b/infrastructure-as-code/what-is-infrastructure-as-code.md
@@ -57,6 +57,16 @@ resource "aws_s3_bucket_public_access_block" "artifacts" {
- The best answer includes testing IaC: `plan` review in pull requests, `tflint`/`checkov` policy scanning, and `terratest` for modules.
- Know how you would handle drift caused by an emergency manual change: import or re-apply, then fix the process.
+
+
+## Related Concepts
+
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[What is Configuration Management?]] (`#51`): [What is Configuration Management?](../configuration-management/what-is-configuration-management.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/what-is-terraform.md b/infrastructure-as-code/what-is-terraform.md
index 9ffebbc..e1a8b83 100644
--- a/infrastructure-as-code/what-is-terraform.md
+++ b/infrastructure-as-code/what-is-terraform.md
@@ -59,6 +59,16 @@ module "vpc" {
- Know `terraform import` and `state mv` for adopting existing infrastructure and refactoring modules.
- Pin provider and module versions; unpinned versions cause surprise diffs.
+
+
+## Related Concepts
+
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[What is Configuration Management?]] (`#51`): [What is Configuration Management?](../configuration-management/what-is-configuration-management.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/what-is-the-difference-between-ansible-and-terraform.md b/infrastructure-as-code/what-is-the-difference-between-ansible-and-terraform.md
index 6476f67..56e80ab 100644
--- a/infrastructure-as-code/what-is-the-difference-between-ansible-and-terraform.md
+++ b/infrastructure-as-code/what-is-the-difference-between-ansible-and-terraform.md
@@ -36,6 +36,16 @@ The important structural difference is **state**. Terraform knows exactly which
- Say why Terraform should not be used for in-guest configuration (provisioners are an escape hatch, not a design).
- Mention that immutable infrastructure - bake an image with Packer, replace instead of configure - reduces the need for runtime configuration management altogether.
+
+
+## Related Concepts
+
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[What is Configuration Management?]] (`#51`): [What is Configuration Management?](../configuration-management/what-is-configuration-management.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-as-code/what-is-the-difference-between-count-and-for-each-in-terraform.md b/infrastructure-as-code/what-is-the-difference-between-count-and-for-each-in-terraform.md
index 053088e..9ce8bcd 100644
--- a/infrastructure-as-code/what-is-the-difference-between-count-and-for-each-in-terraform.md
+++ b/infrastructure-as-code/what-is-the-difference-between-count-and-for-each-in-terraform.md
@@ -165,6 +165,16 @@ terraform state list | grep aws_instance # verify the new addresses
- Distinguish `for_each` (creates resources) from `for` expressions (transform values) and `dynamic` blocks (repeat nested blocks). Interviewers often mix these deliberately.
- If asked how to migrate from `count` to `for_each`, name `moved` blocks or `terraform state mv`, and say the plan must show no changes afterwards. That single sentence demonstrates you have done a real migration. See [writing and structuring a reusable Terraform module](./how-do-you-write-and-structure-a-reusable-terraform-module.md), [stopping Terraform from destroying or recreating a resource](./how-do-you-stop-terraform-from-destroying-or-recreating-a-resource.md), and [managing Terraform state safely in a team](./how-do-you-manage-terraform-state-safely-in-a-team.md).
+
+
+## Related Concepts
+
+- [[How do you structure an Ansible role and share it through Galaxy?]] (`#468`): [How do you structure an Ansible role and share it through Galaxy?](../configuration-management/how-do-you-structure-an-ansible-role-and-share-it-through-galaxy.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[What is Configuration Management?]] (`#51`): [What is Configuration Management?](../configuration-management/what-is-configuration-management.md)
+
+
+
---
[⬅ Back to Infrastructure as Code](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-monitoring/how-do-you-add-monitoring-to-an-application-that-has-none.md b/infrastructure-monitoring/how-do-you-add-monitoring-to-an-application-that-has-none.md
index 0d05cb3..7d7a272 100644
--- a/infrastructure-monitoring/how-do-you-add-monitoring-to-an-application-that-has-none.md
+++ b/infrastructure-monitoring/how-do-you-add-monitoring-to-an-application-that-has-none.md
@@ -135,6 +135,16 @@ groups:
- Have an answer for the legacy edge cases - hosts without agents, applications you cannot rebuild (parse logs, add an exporter sidecar), and hybrid on-premises plus cloud with consistent labels in one backend.
- Close on cost: retention and cardinality decided up front, because an observability bill is the usual reason these projects get reversed. See [how do you control metric cardinality and monitoring cost at scale](./how-do-you-control-metric-cardinality-and-monitoring-cost-at-scale.md).
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+
+
+
---
[⬅ Back to Infrastructure Monitoring](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-monitoring/how-do-you-control-metric-cardinality-and-monitoring-cost-at-scale.md b/infrastructure-monitoring/how-do-you-control-metric-cardinality-and-monitoring-cost-at-scale.md
index 4ad8e5b..9d3ae4f 100644
--- a/infrastructure-monitoring/how-do-you-control-metric-cardinality-and-monitoring-cost-at-scale.md
+++ b/infrastructure-monitoring/how-do-you-control-metric-cardinality-and-monitoring-cost-at-scale.md
@@ -106,6 +106,16 @@ REQ.labels(route="/orders/:id", status_class="5xx").inc(exemplar={"trace_id": tr
- Route high-cardinality questions to logs and traces, and mention exemplars as the bridge. Wanting per-user metrics is the classic misuse.
- Close on governance: a cardinality budget alerted on growth, a PR check on new labels, and per-team cost attribution. One-off cleanups regress within a quarter.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Infrastructure Monitoring](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-monitoring/what-are-monitoring-best-practices.md b/infrastructure-monitoring/what-are-monitoring-best-practices.md
index 90d707a..d8c26a3 100644
--- a/infrastructure-monitoring/what-are-monitoring-best-practices.md
+++ b/infrastructure-monitoring/what-are-monitoring-best-practices.md
@@ -48,6 +48,16 @@ tags:
- The dead-man's switch (alerting on silence) is a detail few candidates mention.
- Cardinality control is the operational answer that shows you have run Prometheus at scale.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to Infrastructure Monitoring](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-monitoring/what-are-monitoring-tools.md b/infrastructure-monitoring/what-are-monitoring-tools.md
index c6f2df3..4788122 100644
--- a/infrastructure-monitoring/what-are-monitoring-tools.md
+++ b/infrastructure-monitoring/what-are-monitoring-tools.md
@@ -37,6 +37,16 @@ A very common pattern: Prometheus and Grafana for metrics and dashboards, Loki f
- Be ready to discuss cost - observability spend rivalling infrastructure spend is a real and common problem.
- Have a reasoned opinion on build-versus-buy rather than a favourite tool.
+
+
+## Related Concepts
+
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[What is GitLab CI?]] (`#19`): [What is GitLab CI?](../cicd/what-is-gitlab-ci.md)
+
+
+
---
[⬅ Back to Infrastructure Monitoring](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-monitoring/what-is-application-performance-monitoring.md b/infrastructure-monitoring/what-is-application-performance-monitoring.md
index c1b1e54..ed12111 100644
--- a/infrastructure-monitoring/what-is-application-performance-monitoring.md
+++ b/infrastructure-monitoring/what-is-application-performance-monitoring.md
@@ -37,6 +37,16 @@ tags:
- OpenTelemetry as the instrumentation standard is the modern answer.
- The workflow - alert → dashboard → trace → log line - demonstrates how you actually debug.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Infrastructure Monitoring](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-monitoring/what-is-infrastructure-monitoring.md b/infrastructure-monitoring/what-is-infrastructure-monitoring.md
index 29b797b..bba6748 100644
--- a/infrastructure-monitoring/what-is-infrastructure-monitoring.md
+++ b/infrastructure-monitoring/what-is-infrastructure-monitoring.md
@@ -40,6 +40,16 @@ Infrastructure monitoring is necessary but not sufficient: it tells you a node i
- Predictive alerting ("will fill in four hours") over static thresholds is a mature practice.
- Container CPU throttling as the metric that matters is a strong Kubernetes-specific detail.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Infrastructure Monitoring](./README.md) · [All topics](../README.md)
diff --git a/infrastructure-monitoring/what-is-log-management.md b/infrastructure-monitoring/what-is-log-management.md
index ec40aed..9eef775 100644
--- a/infrastructure-monitoring/what-is-log-management.md
+++ b/infrastructure-monitoring/what-is-log-management.md
@@ -58,6 +58,16 @@ tags:
- Buffering with Kafka shows you have run a pipeline that survived an Elasticsearch outage.
- Cost and retention is a legitimate senior concern; volunteer it before being asked.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Infrastructure Monitoring](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/how-do-you-answer-scenario-based-troubleshooting-questions.md b/interview-experience/how-do-you-answer-scenario-based-troubleshooting-questions.md
index e12ec9d..e93cc02 100644
--- a/interview-experience/how-do-you-answer-scenario-based-troubleshooting-questions.md
+++ b/interview-experience/how-do-you-answer-scenario-based-troubleshooting-questions.md
@@ -103,6 +103,16 @@ STRONG ANSWER — narrate this shape
- If you do not know, reason from first principles and say so. Confident fabrication is the fastest way to fail the round.
- Related deep-dives worth reading first: [troubleshooting a Pod stuck in Pending or CrashLoopBackOff](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-in-pending-or-crashloopbackoff.md), [recovering a lost Terraform state file](../infrastructure-as-code/how-do-you-recover-a-lost-or-corrupted-terraform-state-file.md), and [what happens when a user opens your application](../network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md).
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/how-do-you-explain-your-devops-project-in-an-interview.md b/interview-experience/how-do-you-explain-your-devops-project-in-an-interview.md
index a00f979..6b3fa1d 100644
--- a/interview-experience/how-do-you-explain-your-devops-project-in-an-interview.md
+++ b/interview-experience/how-do-you-explain-your-devops-project-in-an-interview.md
@@ -87,6 +87,16 @@ ANTICIPATED FOLLOW-UPS — prepare two sentences each
- Ask if you may sketch the architecture. It buys thinking time and interviewers remember candidates who draw.
- Keep one failure story and one improvement story loaded. They cover most of the behavioural round too.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/how-do-you-handle-a-devops-system-design-round.md b/interview-experience/how-do-you-handle-a-devops-system-design-round.md
index 794a2fe..7b7717d 100644
--- a/interview-experience/how-do-you-handle-a-devops-system-design-round.md
+++ b/interview-experience/how-do-you-handle-a-devops-system-design-round.md
@@ -92,6 +92,16 @@ Say the trade-off out loud, every time. This is what is being graded.
- Bring up cost and its two or three biggest line items unprompted.
- End by naming the first bottleneck at 10x and the part you are least sure about. Confident humility outperforms false certainty every time.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-are-the-most-frequently-asked-devops-interview-questions.md b/interview-experience/what-are-the-most-frequently-asked-devops-interview-questions.md
index 8779950..78982ef 100644
--- a/interview-experience/what-are-the-most-frequently-asked-devops-interview-questions.md
+++ b/interview-experience/what-are-the-most-frequently-asked-devops-interview-questions.md
@@ -136,6 +136,16 @@ SELF-CHECK — can you answer each in 2-4 sentences, with a trade-off?
- Cover the whole checklist shallowly before going deep anywhere. A gap in a basic area costs more than extra depth in a strong one.
- Tailor the last 20% to the job description - the tools it names are the tools you will be asked about.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-behavioural-devops-interview-questions-come-up-when-the-company-is-not-named.md b/interview-experience/what-behavioural-devops-interview-questions-come-up-when-the-company-is-not-named.md
index 12e8db2..2b942f2 100644
--- a/interview-experience/what-behavioural-devops-interview-questions-come-up-when-the-company-is-not-named.md
+++ b/interview-experience/what-behavioural-devops-interview-questions-come-up-when-the-company-is-not-named.md
@@ -102,6 +102,16 @@ STAR, BUT WITH THE PROPORTIONS RIGHT
- The mentoring question is asking whether you can scale yourself. Talk about pairing on real work rather than assigning reading, letting juniors own something small end to end with a safety net, reviewing for reasoning rather than style, and writing the runbook so the next person does not need you. Add that you protect their focus time, since a junior interrupted constantly delivers nothing. See [what toil is in SRE](../site-reliability-engineering/what-is-toil-in-sre.md).
- Two related pages in this guide are worth reading alongside this set: [how to explain your DevOps project in an interview](./how-do-you-explain-your-devops-project-in-an-interview.md) and [answering scenario-based troubleshooting questions](./how-do-you-answer-scenario-based-troubleshooting-questions.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-cloud-and-devops-interview-questions-does-ibm-ask.md b/interview-experience/what-cloud-and-devops-interview-questions-does-ibm-ask.md
index 79001bd..63b54cd 100644
--- a/interview-experience/what-cloud-and-devops-interview-questions-does-ibm-ask.md
+++ b/interview-experience/what-cloud-and-devops-interview-questions-does-ibm-ask.md
@@ -166,6 +166,16 @@ find "${TARGET:?TARGET not set}" -xdev -type f -name '*.log' -mtime +10 -delete
- Parallel Jenkins stages: a `parallel` block containing named stages, or `parallel` with a map of closures in scripted syntax, plus `failFast true` when one failure should abort the rest. See [Jenkins pipelines](../cicd/what-are-jenkins-pipelines.md).
- For 200-status extraction from a log, `grep ' 200 '` is fragile — better is a field-aware match such as `awk '$9 == 200'` on a combined access log, and say why: a bare `grep 200` also matches byte counts and timestamps. See [analysing logs with grep, awk, and sed](../linux-administration/how-do-you-analyse-logs-and-text-files-with-grep-awk-and-sed.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-cloud-engineering-interview-questions-come-up-when-the-company-is-not-named.md b/interview-experience/what-cloud-engineering-interview-questions-come-up-when-the-company-is-not-named.md
index af95e1f..414095f 100644
--- a/interview-experience/what-cloud-engineering-interview-questions-come-up-when-the-company-is-not-named.md
+++ b/interview-experience/what-cloud-engineering-interview-questions-come-up-when-the-company-is-not-named.md
@@ -105,6 +105,16 @@ THE QUESTION THAT DEFINES SET 1
- For AWS security policies, give layered controls rather than a list of services: identity through federated short-lived credentials with no long-lived keys, guardrails through service control policies and permission boundaries, network isolation with private subnets and VPC endpoints, encryption with customer-managed KMS keys, detection with CloudTrail, GuardDuty, and Config, and least privilege generated from observed activity with Access Analyzer. See [least-privilege identity in the cloud](../cloud-engineering/how-do-you-design-least-privilege-identity-in-the-cloud.md).
- The migration question wants a narrative with a decision in it: what you assessed, which of the migration patterns you chose per workload — rehost, replatform, refactor — how you moved the data and cut over, and what you would do differently. See [connecting an on-premises network to the cloud](../cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md).
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-cloud-engineering-interview-questions-does-turning-ask.md b/interview-experience/what-cloud-engineering-interview-questions-does-turning-ask.md
index 90eb832..32df688 100644
--- a/interview-experience/what-cloud-engineering-interview-questions-does-turning-ask.md
+++ b/interview-experience/what-cloud-engineering-interview-questions-does-turning-ask.md
@@ -76,6 +76,16 @@ THE QUESTION THAT DECIDES THE ROUND
- Lambda cold start needs the mechanism then the mitigations: the cold start is the time to provision an execution environment, download and initialise the runtime and your package, and run any code outside the handler — so it affects the first invocation and every scale-out, not steady state. Mitigations in order of effectiveness: provisioned concurrency for predictable latency, SnapStart for Java, a smaller deployment package with fewer dependencies, moving SDK client construction and connection setup outside the handler so it is reused across invocations, and avoiding VPC attachment unless private resources genuinely require it. Tie it back to the payment-gateway question — an intermittent external-API failure that only happens on the first request after idle is very often a cold-start timeout.
- Blue-green should be answered with purpose, mechanism, and the switch-back path, since they asked for all three. Purpose: eliminate deployment risk by bringing a complete second environment up, validating it, then cutting traffic over in one atomic step — so rollback is instant rather than another deployment. Mechanism for switching: in Kubernetes, patch the Service's label selector from `version: blue` to `version: green`; on AWS, change the ALB listener rule's target group or shift the weighted forward action. Switching _back_ is the same operation in reverse, which is only possible because you kept the old version running — so say that you keep blue warm for a defined soak window before tearing it down, and that the constraint that usually rules blue-green out is a shared database schema that must satisfy both versions at once. See [deployment strategies](../devops-tools-and-automation/what-are-deployment-strategies.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-cloud-platform-engineering-interview-questions-does-ust-ask.md b/interview-experience/what-cloud-platform-engineering-interview-questions-does-ust-ask.md
index 36824a8..974bbdc 100644
--- a/interview-experience/what-cloud-platform-engineering-interview-questions-does-ust-ask.md
+++ b/interview-experience/what-cloud-platform-engineering-interview-questions-does-ust-ask.md
@@ -86,6 +86,16 @@ THE UNUSUAL PAIR
- On the Terraform EC2 writing task, the marks are for hygiene rather than the resource block: declare `variable "instance_type"` and `variable "region"` with types, descriptions, and sensible defaults; pass the region to the provider; look the AMI up with a `data "aws_ami"` block rather than hardcoding an ID that is region-specific; and add tags. Mentioning that an AMI ID is not portable across regions — which is exactly why the `region` variable makes a hardcoded AMI a bug — is the detail that shows you have done this for real.
- Blue-green should be answered with purpose, the switch mechanism, and the constraint: two complete environments, validate the idle one, then cut over atomically — the Service label selector in Kubernetes, or the ALB listener rule's target group on AWS — keeping the old version warm so rollback is a switch rather than a deployment. The constraint that usually rules it out is a shared database schema that must satisfy both versions simultaneously, which is why expand-and-contract migrations matter. See [deployment strategies](../devops-tools-and-automation/what-are-deployment-strategies.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-cloud-sre-interview-questions-does-nice-ask.md b/interview-experience/what-cloud-sre-interview-questions-does-nice-ask.md
index e652ef0..2814214 100644
--- a/interview-experience/what-cloud-sre-interview-questions-does-nice-ask.md
+++ b/interview-experience/what-cloud-sre-interview-questions-does-nice-ask.md
@@ -90,6 +90,16 @@ WHAT ROUND 2 IS ACTUALLY DOING
- The "recent challenge" question is a chance to look senior, so pick something with a real trade-off and a resolution — resistance to a quality gate, a migration that had to happen with no downtime, a cost overrun — and describe what you changed and what you learned rather than blaming a tool or a colleague.
- On the third-cloud question, be straightforwardly honest. Claiming GCP experience you do not have invites an immediate follow-up you cannot answer; saying "Azure and AWS in production, GCP only through personal projects" costs nothing and builds credibility for everything else you claimed. See [how the core services of AWS, Azure, and GCP map to each other](../cloud-engineering/how-do-the-core-services-of-aws-azure-and-gcp-map-to-each-other.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-and-cloud-security-interview-questions-does-f5-ask.md b/interview-experience/what-devops-and-cloud-security-interview-questions-does-f5-ask.md
index b4390c5..9e71ba7 100644
--- a/interview-experience/what-devops-and-cloud-security-interview-questions-does-f5-ask.md
+++ b/interview-experience/what-devops-and-cloud-security-interview-questions-does-f5-ask.md
@@ -94,6 +94,16 @@ READ THE COMPANY
- Yes, a Pod can run on a control-plane node. Explain the mechanism rather than just answering: managed clusters do not let you, and self-managed control-plane nodes carry a `NoSchedule` taint, so a workload needs a matching toleration — and the control plane's own components run there as static Pods regardless. Add that you would not do it in production because a busy workload can starve the API server and etcd. See [controlling which node a Pod runs on](../kubernetes/how-do-you-control-which-node-a-pod-runs-on.md).
- Transit Gateway versus VPC is comparing a network to a router, so say that plainly: a VPC is an isolated virtual network containing your subnets and resources; a Transit Gateway is a regional hub that interconnects many VPCs and on-premises connections with transitive routing, which peering cannot do. See [structuring a multi-account AWS organisation](../aws-engineering/how-do-you-structure-a-multi-account-aws-organisation.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-and-sre-interview-questions-does-infosys-ask.md b/interview-experience/what-devops-and-sre-interview-questions-does-infosys-ask.md
index 056aa48..6c039df 100644
--- a/interview-experience/what-devops-and-sre-interview-questions-does-infosys-ask.md
+++ b/interview-experience/what-devops-and-sre-interview-questions-does-infosys-ask.md
@@ -144,6 +144,16 @@ THE MOST-REPEATED TOPIC IN THIS COLLECTION
- Rounds 3 and 4 both ask soft questions — team size, Pods managed, client overview, team management, client proposals. Infosys is a services company, so these are scored: have crisp factual answers ready and do not treat them as filler.
- "Tell me one task or tool you built from scratch" is the highest-leverage question in round 3. Prepare one story with the problem, what you built, and a measurable outcome. See [turning ad-hoc scripts into maintainable automation](../scripting-and-automation/how-do-you-turn-a-pile-of-ad-hoc-scripts-into-maintainable-automation.md).
+
+
+## Related Concepts
+
+- [[How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?]] (`#455`): [How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?](../cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-and-sre-interview-questions-does-jpmorgan-ask.md b/interview-experience/what-devops-and-sre-interview-questions-does-jpmorgan-ask.md
index 9045049..2db798a 100644
--- a/interview-experience/what-devops-and-sre-interview-questions-does-jpmorgan-ask.md
+++ b/interview-experience/what-devops-and-sre-interview-questions-does-jpmorgan-ask.md
@@ -156,6 +156,16 @@ JPMORGAN'S SIGNATURE
- Two candles measuring 45 minutes: light candle A at both ends and candle B at one end simultaneously. A burns out in 30 minutes; at that instant light B's second end, and B's remaining 30 minutes of material burns in 15. Total 45. Say the reasoning aloud — burning from both ends halves the time.
- Set 1 mixes application development into a DevOps interview, which is normal at JPMorgan. If Spring Boot, Java streams, and Kafka are outside your experience, say so cleanly and pivot to what you do own — but expect the platform half of the round to carry more weight for a DevOps title.
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+- [[How do you do capacity planning?]] (`#230`): [How do you do capacity planning?](../site-reliability-engineering/how-do-you-do-capacity-planning.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-and-sre-interview-questions-does-tcs-ask.md b/interview-experience/what-devops-and-sre-interview-questions-does-tcs-ask.md
index 037f654..0d0e484 100644
--- a/interview-experience/what-devops-and-sre-interview-questions-does-tcs-ask.md
+++ b/interview-experience/what-devops-and-sre-interview-questions-does-tcs-ask.md
@@ -136,6 +136,16 @@ TCS'S DISTINCTIVE TOPIC
- `terraform drift` is not a command, so correct it: `terraform plan` reveals drift, and `plan -refresh-only` (with `apply -refresh-only`) is the purpose-built way to detect and reconcile it — the old `terraform refresh` being deprecated in its favour. Terraform Cloud has a managed drift-detection feature, which may be what the interviewer means. See [managing Terraform state safely in a team](../infrastructure-as-code/how-do-you-manage-terraform-state-safely-in-a-team.md).
- On Linux, `df -h /mount/point` gives space on a mount, and `df -i` gives inode usage — mention the inode variant, because a filesystem can be half empty and still unable to create files. File permissions are read, write, and execute for user, group, and other, expressed octally, plus the special bits (setuid, setgid, sticky) and ACLs. See [Linux filesystem hierarchy](../linux-administration/what-is-linux-file-system-hierarchy.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-consultant-interview-questions-does-amazon-ask.md b/interview-experience/what-devops-consultant-interview-questions-does-amazon-ask.md
index ec9c1b1..44d6049 100644
--- a/interview-experience/what-devops-consultant-interview-questions-does-amazon-ask.md
+++ b/interview-experience/what-devops-consultant-interview-questions-does-amazon-ask.md
@@ -137,6 +137,16 @@ CONSISTENT ACROSS BOTH
- For the boto3 script, use a filtered `describe_instances` call with both `instance-state-name` set to `running` and `tag:Environment` set to `PROD` so the filtering happens server-side, and paginate. Filtering in Python after fetching everything is the answer that loses marks. See [what you use Python for as a DevOps engineer](../scripting-and-automation/what-do-you-use-python-for-as-a-devops-engineer.md).
- Cluster backup means etcd snapshots for self-managed control planes and a tool such as Velero for namespaced resources plus persistent volumes. Say which one covers what, since they are not interchangeable. See [what disaster recovery is](../scalability-and-high-availability/what-is-disaster-recovery.md).
+
+
+## Related Concepts
+
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-come-up-when-the-company-is-not-named.md b/interview-experience/what-devops-interview-questions-come-up-when-the-company-is-not-named.md
index a280ced..afa3408 100644
--- a/interview-experience/what-devops-interview-questions-come-up-when-the-company-is-not-named.md
+++ b/interview-experience/what-devops-interview-questions-come-up-when-the-company-is-not-named.md
@@ -264,6 +264,16 @@ WHAT AN UNATTRIBUTED SAMPLE TELLS YOU
- For "top 5 infrastructure attacks", pick five with a mitigation each rather than listing threat names: credential compromise and privilege escalation (short-lived federated credentials, MFA, least privilege), exposed storage or management ports (Block Public Access, no `0.0.0.0/0` on 22 or 3389, private subnets), unpatched vulnerabilities and supply-chain compromise (scanning, image signing, immutable rebuilds), DDoS and application-layer abuse (WAF, rate limiting, Shield), and misconfiguration drift (IaC scanning, Config rules, guardrails via SCPs). See [designing defence in depth for a cloud network](../network-security/how-do-you-design-defence-in-depth-for-a-cloud-network.md).
- The multi-container Pod use case question wants a real answer, not a number. Say containers in a Pod share the network namespace and volumes, so legitimate multi-container patterns are a sidecar proxy, a log shipper, a config or secret refresher, and an init container for setup — and that four or five containers in one Pod is usually a design smell unless there is a genuine tight coupling, because they scale and fail together. Naming that as a smell is the better answer. See [what a Pod is](../kubernetes/what-is-a-pod-in-kubernetes.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-accenture-ask.md b/interview-experience/what-devops-interview-questions-does-accenture-ask.md
index 90e1d6f..a17a24f 100644
--- a/interview-experience/what-devops-interview-questions-does-accenture-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-accenture-ask.md
@@ -67,6 +67,16 @@ WHAT THIS ROUND IS REALLY TESTING
- All-tiers-private is answered with a public-facing load balancer or ingress in public subnets, targets in private ones, and NAT only for egress. Draw the traffic path rather than listing services. See [designing a production-ready VPC](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md).
- S3 is a regional service outside your VPC, reached over the public endpoint via NAT or an internet gateway, or privately through a gateway VPC endpoint. The interviewer is fishing for the endpoint. See [core AWS services](../aws-engineering/what-are-the-core-aws-services-a-devops-engineer-uses-daily.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-accolite-ask.md b/interview-experience/what-devops-interview-questions-does-accolite-ask.md
index 286859e..823225b 100644
--- a/interview-experience/what-devops-interview-questions-does-accolite-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-accolite-ask.md
@@ -73,6 +73,16 @@ HAVING COUNT(*) > 3;
- The two concept questions are short, so answer them tightly and completely. For Kubernetes, walk the control plane (API server, etcd, scheduler, controller manager) then the node (kubelet, kube-proxy, runtime), and finish with the reconciliation loop. See [main components of Kubernetes architecture](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md) and [what a CI/CD pipeline is](../cicd/what-is-ci-cd-pipeline.md).
- Bash would be a defensible answer for the directory watcher, but they explicitly asked for Python. Follow the constraint given. See [when to use Bash and when to use Python](../scripting-and-automation/when-do-you-use-bash-and-when-do-you-use-python.md).
+
+
+## Related Concepts
+
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-alphadyne-ask.md b/interview-experience/what-devops-interview-questions-does-alphadyne-ask.md
index f30ef5a..dd194ec 100644
--- a/interview-experience/what-devops-interview-questions-does-alphadyne-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-alphadyne-ask.md
@@ -98,6 +98,16 @@ NOTE THE CLOUD SWITCH
- The assessment answers worth memorising: Ansible's `apt`/`yum`/`dnf` or the generic `package` module for installing nginx and ensuring packages, with `state: present` as the idempotent form; `resources.requests` and `resources.limits` on the Pod spec, plus `ResourceQuota` and `LimitRange` at namespace level; `iostat` (or `iotop`) for disk reads and writes; `~/.ssh/authorized_keys` for the developer's public key; and `/etc/shadow` for password hashes. See [what Ansible is](../infrastructure-as-code/what-is-ansible.md).
- The Azure Terraform build is graded on structure as much as correctness: one resource group, a VNet with non-overlapping subnet CIDRs, NSGs that keep the database tier unreachable from the internet, and public IPs only on the load balancer and Bastion — never on the application VMs. Note in passing that username-and-password VM authentication was requested but SSH keys are the production choice. See [what Terraform is](../infrastructure-as-code/what-is-terraform.md) and [network segmentation](../network-security/what-is-network-segmentation.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?]] (`#455`): [How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?](../cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-amex-ask.md b/interview-experience/what-devops-interview-questions-does-amex-ask.md
index f0d2976..6af5101 100644
--- a/interview-experience/what-devops-interview-questions-does-amex-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-amex-ask.md
@@ -75,6 +75,16 @@ WHERE THE WEIGHT SITS
- Financial-services interviews follow the deployment question with change control: who approves a release, what the rollback plan is, and how you prove it worked. Be ready even though it was not asked here.
- The CrashLoopBackOff answer should name `kubectl logs --previous`, the container exit code, and the split between `OOMKilled`, a bad config or secret, and a failing probe. See [debugging Pods](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-in-pending-or-crashloopbackoff.md).
+
+
+## Related Concepts
+
+- [[What is the difference between SRE, DevOps, and Platform Engineering?]] (`#232`): [What is the difference between SRE, DevOps, and Platform Engineering?](../site-reliability-engineering/what-is-the-difference-between-sre-devops-and-platform-engineering.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-arrise-solutions-ask.md b/interview-experience/what-devops-interview-questions-does-arrise-solutions-ask.md
index cb87b0a..1118d69 100644
--- a/interview-experience/what-devops-interview-questions-does-arrise-solutions-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-arrise-solutions-ask.md
@@ -101,6 +101,16 @@ THE PATTERN
- Both TLS questions want the handshake mechanism, not "it encrypts traffic": certificate presented and validated against a trusted CA chain, hostname checked, key agreement, then symmetric encryption for the session. See [what SSL/TLS is](../network-security/what-is-ssl-tls.md).
- kube-proxy does not communicate with nodes; it runs _on_ each node, watches Services and EndpointSlices from the API server, and programs iptables or IPVS rules locally. Correcting the premise politely is a strong signal. See [main components of Kubernetes architecture](../kubernetes/what-are-the-main-components-of-kubernetes-architecture.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-aspire-ask.md b/interview-experience/what-devops-interview-questions-does-aspire-ask.md
index eb23da0..81f077f 100644
--- a/interview-experience/what-devops-interview-questions-does-aspire-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-aspire-ask.md
@@ -82,6 +82,16 @@ FORMAT WARNING
- Sticky sessions on an ALB are implemented with a cookie — either the load balancer's own `AWSALB` cookie or an application-defined one — and the follow-up is always "what breaks when the target dies", so volunteer that the session is lost unless state is externalised to something like Redis. See [load balancing](../scalability-and-high-availability/what-is-load-balancing.md).
- S3 cross-region replication needs versioning enabled on both buckets, a replication role, and a rule; add that it replicates new objects only unless you run batch replication, which is the usual follow-up. See [S3 storage classes](../aws-engineering/what-are-the-s3-storage-classes-and-when-do-you-use-each.md).
+
+
+## Related Concepts
+
+- [[How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?]] (`#455`): [How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?](../cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-belcan-ask.md b/interview-experience/what-devops-interview-questions-does-belcan-ask.md
index c1cbde1..8f9e75c 100644
--- a/interview-experience/what-devops-interview-questions-does-belcan-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-belcan-ask.md
@@ -89,6 +89,16 @@ pipeline {
- For the local-to-remote sequence, give it in order and say what each step does to which store: `git status`, `git add ` to stage, `git commit -m` to write the object, `git pull --rebase` to integrate remote work, then `git push`. Volunteering the `pull` before the `push` shows you have hit a rejected push before. See [handling merge conflicts](../version-control/how-to-handle-merge-conflicts-in-git.md).
- On the Terraform state file, cover what it stores (the mapping from configuration to real resource IDs plus attributes), where it belongs (remote backend, encrypted, versioned), why locking matters, and that it may contain secrets in plain text. See [managing Terraform state safely in a team](../infrastructure-as-code/how-do-you-manage-terraform-state-safely-in-a-team.md) and [recovering a lost or corrupted state file](../infrastructure-as-code/how-do-you-recover-a-lost-or-corrupted-terraform-state-file.md).
+
+
+## Related Concepts
+
+- [[How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?]] (`#455`): [How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?](../cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-blue-yonder-ask.md b/interview-experience/what-devops-interview-questions-does-blue-yonder-ask.md
index 68c0e9c..51a093c 100644
--- a/interview-experience/what-devops-interview-questions-does-blue-yonder-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-blue-yonder-ask.md
@@ -75,6 +75,16 @@ Blue Yonder — DevOps Engineer, reported round
- The stateless follow-up is a trap worth catching: a stateless application still has data, it just does not keep it locally — it lives in a database, cache, object store, or queue, and that is precisely what makes the Pod disposable. Then contrast with StatefulSets, stable network identity, and per-replica volumes for the workloads that genuinely cannot be stateless. See [StatefulSets](../container-orchestration-advanced/what-are-statefulsets-in-kubernetes.md).
- For SonarQube and Snyk, describe them as gates rather than steps: SonarQube runs after unit tests and fails the build on a quality-gate breach, Snyk scans dependencies and the container image, and you decide which severity blocks the pipeline versus which only files a ticket. That policy decision is the real question. See [SAST, DAST, IAST, and SCA](../devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md) and [what a DevSecOps pipeline looks like end to end](../devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md).
+
+
+## Related Concepts
+
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-bmw-techworks-ask.md b/interview-experience/what-devops-interview-questions-does-bmw-techworks-ask.md
index 60784ad..2a16ad6 100644
--- a/interview-experience/what-devops-interview-questions-does-bmw-techworks-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-bmw-techworks-ask.md
@@ -78,6 +78,16 @@ blkid /dev/nvme1n1 # -> add the UUID line to /etc/fstab
- The Vault question invites a specific detail: dynamic database credentials, leases and renewal, or the Kubernetes auth method. Any one of those proves real use rather than exposure. See [managing secrets in CI/CD pipelines](../devsecops/how-do-you-manage-secrets-in-ci-cd-pipelines.md).
- The Java question is a fit check for an automotive engineering organisation, not a coding test. Answer honestly and pivot to the languages you do use and what you build with them. See [when to use Bash and when to use Python](../scripting-and-automation/when-do-you-use-bash-and-when-do-you-use-python.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-capgemini-ask.md b/interview-experience/what-devops-interview-questions-does-capgemini-ask.md
index 39ee259..5a28236 100644
--- a/interview-experience/what-devops-interview-questions-does-capgemini-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-capgemini-ask.md
@@ -146,6 +146,16 @@ THE OUTLIER
- Pod `Pending` almost always means the scheduler cannot place it: insufficient CPU or memory, no node matching the selector or affinity, an untolerated taint, or an unbound PVC. `kubectl describe pod` and read the events — say that first. See [troubleshooting a Pod stuck in Pending or CrashLoopBackOff](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-in-pending-or-crashloopbackoff.md).
- MySQL reaching Key Vault privately is a private-endpoint question: a private endpoint for Key Vault inside the VNet, private DNS zone resolution so the vault's hostname resolves to the private address, and the vault firewall set to deny public access. The Azure equivalent of a VPC endpoint. See [defence in depth for a cloud network](../network-security/how-do-you-design-defence-in-depth-for-a-cloud-network.md).
+
+
+## Related Concepts
+
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-cgi-ask.md b/interview-experience/what-devops-interview-questions-does-cgi-ask.md
index e0c85b0..36c65da 100644
--- a/interview-experience/what-devops-interview-questions-does-cgi-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-cgi-ask.md
@@ -90,6 +90,16 @@ ENTRYPOINT ["/app"]
- For logs that stopped, check the boring causes first and say so: the filesystem is full, the log file was rotated and the process still holds the old descriptor, permissions changed, the log level was raised, or the collector rather than the database is what actually broke. Distinguishing "nothing is writing logs" from "logs are written but not shipped" is the key move. See [troubleshooting SSH failures, high CPU, and disk space](../linux-administration/how-do-you-troubleshoot-ssh-failures-high-cpu-and-disk-space-on-linux-servers.md).
- In the multi-stage Dockerfile, say out loud why each line is where it is: dependency manifests copied before source so the layer caches, a build stage discarded at the end, a minimal non-root runtime image. That commentary is the actual answer. See [what a Dockerfile is](../docker/what-is-dockerfile.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-cisco-ask.md b/interview-experience/what-devops-interview-questions-does-cisco-ask.md
index 83d0894..a5d7f97 100644
--- a/interview-experience/what-devops-interview-questions-does-cisco-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-cisco-ask.md
@@ -140,6 +140,16 @@ resource "aws_security_group" "ssh_only" {
- Securing a public API on-premises should reach a reverse proxy or gateway terminating TLS, authentication with OAuth 2.0 or mTLS, rate limiting and quotas, a WAF in front, input validation, and network segmentation so the gateway is the only internet-reachable component. See [zero-trust security](../network-security/what-is-zero-trust-security.md) and [designing defence in depth for a cloud network](../network-security/how-do-you-design-defence-in-depth-for-a-cloud-network.md).
- "Proactive monitoring" is a phrase Cisco uses deliberately — it means catching degradation before users do. Answer with leading indicators: saturation trends, error-budget burn rate, synthetic checks, and capacity forecasting, rather than threshold alerts that fire after the outage. See [designing alerts that page a human](../site-reliability-engineering/how-do-you-design-alerts-that-page-a-human.md) and [capacity planning](../site-reliability-engineering/how-do-you-do-capacity-planning.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-cts-cognizant-ask.md b/interview-experience/what-devops-interview-questions-does-cts-cognizant-ask.md
index 73e7db2..c6c80e6 100644
--- a/interview-experience/what-devops-interview-questions-does-cts-cognizant-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-cts-cognizant-ask.md
@@ -114,6 +114,16 @@ other = [s for s in items if not s.startswith(("a", "b"))] # ['vca']
- Chaining Jenkins pipelines is answered with a `build job:` step at the end of A (with `wait: false` if you do not want to block), or the Parameterized Trigger plugin, and the better modern answer is an event or webhook so the coupling is explicit. See [Jenkins pipelines](../cicd/what-are-jenkins-pipelines.md).
- Connection draining — deregistration delay on AWS, drain on Azure — lets in-flight requests finish before a target is removed. Tie it to Kubernetes: `preStop` hooks and `terminationGracePeriodSeconds` do the same job for Pods. That cross-mapping is a strong finish. See [deployment strategies](../devops-tools-and-automation/what-are-deployment-strategies.md).
+
+
+## Related Concepts
+
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-deloitte-ask.md b/interview-experience/what-devops-interview-questions-does-deloitte-ask.md
index 737cf7c..cb2a752 100644
--- a/interview-experience/what-devops-interview-questions-does-deloitte-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-deloitte-ask.md
@@ -157,6 +157,16 @@ DELOITTE'S SIGNATURE
- For "app unreachable but EC2 is fine", the causes are the same as any 503 chain: the process is not listening, the security group or NACL blocks the port, the target group health check fails, DNS points elsewhere, or the certificate expired. Say you would `curl localhost` on the instance first to split application from network. See [what happens when a user opens your application in a browser](../network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md).
- Small Linux answers worth having exact: `nproc` (or `lscpu`) for core count, `du -h ` or `ls -lh` for one file's size, and `crontab -e` with the five-field schedule for cron. See [basic Linux commands](../linux-administration/what-are-the-basic-linux-commands-every-devops-engineer-should-know.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-elixr-labs-ask.md b/interview-experience/what-devops-interview-questions-does-elixr-labs-ask.md
index 419e628..154315b 100644
--- a/interview-experience/what-devops-interview-questions-does-elixr-labs-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-elixr-labs-ask.md
@@ -102,6 +102,16 @@ THE INTERVIEWER'S TECHNIQUE
- Hub-and-spoke deserves the _why_ as well as the shape: shared services — firewall, gateways, DNS, jump hosts — live once in the hub, spokes peer to it for isolation per workload or environment, and transit between spokes goes through the hub where it can be inspected. Mention that spoke-to-spoke peering does not transit by default, which is why the hub needs a firewall or route server. See [network segmentation](../network-security/what-is-network-segmentation.md).
- The DR question in an Azure context should name mechanisms, not just RTO and RPO: Site Recovery for VM replication and failover, geo-redundant or read-access geo-redundant storage, paired-region deployment, and Traffic Manager or Front Door to redirect traffic. Say whether you have actually failed over or only tested a plan on paper — honesty here reads better than an overstated claim. See [disaster recovery](../scalability-and-high-availability/what-is-disaster-recovery.md).
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-emphasis-ask.md b/interview-experience/what-devops-interview-questions-does-emphasis-ask.md
index b63f3db..8655af2 100644
--- a/interview-experience/what-devops-interview-questions-does-emphasis-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-emphasis-ask.md
@@ -100,6 +100,16 @@ DIFFICULTY SPLIT
- For serverless design around Lambda, do not just define Lambda. Describe the architecture — an event source such as API Gateway, S3, or a queue; the function; downstream state in DynamoDB or RDS Proxy; and the constraints that shape the design: cold starts, the execution time limit, concurrency limits, and why you need RDS Proxy if a function talks to a relational database. Those constraints are the real answer.
- NACL versus security group appears in nearly every round in this collection. Keep the four contrasts ready — stateless versus stateful, ordered numbered rules versus an evaluated set, allow-and-deny versus allow-only, subnet versus network interface. See [network segmentation](../network-security/what-is-network-segmentation.md).
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?]] (`#455`): [How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?](../cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-encora-ask.md b/interview-experience/what-devops-interview-questions-does-encora-ask.md
index 91634cb..8229948 100644
--- a/interview-experience/what-devops-interview-questions-does-encora-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-encora-ask.md
@@ -122,6 +122,16 @@ resource "aws_subnet" "this" {
- The launch-traffic question wants preparation, not reaction: load test to a known ceiling beforehand, pre-scale ahead of the launch rather than relying on reactive autoscaling, put a CDN in front of static and cacheable content, add caching and connection pooling at the data tier, protect with rate limiting, and have a graceful-degradation path — shed non-essential features rather than failing entirely. Say that autoscaling alone loses the first few minutes, which is exactly when a launch spike arrives. See [designing a system to degrade gracefully under overload](../scalability-and-high-availability/how-do-you-design-a-system-to-degrade-gracefully-under-overload.md) and [auto-scaling](../scalability-and-high-availability/what-is-auto-scaling.md).
- Bringing a manual resource under management is `terraform import`, or better, an `import` block in configuration so the operation is planned and reviewable. Note that import populates state but does not write the HCL — you still author the resource block to match, and `terraform plan` showing no changes is how you prove you got it right. See [importing existing cloud infrastructure into Terraform](../infrastructure-as-code/how-do-you-import-existing-cloud-infrastructure-into-terraform.md).
+
+
+## Related Concepts
+
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-epam-ask.md b/interview-experience/what-devops-interview-questions-does-epam-ask.md
index 0378bb7..3cb80cb 100644
--- a/interview-experience/what-devops-interview-questions-does-epam-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-epam-ask.md
@@ -206,6 +206,16 @@ printf 'errors: %d, warnings: %d\n' \
- For the PCI-DSS pipeline, structure the answer as controls rather than tools: separation of duties with mandatory review, signed commits, SAST and SCA gates, image scanning and signing, immutable artefacts with provenance, no production access from developer laptops, full audit trail of who deployed what, and segregated cardholder-data environments. See [what a DevSecOps pipeline looks like end to end](../devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md) and [SLSA and securing the software supply chain](../devsecops/what-is-slsa-and-how-do-you-secure-the-software-supply-chain.md).
- PodDisruptionBudgets appear in both this round and several others in this collection. Define one crisply — `minAvailable` or `maxUnavailable` constraining _voluntary_ disruptions such as drains and upgrades, with no effect on a node crashing — and say that a badly set PDB can block a node drain indefinitely. See [autoscaling workloads and nodes](../kubernetes/how-do-you-autoscale-workloads-and-nodes-in-kubernetes.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[What is the difference between Continuous Delivery and Continuous Deployment?]] (`#20`): [What is the difference between Continuous Delivery and Continuous Deployment?](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-exl-service-ask.md b/interview-experience/what-devops-interview-questions-does-exl-service-ask.md
index 3450c75..4d7f3d8 100644
--- a/interview-experience/what-devops-interview-questions-does-exl-service-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-exl-service-ask.md
@@ -122,6 +122,16 @@ THE TWO STANDOUT QUESTIONS
- The full ingress request path is a set piece worth rehearsing end to end: DNS resolution, the external load balancer, the ingress controller Pod, TLS termination, host and path rule matching, the Service, EndpointSlice selection, kube-proxy or the CNI dataplane, and finally the container port. There is a related walkthrough at [what happens when a user opens your application in a browser](../network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md).
- Be honest about Databricks and Hadoop if they are outside your experience — this is an analytics-services company probing for adjacency, and a confident "no, but here is the closest thing I have run" is better than an invented answer.
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-ey-ask.md b/interview-experience/what-devops-interview-questions-does-ey-ask.md
index a54d9a3..f07abe5 100644
--- a/interview-experience/what-devops-interview-questions-does-ey-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-ey-ask.md
@@ -114,6 +114,16 @@ UNUSUAL FOR A DEVOPS ROUND
- On Docker's purpose, do not define containers. Answer with the problem it solves: consistent, isolated, reproducible runtime packaging so the same artefact runs identically from a laptop to production, with far less overhead than a VM because it shares the host kernel. See [what Docker is](../docker/what-is-docker.md) and [image versus container](../docker/what-is-the-difference-between-docker-image-and-docker-container.md).
- Helm deployment commands: `helm install -f values-prod.yaml`, or `helm upgrade --install` for idempotency, with `--atomic` and `--timeout` so a failed release rolls back automatically. Naming `--atomic` signals production use. See [what Helm is](../container-orchestration-advanced/what-is-helm.md).
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-five9-ask.md b/interview-experience/what-devops-interview-questions-does-five9-ask.md
index cc7d59a..1b3dc06 100644
--- a/interview-experience/what-devops-interview-questions-does-five9-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-five9-ask.md
@@ -94,6 +94,16 @@ def second_largest(nums):
- On the coding question, say the complexity and handle the edge cases out loud: one pass, O(n) time and O(1) space, and decide explicitly what `[5, 5, 5]` should return. Sorting works but is O(n log n) — mention that you know the sorted answer exists and chose the linear one deliberately.
- The TLS handshake appears in many rounds in this collection. Cover certificate validation, key agreement, and the switch to symmetric encryption, and note that TLS 1.3 needs one round trip. See [what SSL/TLS is](../network-security/what-is-ssl-tls.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[What is the difference between SRE, DevOps, and Platform Engineering?]] (`#232`): [What is the difference between SRE, DevOps, and Platform Engineering?](../site-reliability-engineering/what-is-the-difference-between-sre-devops-and-platform-engineering.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-flentas-ask.md b/interview-experience/what-devops-interview-questions-does-flentas-ask.md
index bc9e433..f7088ea 100644
--- a/interview-experience/what-devops-interview-questions-does-flentas-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-flentas-ask.md
@@ -131,6 +131,16 @@ THE PACKING PUZZLE — worked through
- For dependencies, say Terraform infers them from references and builds a DAG, `depends_on` is for the cases with no reference, and being explicit about ordering usually means the design could be improved. See [what Terraform is](../infrastructure-as-code/what-is-terraform.md).
- "Did you get unexpected changes on apply?" is an invitation to talk about drift honestly. Name a real cause — a console edit, a provider upgrade changing a default, an auto-generated tag, or a field the API normalises — and say how you handled it with `ignore_changes` or by importing reality into state. See [managing Terraform state safely in a team](../infrastructure-as-code/how-do-you-manage-terraform-state-safely-in-a-team.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-hcl-ask.md b/interview-experience/what-devops-interview-questions-does-hcl-ask.md
index 666770b..0f46de6 100644
--- a/interview-experience/what-devops-interview-questions-does-hcl-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-hcl-ask.md
@@ -139,6 +139,16 @@ WHAT MAKES HCL DIFFERENT
- Merge conflict resolution "in how many ways" wants a list: edit the file by hand and mark it resolved, take one side wholesale with `--ours` or `--theirs`, use a merge tool, abort and rebase instead, or reset and redo the work. Add that prevention — small commits, short-lived branches, frequent integration — is the real answer. See [handling merge conflicts](../version-control/how-to-handle-merge-conflicts-in-git.md).
- `tail -n 10 file.log` for the last ten lines, and mention `tail -f` for following and `less +G` for navigating a huge file without loading it. See [analysing logs with grep, awk, and sed](../linux-administration/how-do-you-analyse-logs-and-text-files-with-grep-awk-and-sed.md).
+
+
+## Related Concepts
+
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-hexaware-ask.md b/interview-experience/what-devops-interview-questions-does-hexaware-ask.md
index d112a67..fb74ce9 100644
--- a/interview-experience/what-devops-interview-questions-does-hexaware-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-hexaware-ask.md
@@ -114,6 +114,16 @@ stages:
- SonarQube: static analysis for bugs, vulnerabilities, code smells, coverage, and duplication, enforced as a quality gate that fails the build. Add that gating on _new_ code rather than the whole legacy baseline is what makes it adoptable. See [what shift-left security means](../devsecops/what-does-shift-left-security-mean.md).
- The automation-scripts question is an invitation, not a yes-or-no. Have one concrete example ready with the outcome — a script that cleaned up untagged resources, rotated logs, or generated a report — including roughly how much time it saved. See [turning ad-hoc scripts into maintainable automation](../scripting-and-automation/how-do-you-turn-a-pile-of-ad-hoc-scripts-into-maintainable-automation.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-infinite-solutions-ask.md b/interview-experience/what-devops-interview-questions-does-infinite-solutions-ask.md
index 7dad364..63ec1bb 100644
--- a/interview-experience/what-devops-interview-questions-does-infinite-solutions-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-infinite-solutions-ask.md
@@ -55,6 +55,16 @@ THE SHORTEST ROUND IN THIS COLLECTION
- Anticipate the follow-up that always comes after ingress setup: what to check when an Ingress exists but nobody can reach the application. Have the ordered list ready — DNS resolves to the load balancer, controller Pods running, the Ingress object has an address, `ingressClassName` matches, the backend Service has non-empty Endpoints, ports line up, and the TLS secret exists in the right namespace. Empty Endpoints is the most common cause. See [what a Service is in Kubernetes](../kubernetes/what-is-a-service-in-kubernetes.md).
- In a three-question round, silence is your enemy. Volunteer the adjacent detail — mention Velero's schedule and retention when asked about backup, mention cert-manager when asked about ingress — because the interviewer has little else to grade you on.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[How do you take a monthly release process to daily deployments?]] (`#285`): [How do you take a monthly release process to daily deployments?](../core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-intact-green-services-ask.md b/interview-experience/what-devops-interview-questions-does-intact-green-services-ask.md
index 630243a..15e3416 100644
--- a/interview-experience/what-devops-interview-questions-does-intact-green-services-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-intact-green-services-ask.md
@@ -81,6 +81,16 @@ THE TWO QUESTIONS WITH A HIDDEN CATCH
- Multibranch advantages: a job is created automatically for every branch and pull request from the `Jenkinsfile` in that branch, jobs disappear when branches are deleted, each branch gets isolated builds so feature work is validated before merge, and pipeline configuration is versioned with the code it builds. That last point — configuration travelling with the branch — is the strongest single advantage.
- Pipeline types: declarative and scripted as the two syntaxes, plus multibranch and organisation-folder as job types, and freestyle as the legacy non-pipeline option. Say you default to declarative.
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-itc-infotech-ask.md b/interview-experience/what-devops-interview-questions-does-itc-infotech-ask.md
index 8fecdcd..294b953 100644
--- a/interview-experience/what-devops-interview-questions-does-itc-infotech-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-itc-infotech-ask.md
@@ -61,6 +61,16 @@ SHORT ROUND, NO FILLER
- For the EKS Terraform module, describe the interface rather than reciting resources: inputs for cluster name, Kubernetes version, VPC and subnet IDs, node group definitions with instance types and scaling bounds, and add-on versions; outputs for cluster endpoint, certificate authority data, and OIDC issuer URL. Then name what the module must handle — the cluster IAM role and node role, security groups, the OIDC provider for IRSA, and the `aws-auth` mapping or access entries. Say whether you would write it yourself or use the community `terraform-aws-eks` module, and justify the choice; interviewers respect "I would not rebuild a well-maintained module" when it comes with a reason. See [what Terraform is](../infrastructure-as-code/what-is-terraform.md).
- With only six questions, each answer carries roughly 17% of the round. Do not give short answers here — take each one to a design decision and a trade-off, and expect follow-ups rather than a new topic.
+
+
+## Related Concepts
+
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[What is the difference between SRE, DevOps, and Platform Engineering?]] (`#232`): [What is the difference between SRE, DevOps, and Platform Engineering?](../site-reliability-engineering/what-is-the-difference-between-sre-devops-and-platform-engineering.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-koerber-pharma-ask.md b/interview-experience/what-devops-interview-questions-does-koerber-pharma-ask.md
index a1c3ad6..60a3b0d 100644
--- a/interview-experience/what-devops-interview-questions-does-koerber-pharma-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-koerber-pharma-ask.md
@@ -126,6 +126,16 @@ ASKED TWICE
- Zero downtime and deployment strategies are asked as separate questions, so do not merge them. Strategies: recreate, rolling, blue-green, canary, and A/B. Zero downtime is the _set of properties_ that makes any of them safe — readiness probes gating traffic, `maxUnavailable: 0`, connection draining, `preStop` hooks, backward-compatible database changes, and idempotent, retryable requests. See [deployment strategies](../devops-tools-and-automation/what-are-deployment-strategies.md).
- Client-environment connectivity should name the options and the decision: site-to-site VPN for cost and speed of setup, Direct Connect for predictable bandwidth and regulated traffic, PrivateLink if you only need to expose or consume one service, and Transit Gateway if many VPCs are involved. Flag overlapping CIDRs as the practical blocker. See [connecting an on-premises network to the cloud](../cloud-engineering/how-do-you-connect-an-on-premises-network-to-the-cloud.md).
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-l-and-t-ask.md b/interview-experience/what-devops-interview-questions-does-l-and-t-ask.md
index 76bb1df..da53e14 100644
--- a/interview-experience/what-devops-interview-questions-does-l-and-t-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-l-and-t-ask.md
@@ -93,6 +93,16 @@ NOTE THE ABSENCE
- `git checkout` is worth answering with the modern split: it historically did two unrelated jobs — switching branches and restoring files — which is why Git added `git switch` and `git restore`. Mentioning that shows you keep current. See [git merge, rebase, and cherry-pick](../version-control/what-is-the-difference-between-git-merge-rebase-and-cherry-pick.md) and [handling merge conflicts](../version-control/how-to-handle-merge-conflicts-in-git.md).
- Branching strategy is asked twice in this round. Pick the model you have actually used, name it, and say how a hotfix reaches production and how branches map to environments. See [Git branching strategy](../version-control/what-is-git-branching-strategy.md).
+
+
+## Related Concepts
+
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-ltimindtree-ask.md b/interview-experience/what-devops-interview-questions-does-ltimindtree-ask.md
index 1286bf2..e363e63 100644
--- a/interview-experience/what-devops-interview-questions-does-ltimindtree-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-ltimindtree-ask.md
@@ -149,6 +149,16 @@ resource "aws_s3_bucket_lifecycle_configuration" "tfstate" {
- The slow-pipeline question wants measurement before action: read the stage timings to find where the time actually goes, then apply the relevant lever — parallelise independent stages, cache dependencies and Docker layers, order the Dockerfile so installs cache above source copies, run only affected tests, use larger or more agents, and move long integration suites off the blocking path.
- "How do you handle it when a Pod dies" is deliberately open. Say that a Pod dying is normal and the platform handles it — the controller reconciles the replica count, the scheduler places a replacement, and readiness gates traffic — then pivot to what _you_ do: read the exit code and previous logs to find out why, check whether it was `OOMKilled`, and fix the cause rather than the symptom. See [troubleshooting a Pod stuck in Pending or CrashLoopBackOff](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-in-pending-or-crashloopbackoff.md) and [how probes differ](../kubernetes/how-do-liveness-readiness-and-startup-probes-differ.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-marsh-mclennan-ask.md b/interview-experience/what-devops-interview-questions-does-marsh-mclennan-ask.md
index 8b39479..4e0d99a 100644
--- a/interview-experience/what-devops-interview-questions-does-marsh-mclennan-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-marsh-mclennan-ask.md
@@ -101,6 +101,16 @@ jobs:
- The merge-versus-rebase worked example is a whiteboard question, so structure it: with `main` at commits A-B-C and `feature` branched at B with commits D-E, a merge creates a new commit M with two parents, preserving the true history and the branch shape; a rebase replays D and E as new commits D' and E' on top of C, giving a linear history but different commit hashes. Then say the rule — never rebase a branch other people have pulled — and when you would choose each: rebase to tidy your own feature branch before review, merge to integrate into a shared branch. See [git merge, rebase, and cherry-pick](../version-control/what-is-the-difference-between-git-merge-rebase-and-cherry-pick.md).
- Image size reduction should be prioritised, not listed: multi-stage build so compilers and dev dependencies never ship, a minimal base image such as Alpine or distroless, cleaning package caches within the same `RUN` layer, a `.dockerignore` to keep the build context small, and copying only the built artefact. Say you would run `docker history` to find the fat layer before guessing.
+
+
+## Related Concepts
+
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-natwest-group-ask.md b/interview-experience/what-devops-interview-questions-does-natwest-group-ask.md
index e3a8e54..680aaba 100644
--- a/interview-experience/what-devops-interview-questions-does-natwest-group-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-natwest-group-ask.md
@@ -74,6 +74,16 @@ MAVEN LIFECYCLE — the default phases, in order
- On branching strategy, pick the model you have actually run, name it, and cover the two things a bank cares about: how a hotfix reaches production without dragging unreleased work with it, and how branches map to environments and release approvals. See [Git branching strategy](../version-control/what-is-git-branching-strategy.md) and [trunk-based development](../version-control/what-is-trunk-based-development.md).
- Expect the unasked follow-up in a Java-heavy shop: where dependencies come from and how you handle a vulnerable transitive one. Have `mvn dependency:tree`, a proxy repository, and dependency scanning ready. See [SAST, DAST, IAST, and SCA](../devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-netcracker-ask.md b/interview-experience/what-devops-interview-questions-does-netcracker-ask.md
index bb3cd47..36c3a12 100644
--- a/interview-experience/what-devops-interview-questions-does-netcracker-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-netcracker-ask.md
@@ -98,6 +98,16 @@ THE INTERVIEWER'S TECHNIQUE
- Custom resources should be framed as extending the API: a CustomResourceDefinition registers a new kind so `kubectl get ` works and the object is stored in etcd like any built-in, and a controller or operator then watches it and reconciles reality to match. Say that the CRD alone does nothing without a controller — that is the point people miss.
- Prometheus monitoring of a cluster should name the components rather than just the product: kube-state-metrics for object state, node-exporter for host metrics, cAdvisor via the kubelet for container metrics, service discovery to find targets, Alertmanager for routing, and Thanos or Mimir if you need long retention. See [what Prometheus is](../monitoring-and-logging/what-is-prometheus.md).
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-nextturn-ask.md b/interview-experience/what-devops-interview-questions-does-nextturn-ask.md
index e827a0a..e7884b3 100644
--- a/interview-experience/what-devops-interview-questions-does-nextturn-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-nextturn-ask.md
@@ -103,6 +103,16 @@ THE NODE QUESTION IS ASKED THREE TIMES
- Terraform and Ansible together is best answered as a division of labour rather than a competition: Terraform provisions and owns the lifecycle of infrastructure declaratively with state; Ansible configures what runs on it, and is procedural and stateless. In practice Terraform creates the instances and Ansible configures them — or, better, you bake an image and skip in-place configuration entirely. See [Ansible versus Terraform](../infrastructure-as-code/what-is-the-difference-between-ansible-and-terraform.md).
- The disk-usage script is a small task with room to show judgement: use `shutil.disk_usage()` from the standard library rather than shelling out to `df`, take the threshold and path as arguments or environment variables, exit with a non-zero status so a scheduler notices, and send the alert to a webhook or SNS rather than SMTP. Add that you would prefer this to be a Prometheus alert rule on node-exporter's filesystem metrics, and that a threshold on _projected time to full_ beats a fixed percentage — 90% on a 10 TB volume is not the same as 90% on a 20 GB one. See [what you use Python for as a DevOps engineer](../scripting-and-automation/what-do-you-use-python-for-as-a-devops-engineer.md).
+
+
+## Related Concepts
+
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-nisum-technologies-ask.md b/interview-experience/what-devops-interview-questions-does-nisum-technologies-ask.md
index 6a56749..7757361 100644
--- a/interview-experience/what-devops-interview-questions-does-nisum-technologies-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-nisum-technologies-ask.md
@@ -91,6 +91,16 @@ TWO QUESTIONS ARE GARBLED IN THE SOURCE
- On deployment strategy, name the one you actually use and the constraint that decided it. Rolling is the default and needs backward-compatible changes; blue-green gives instant rollback at double the capacity cost; canary limits blast radius but needs the observability to judge it. Say that database schema compatibility is usually what rules options out. See [deployment strategies](../devops-tools-and-automation/what-are-deployment-strategies.md).
- For the scripting question, have one script ready you can walk through end to end — what problem it solved, how it handles failure, and how it is scheduled. Mention `set -euo pipefail` for Bash or argument parsing and non-zero exit codes for Python; interviewers listen for whether your scripts fail loudly or silently. See [writing a production-grade Bash script](../scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md) and [when to use Bash and when to use Python](../scripting-and-automation/when-do-you-use-bash-and-when-do-you-use-python.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-nitor-infotech-ask.md b/interview-experience/what-devops-interview-questions-does-nitor-infotech-ask.md
index fa1e170..380f5e1 100644
--- a/interview-experience/what-devops-interview-questions-does-nitor-infotech-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-nitor-infotech-ask.md
@@ -130,6 +130,16 @@ spec:
- The process-count script is a one-liner with a subtlety: `ps -u ubuntu --no-headers | wc -l` counts processes for that user, and `pgrep -u ubuntu -c` is cleaner. Mention that `ps aux | grep ubuntu | wc -l` is the wrong answer because it matches the grep itself and any command line containing the string. Naming that pitfall is the point of the question. See [basic Linux commands](../linux-administration/what-are-the-basic-linux-commands-every-devops-engineer-should-know.md).
- "Current Jenkins version" is a genuine check on whether you operate the tool or only consume it. Know your controller's version, whether you are on the LTS line, and when you last upgraded plugins — a candidate who says "we are on a recent LTS and upgrade plugins monthly" sounds like an owner.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-npci-ask.md b/interview-experience/what-devops-interview-questions-does-npci-ask.md
index a984dd9..98bfd99 100644
--- a/interview-experience/what-devops-interview-questions-does-npci-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-npci-ask.md
@@ -61,6 +61,16 @@ STORAGE-WEIGHTED, WHICH IS UNUSUAL
- The database-before-frontend question has a Compose answer and a better answer, and you should give both. In Compose, `depends_on` alone only orders _starting_, not _readiness_ — so the correct form is `depends_on` with `condition: service_healthy` plus a `healthcheck` on the database. In Kubernetes there is no dependency ordering between Pods at all, so the mechanisms are an init container that blocks until the database answers, or simply an application that retries its connection with backoff. Then say the principle: ordering is a fragile guarantee, so the robust design is a frontend that tolerates the database being briefly unavailable, because it will be — during a database restart, long after startup. See [what Docker Compose is](../docker/what-is-docker-compose.md).
- For a payments organisation, volunteer the operational detail on stateful storage: `ReclaimPolicy: Retain` so a deleted PVC does not delete the data, volume snapshots before an upgrade, and access modes — `ReadWriteOnce` binding a volume to one node, which is the constraint that surprises people when a Pod cannot reschedule. See [StatefulSets](../container-orchestration-advanced/what-are-statefulsets-in-kubernetes.md).
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you prevent and handle secret leaks in CI/CD pipelines?]] (`#237`): [How do you prevent and handle secret leaks in CI/CD pipelines?](../cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-nuos-info-systems-ask.md b/interview-experience/what-devops-interview-questions-does-nuos-info-systems-ask.md
index a4836cb..c81c139 100644
--- a/interview-experience/what-devops-interview-questions-does-nuos-info-systems-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-nuos-info-systems-ask.md
@@ -93,6 +93,16 @@ THE STANDOUT QUESTION
- The AWS-plus-Azure question wants one process, not two: a single IaC tool with per-provider modules, one identity source federated to both clouds, a common tagging and naming standard enforced by policy in each, centralised logging and cost reporting across both, and one pipeline pattern. Then say the honest trade-off — a genuinely cloud-agnostic layer costs you the best managed services on each side, so most teams standardise the _process_ and accept provider-specific implementations. See [the real trade-offs of multi-cloud](../cloud-engineering/what-are-the-real-trade-offs-of-multi-cloud.md).
- The Node.js multi-stage Dockerfile has three specific things they asked for. Build stage: `npm ci` from the lockfile for reproducibility, then build. Runtime stage: copy only `dist` and production `node_modules`, on a slim or distroless base, running as a non-root user. And on secrets: never `ARG` or `ENV` a token, because it persists in the image history — use BuildKit's `--mount=type=secret` so it exists only during that build step, and add a `.dockerignore` covering `.env`, `.git`, and local `node_modules`. See [reducing Docker image size and build time](../docker/how-do-you-reduce-docker-image-size-and-build-time.md).
+
+
+## Related Concepts
+
+- [[How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?]] (`#455`): [How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?](../cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-one2n-ask.md b/interview-experience/what-devops-interview-questions-does-one2n-ask.md
index 19c2245..2786c39 100644
--- a/interview-experience/what-devops-interview-questions-does-one2n-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-one2n-ask.md
@@ -84,6 +84,16 @@ THE FORMAT IS THE TEST
- On the database choice, do not name a product before naming the requirement. Ask about the access pattern, consistency needs, and expected scale, then choose — a managed relational database for transactional integrity, adding read replicas and caching before considering sharding. Say that you would use the managed service rather than running the database in the cluster unless there is a specific reason. See [running a highly available database on AWS](../aws-engineering/how-do-you-run-a-highly-available-database-on-aws.md).
- Because the whole round is one escalating conversation, manage it deliberately: state your assumptions and constraints up front (scale, budget, team size, compliance), sketch the design, and then say which parts you would build first and which you would defer. Interviewers here reward "here is what I would not build yet, and why" as much as the design itself.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you deal with flaky tests in a CI pipeline?]] (`#398`): [How do you deal with flaky tests in a CI pipeline?](../cicd/how-do-you-deal-with-flaky-tests-in-a-ci-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-opt-it-ask.md b/interview-experience/what-devops-interview-questions-does-opt-it-ask.md
index 1b6495c..bded505 100644
--- a/interview-experience/what-devops-interview-questions-does-opt-it-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-opt-it-ask.md
@@ -100,6 +100,16 @@ ENTRYPOINT ["java","-XX:MaxRAMPercentage=75","-jar","/app/app.jar"]
- "What did you learn at your previous company?" should not be a list of tools. Pick one habit or judgement you gained — reading logs before changing anything, writing the runbook before the automation, insisting on a rollback plan — and give the incident that taught it.
- The round ends with "any questions", which is scored even though it feels like a formality. Ask something that only someone who has done the work would ask: how deployments reach production, who is on call, what the biggest source of toil is. See [what questions you should ask your interviewer](./what-questions-should-you-ask-your-interviewer.md).
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-optum-ask.md b/interview-experience/what-devops-interview-questions-does-optum-ask.md
index c694715..0f77d31 100644
--- a/interview-experience/what-devops-interview-questions-does-optum-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-optum-ask.md
@@ -66,6 +66,16 @@ TWO KINDS OF "LIFECYCLE" IN ONE ROUND
- Provisioners should come with HashiCorp's own framing: `local-exec`, `remote-exec`, and `file` exist as a last resort because they break the declarative model — they are not tracked in state, have no meaningful retry semantics, and require network reachability from wherever Terraform runs. Say you prefer `user_data`, a baked image, or a configuration-management tool, and that reaching for a provisioner is usually a signal the design should change.
- Optum is a healthcare organisation, so wherever it fits naturally, add the compliance angle — encryption with customer-managed keys, audit trails, and data-retention rules driven by regulation rather than convenience. It costs one sentence and it lands.
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-oracle-ask.md b/interview-experience/what-devops-interview-questions-does-oracle-ask.md
index 423e0f0..36e2a3c 100644
--- a/interview-experience/what-devops-interview-questions-does-oracle-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-oracle-ask.md
@@ -88,6 +88,16 @@ ORACLE ASKS "EXPLAIN ALL THE COMPONENTS"
- For the cron expression, give the five fields in order — minute, hour, day of month, month, day of week — with a worked example such as `0 2 * * *` for 02:00 daily, and mention that a Kubernetes `CronJob` uses the same syntax plus `concurrencyPolicy` and `startingDeadlineSeconds`. Say that `systemd` timers are the modern alternative on a host because they log to the journal and handle missed runs. See [basic Linux commands](../linux-administration/what-are-the-basic-linux-commands-every-devops-engineer-should-know.md).
- "Which Kubernetes resources do you know?" is a breadth question, so group them rather than listing at random — workloads, networking, configuration, storage, access control, and operations — and then name the ones you have actually authored. Grouping reads as understanding; a flat list reads as recall.
+
+
+## Related Concepts
+
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-orion-innovation-ask.md b/interview-experience/what-devops-interview-questions-does-orion-innovation-ask.md
index fc3b845..467a4e6 100644
--- a/interview-experience/what-devops-interview-questions-does-orion-innovation-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-orion-innovation-ask.md
@@ -80,6 +80,16 @@ THE ONE-WORD ANSWER QUESTION
- The DNS block is four short questions, so answer them tightly and add the operational rules. An A record maps a hostname to an IPv4 address, and its value _is_ that address — with AAAA doing the same for IPv6. A CNAME aliases one name to another name, and the two rules that matter are that it cannot coexist with other records at the same name and cannot sit at a zone apex, which is why providers offer alias or ANAME records for the bare domain. An MX record routes mail for a domain to named mail servers, with a preference number where lower wins — and note that an MX value must be a hostname, never an IP address. That last detail is a good discriminator. See [managing DNS and global traffic routing](../cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md).
- Jenkins secrets should be answered as a hierarchy. Baseline: the Credentials plugin with folder-scoped credentials, consumed via `withCredentials` so values are masked in the log. Better: Jenkins fetches from an external store — Key Vault, Vault, or Secrets Manager — at run time, so nothing is stored on the controller. Best: no stored credential at all, using OIDC federation to the cloud provider for short-lived tokens. Then name the classic leak: interpolating a secret inside a double-quoted Groovy string puts it in the build log, so use single quotes and let the shell expand it. See [managing secrets in CI/CD pipelines](../devsecops/how-do-you-manage-secrets-in-ci-cd-pipelines.md) and [preventing and handling secret leaks in CI/CD](../cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md).
+
+
+## Related Concepts
+
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-perfios-ask.md b/interview-experience/what-devops-interview-questions-does-perfios-ask.md
index 7183c03..2a0cdc7 100644
--- a/interview-experience/what-devops-interview-questions-does-perfios-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-perfios-ask.md
@@ -105,6 +105,16 @@ done
- ALB versus NLB deserves a reason rather than a table: ALB for HTTP and HTTPS with path and host routing, header inspection, and WAF integration; NLB for raw TCP or UDP, extreme throughput, static IPs, or TLS passthrough. Say which you have used and why. See [layer 4 versus layer 7 load balancers](../scalability-and-high-availability/what-is-the-difference-between-a-layer-4-and-a-layer-7-load-balancer.md).
- The automation-initiative question is your chance to sound like an owner rather than an operator. Bring one initiative you started — not one you were assigned — with the problem, what you built, and the measured outcome. See [turning ad-hoc scripts into maintainable automation](../scripting-and-automation/how-do-you-turn-a-pile-of-ad-hoc-scripts-into-maintainable-automation.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[What is the difference between Continuous Delivery and Continuous Deployment?]] (`#20`): [What is the difference between Continuous Delivery and Continuous Deployment?](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-persistent-systems-ask.md b/interview-experience/what-devops-interview-questions-does-persistent-systems-ask.md
index 529ab24..42df836 100644
--- a/interview-experience/what-devops-interview-questions-does-persistent-systems-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-persistent-systems-ask.md
@@ -135,6 +135,16 @@ PERSISTENT ASKS "WHICH EDITION?"
- The Azure three-tier and slow-e-commerce questions in set 2 pair well: design with an Application Gateway or Front Door at the edge, App Service or AKS across availability zones for the application tier, and a zone-redundant managed database with read replicas. For the slowness, work from user-facing symptoms inward — p95 latency by endpoint, then which downstream call owns the time, then database query plans, cache hit rate, and saturation — and say you would look at what changed before tuning anything. See [designing a system to degrade gracefully under overload](../scalability-and-high-availability/how-do-you-design-a-system-to-degrade-gracefully-under-overload.md).
- Athena is serverless SQL over data in S3 using a schema in the Glue catalogue, priced per terabyte scanned — so the answer worth giving includes the cost lever: partition the data and use columnar Parquet, because that is what makes queries cheap. It is also the standard answer for querying VPC Flow Logs and CloudTrail at rest. See [S3 storage classes](../aws-engineering/what-are-the-s3-storage-classes-and-when-do-you-use-each.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-plansource-valuelabs-ask.md b/interview-experience/what-devops-interview-questions-does-plansource-valuelabs-ask.md
index 78728b9..e35ddd9 100644
--- a/interview-experience/what-devops-interview-questions-does-plansource-valuelabs-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-plansource-valuelabs-ask.md
@@ -82,6 +82,16 @@ THE QUESTION WITH A SINGLE CORRECT MECHANISM
- The Terraform per-environment variables question wants a concrete layout: `terraform.tfvars` per environment or `-var-file=envs/prod.tfvars`, environment-specific values committed for non-sensitive settings, secrets injected at run time from a secret manager as `TF_VAR_*` or fetched by a data source, and separate state per environment. Say that a secret read via a data source still lands in state in plain text, which is why state must be encrypted — that detail is what makes the answer credible. See [managing Terraform state safely in a team](../infrastructure-as-code/how-do-you-manage-terraform-state-safely-in-a-team.md).
- HTTP versus HTTPS should go past "one is encrypted": HTTPS is HTTP over TLS, so it provides confidentiality, integrity, and _server authentication_ via a certificate chain — that third property is the one candidates omit. Add that HTTP/2 and HTTP/3 effectively require TLS, and that browsers now treat plain HTTP as insecure. Pair it with the browser-DNS question, which is the full request path. See [what SSL/TLS is](../network-security/what-is-ssl-tls.md) and [what happens when a user opens your application in a browser](../network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md).
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+- [[What is the difference between SRE, DevOps, and Platform Engineering?]] (`#232`): [What is the difference between SRE, DevOps, and Platform Engineering?](../site-reliability-engineering/what-is-the-difference-between-sre-devops-and-platform-engineering.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-publicis-global-delivery-ask.md b/interview-experience/what-devops-interview-questions-does-publicis-global-delivery-ask.md
index 8575732..1379353 100644
--- a/interview-experience/what-devops-interview-questions-does-publicis-global-delivery-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-publicis-global-delivery-ask.md
@@ -67,6 +67,16 @@ A SMALL ROUND WITH ONE UNUSUAL QUESTION
- The MongoDB-dump question is ambiguously worded, so say so and answer both readings — that is stronger than guessing. If they mean the _dump artefact_ is too large: `mongodump --gzip` compresses it, `--collection` and `--query` let you export a subset, and `--excludeCollection` skips large ephemeral collections such as logs or sessions; then archive it to object storage with a lifecycle rule rather than keeping it on a volume. If they mean freeing space _in the database_: deleting documents does not return disk to the operating system, because WiredTiger keeps the space for reuse — you need `compact` on a collection, or a resync of a replica-set member, and the safe production pattern is a rolling initial-sync of secondaries rather than compacting the primary. Also check for oversized indexes and TTL indexes for automatic expiry. Naming that deletes-do-not-reclaim-disk behaviour is what makes this answer stand out.
- With only seven questions, each carries roughly 14% of the round, so extend every answer into its operational consequence and invite the follow-up. The PDB and upgrade questions in particular are two halves of one story — linking them explicitly shows joined-up knowledge rather than recall.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-qburst-ask.md b/interview-experience/what-devops-interview-questions-does-qburst-ask.md
index 1791138..691e6d2 100644
--- a/interview-experience/what-devops-interview-questions-does-qburst-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-qburst-ask.md
@@ -87,6 +87,16 @@ THE ONLY GCP-WEIGHTED ROUND IN THIS COLLECTION
- On reducing build size, prioritise rather than list: a multi-stage build so compilers and dev dependencies never ship, a minimal base such as Alpine or distroless, cleaning package caches within the same `RUN` layer, a `.dockerignore` so the build context stays small, and copying only the built artefact. Say you would run `docker history` to find the fat layer instead of guessing, and pair it with `COPY` over `ADD` as the default. See [reducing Docker image size and build time](../docker/how-do-you-reduce-docker-image-size-and-build-time.md).
- GCP bucket cost reduction maps onto the same ideas as S3 but with GCP names: lifecycle rules transitioning to Nearline, Coldline, and Archive; Autoclass when the access pattern is unpredictable; deleting noncurrent object versions; aborting incomplete multipart uploads; choosing regional over multi-region storage when you do not need geo-redundancy; and watching egress, which is frequently the larger line item. See [cloud cost optimisation](../cloud-cost-optimization/what-is-cloud-cost-optimization.md).
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[What is the difference between SRE, DevOps, and Platform Engineering?]] (`#232`): [What is the difference between SRE, DevOps, and Platform Engineering?](../site-reliability-engineering/what-is-the-difference-between-sre-devops-and-platform-engineering.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-qentelli-solutions-ask.md b/interview-experience/what-devops-interview-questions-does-qentelli-solutions-ask.md
index 96afdfe..e213160 100644
--- a/interview-experience/what-devops-interview-questions-does-qentelli-solutions-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-qentelli-solutions-ask.md
@@ -97,6 +97,16 @@ find "$SRC" -xdev -type f -name '*.log' -mtime +7 -delete
- "How do you manage resources in Terraform?" is broad, so answer with the practices that matter: remote state with locking and versioning, one state per environment, reusable versioned modules, `plan` reviewed on the pull request and `apply` only from CI, mandatory tags, `lifecycle` guards on stateful resources, scheduled `plan -refresh-only` for drift detection, and `import`/`state rm` for reconciling reality. Pair the S3-bucket task with the modern detail that the bucket resource is now split into separate resources for versioning, encryption, public-access block, and lifecycle — writing them all is what distinguishes a current answer. See [what Terraform is](../infrastructure-as-code/what-is-terraform.md).
- Security group versus NACL appears in almost every round in this collection, so have the four contrasts ready — stateful versus stateless, allow-only versus allow-and-deny, evaluated as a set versus in numbered order, attached to a network interface versus a subnet — and finish with the consequence: you cannot block a single hostile IP with a security group, which is precisely why NACLs exist. See [network segmentation](../network-security/what-is-network-segmentation.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-rapidsoft-ask.md b/interview-experience/what-devops-interview-questions-does-rapidsoft-ask.md
index 0741f1f..f7abcaf 100644
--- a/interview-experience/what-devops-interview-questions-does-rapidsoft-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-rapidsoft-ask.md
@@ -84,6 +84,16 @@ A DIAGNOSTIC-LEANING ROUND
- The Docker Swarm question is a currency check. Answer honestly, and if you have used it, note where it is genuinely reasonable — a small fixed deployment where Kubernetes would be overkill — while acknowledging that Kubernetes has effectively won on ecosystem and hiring. Being able to say "Swarm is simpler and adequate here, Kubernetes is the default" shows judgement rather than fashion. See [what container orchestration is and why you need it](../container-orchestration-advanced/what-is-container-orchestration-and-why-do-you-need-it.md).
- With ten and a half years of total experience but four to five in DevOps, expect the opening question to probe how you transitioned. Frame the earlier experience as an asset — application, infrastructure, or support background that makes you better at the platform work — rather than as time to explain away.
+
+
+## Related Concepts
+
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-relevantz-ask.md b/interview-experience/what-devops-interview-questions-does-relevantz-ask.md
index 185843f..f5f0079 100644
--- a/interview-experience/what-devops-interview-questions-does-relevantz-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-relevantz-ask.md
@@ -97,6 +97,16 @@ RelevantZ — DevOps Engineer (5 YOE), reported round
- `kubectl exec -it -- /bin/sh` (or `bash`) is how you get a shell, with `-c ` for a multi-container Pod. Add the modern alternative for images with no shell: `kubectl debug -it --image=busybox --target=` attaches an ephemeral container. For the troubleshooting-commands question, group them by intent — `get`/`describe`/`get events` for state, `logs --previous` for a crashed container, `top` for usage, `auth can-i` for permissions, `rollout status`/`undo` for deployments, `port-forward` to test a Service directly — and say which you reach for first. See [troubleshooting a Pod stuck in Pending or CrashLoopBackOff](../kubernetes/how-do-you-troubleshoot-a-pod-stuck-in-pending-or-crashloopbackoff.md).
- Cost optimisation and backup strategy are both "which have you used" questions, so bring specifics with numbers: reserved instances or savings plans for the steady baseline, spot for interruptible work, right-sizing from observed metrics, auto-shutdown on non-production, storage lifecycle tiering, and cutting log ingestion — plus what you actually saved. For backups, name the 3-2-1 principle updated for cloud, grandfather-father-son retention, and the fact that a restore rehearsal is the only proof a backup works. See [cloud cost optimisation](../cloud-cost-optimization/what-is-cloud-cost-optimization.md).
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?]] (`#455`): [How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?](../cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-sap-ask.md b/interview-experience/what-devops-interview-questions-does-sap-ask.md
index 78554b7..feae101 100644
--- a/interview-experience/what-devops-interview-questions-does-sap-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-sap-ask.md
@@ -83,6 +83,16 @@ THE ROUND IS BUILT AROUND ONE THEME
- The base-image and patching questions are one answer, and the key idea is that you do not patch running containers — you rebuild. Say: pin base images by digest rather than a floating tag so builds are reproducible, rebuild on a schedule _and_ on upstream advisories so patched layers are picked up, use minimal or distroless bases so there is little to patch, scan in CI with Trivy or Grype and gate on severity plus reachability, maintain a small set of approved golden base images that application teams inherit, sign images and enforce provenance with admission control, and generate an SBOM so you can answer "are we affected" without rebuilding everything. For hosts, the equivalent is immutable infrastructure — bake a new AMI and roll the nodes rather than patching in place. See [prioritising vulnerabilities without blocking delivery](../devsecops/how-do-you-prioritise-vulnerabilities-without-blocking-delivery.md) and [signing and verifying container images](../devsecops/how-do-you-sign-and-verify-container-images.md).
- Git submodules should come with the caveat, because the honest answer is more useful than the definition. A submodule embeds another repository at a pinned commit inside your tree, which is how you vendor a shared library or share IaC modules while keeping histories separate. But say the operational cost: clones need `--recurse-submodules`, contributors routinely forget to update the pointer, CI must initialise them, and a detached-HEAD submodule is a common source of confusion — which is why many teams prefer a package registry, a Terraform module registry, or a monorepo instead. Naming that trade-off is what an eight-year candidate is expected to do. See [what Git is](../version-control/what-is-git.md).
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-sapient-ask.md b/interview-experience/what-devops-interview-questions-does-sapient-ask.md
index f2fdd25..4ab7c5b 100644
--- a/interview-experience/what-devops-interview-questions-does-sapient-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-sapient-ask.md
@@ -91,6 +91,16 @@ THE QUESTION THAT IS A TRAP
- Securing sensitive data on EBS should list layered controls: encryption at rest with a customer-managed KMS key — enabled by default account-wide if you set it — encryption in transit for anything crossing the network, snapshots inherit encryption and their sharing must be controlled, IAM restricting who can attach or snapshot the volume, deletion protection and lifecycle policies for snapshots, and no public snapshot sharing. Add that the filesystem should be encrypted-at-rest _and_ the data encrypted at the application layer if the sensitivity warrants defence in depth.
- EBS versus EFS in Kubernetes is really an access-modes question: EBS is block storage attached to one node at a time, so it supports `ReadWriteOnce` and is provisioned per Pod by the EBS CSI driver — which is why a StatefulSet replica keeps its own volume, and why a Pod can be stuck `Pending` if rescheduled to a different zone. EFS is a network filesystem supporting `ReadWriteMany`, so many Pods across zones can mount it simultaneously, at higher latency and cost. Say the rule: EBS for per-replica databases, EFS when several Pods must write the same data. See [StatefulSets](../container-orchestration-advanced/what-are-statefulsets-in-kubernetes.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+- [[What is the difference between SRE, DevOps, and Platform Engineering?]] (`#232`): [What is the difference between SRE, DevOps, and Platform Engineering?](../site-reliability-engineering/what-is-the-difference-between-sre-devops-and-platform-engineering.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-sigmoid-ask.md b/interview-experience/what-devops-interview-questions-does-sigmoid-ask.md
index 4bb06c4..3683443 100644
--- a/interview-experience/what-devops-interview-questions-does-sigmoid-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-sigmoid-ask.md
@@ -214,6 +214,16 @@ spec:
- Jenkins executors and publishers are small precise questions: an executor is a slot on a node that runs one build at a time, so a node with four executors runs four concurrent builds — and building on the controller starves it, which is why you use agents. A publisher is a post-build step that reports or distributes results — JUnit reports, artefact archiving, coverage publishing, notifications — running after the build steps complete. See [Jenkins pipelines](../cicd/what-are-jenkins-pipelines.md).
- Round 4 asks you to _execute_ the scripts, so practise typing them, not describing them. `sed -i 's/old/new/g' file` for find-and-replace, `grep -m1 'pattern' file` for the first matching line, and `find . -type f -mmin +300 -mmin -1440` for the modified-more-than-5-hours-but-today window — noting `-mmin` is minutes, which is what makes that constraint expressible. See [writing a production-grade Bash script](../scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[What is the difference between Continuous Delivery and Continuous Deployment?]] (`#20`): [What is the difference between Continuous Delivery and Continuous Deployment?](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-sonata-software-ask.md b/interview-experience/what-devops-interview-questions-does-sonata-software-ask.md
index c3ff9ad..386d270 100644
--- a/interview-experience/what-devops-interview-questions-does-sonata-software-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-sonata-software-ask.md
@@ -125,6 +125,16 @@ TWO CLOUDS, TWO STYLES
- GitLab `rules` replaced `only`/`except` and control whether a job is created, using `if`, `changes`, and `exists` conditions with `when: manual`, `never`, `always`, or `on_success`, plus `allow_failure`. Say that `rules` are evaluated in order and the first match wins, and that `changes` is how you build a monorepo pipeline that only runs jobs for the services that actually changed. See [what GitLab CI is](../cicd/what-is-gitlab-ci.md).
- Retrieving a secret in Python is `boto3.client("secretsmanager").get_secret_value(SecretId=...)`, parsing `SecretString` as JSON — and the details that matter are caching the value rather than calling on every request (the AWS Secrets Manager caching library or the Lambda extension), using an IAM role rather than keys, and that protection comes from KMS encryption plus a resource policy plus rotation with a Lambda rotation function. Say that a secret fetched into memory should never be logged. See [managing secrets in CI/CD pipelines](../devsecops/how-do-you-manage-secrets-in-ci-cd-pipelines.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Site Reliability Engineering?]] (`#96`): [What is Site Reliability Engineering?](../site-reliability-engineering/what-is-site-reliability-engineering.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-sony-ask.md b/interview-experience/what-devops-interview-questions-does-sony-ask.md
index 27529a7..1b5bfc2 100644
--- a/interview-experience/what-devops-interview-questions-does-sony-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-sony-ask.md
@@ -123,6 +123,16 @@ THE HARDEST ROUND IN THIS COLLECTION
- The Jenkins N-commits trigger is a small practical question: there is no built-in "after N commits" trigger, so you either poll on a schedule and let the build accumulate several commits, or use a webhook plus a script that counts commits since the last successful build and exits early below the threshold, or gate on a changeset condition in the pipeline. Say plainly that batching builds is usually the wrong instinct — it delays feedback and makes bisecting a failure harder — and that the legitimate use case is an expensive job such as a nightly integration suite. Being willing to challenge the requirement is the better answer.
- For the EC2-at-80%-CPU Terraform question, correct the framing: Terraform is declarative and does not react to metrics at runtime. The right implementation is a CloudWatch alarm on `CPUUtilization` at 80% triggering an Auto Scaling policy — all of which you _define_ in Terraform — with the "copy the image from S3" part handled by `user_data` or a baked AMI rather than by Terraform at scale-out time. Saying "Terraform declares the alarm and the scaling policy; the cloud does the reacting" is the answer. See [auto-scaling](../scalability-and-high-availability/what-is-auto-scaling.md).
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-squareops-ask.md b/interview-experience/what-devops-interview-questions-does-squareops-ask.md
index 0a9c02e..5e60bf0 100644
--- a/interview-experience/what-devops-interview-questions-does-squareops-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-squareops-ask.md
@@ -303,6 +303,16 @@ WHAT MAKES THIS ROUND DIFFERENT
- Round 1's opening two questions are ownership probes disguised as architecture questions — "which part do _you_ personally manage", "do _you_ handle IAM and RBAC". Answer precisely about your own scope and do not inflate it, because every subsequent follow-up will test the claim. Saying "I owned the EKS layer and the pipelines; another team owned the network baseline" is far stronger than an implied "everything", which collapses two follow-ups later.
- For the cost question, come with numbers: what you measured, which levers you pulled — right-sizing from observed usage, Savings Plans for the steady baseline, Spot for interruptible work, storage lifecycle rules, deleting orphaned volumes and idle load balancers, cutting log retention — and the resulting percentage. The follow-up about ALB pricing tells you they want cost fluency at the line-item level, not slogans. See [cloud cost optimisation](../cloud-cost-optimization/what-is-cloud-cost-optimization.md).
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-synechron-ask.md b/interview-experience/what-devops-interview-questions-does-synechron-ask.md
index 7cf500f..900cabb 100644
--- a/interview-experience/what-devops-interview-questions-does-synechron-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-synechron-ask.md
@@ -128,6 +128,16 @@ THREE DIFFERENT INTERVIEWS, THREE DIFFERENT BARS
- Blue Ocean is a legacy Jenkins UI plugin providing a visual pipeline view — it is no longer actively developed, so the currency-aware answer is to say what it was for and that the modern equivalent is the built-in pipeline graph or an external dashboard. Being able to say "that plugin is effectively retired" is better than describing it as current. See [Jenkins pipelines](../cicd/what-are-jenkins-pipelines.md).
- Docker versus Docker Compose versus Kubernetes is a scope ladder: Docker runs one container, Compose declaratively runs a multi-container application on **one host** for local development, and Kubernetes orchestrates containers across a **cluster** with scheduling, self-healing, scaling, and rolling updates. Say that Compose is a development tool that does not replace an orchestrator, and that the natural progression is Compose locally and Kubernetes in production from the same images. See [what Docker Compose is](../docker/what-is-docker-compose.md).
+
+
+## Related Concepts
+
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-techdome-ask.md b/interview-experience/what-devops-interview-questions-does-techdome-ask.md
index 4c987bb..589e63a 100644
--- a/interview-experience/what-devops-interview-questions-does-techdome-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-techdome-ask.md
@@ -62,6 +62,16 @@ A SHORT DEFINITIONS ROUND
- On the state file, cover four things: what it holds (the mapping from configuration addresses to real resource IDs, plus attributes and dependency metadata), why it exists (so Terraform can compute a diff between desired and actual), where it belongs (a remote backend that is encrypted, versioned, and lockable), and the risk (it can contain secrets such as generated passwords in plain text). Add that locking is what prevents two concurrent applies from corrupting it, and that versioning is what lets you recover from a bad write. See [managing Terraform state safely in a team](../infrastructure-as-code/how-do-you-manage-terraform-state-safely-in-a-team.md) and [recovering a lost or corrupted state file](../infrastructure-as-code/how-do-you-recover-a-lost-or-corrupted-terraform-state-file.md).
- In a seven-question round each answer is worth roughly 14%, so do not give one-line replies — but also do not ramble. The pattern that works is definition, then mechanism, then one consequence or trade-off, then stop and let them follow up. Volunteering the adjacent detail (user-defined bridges for DNS, why a Deployment plus PVC breaks at scale, why provisioners are a last resort) is what turns a definitions screen into a strong impression.
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-verizon-ask.md b/interview-experience/what-devops-interview-questions-does-verizon-ask.md
index c589f85..8ca8a80 100644
--- a/interview-experience/what-devops-interview-questions-does-verizon-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-verizon-ask.md
@@ -110,6 +110,16 @@ A PRECISION ROUND
- Context switching is `kubectl config use-context `, with `get-contexts` to list and `--namespace` or `set-context --current --namespace=` to change the default namespace. Define a context properly: a named tuple of cluster, user, and namespace in `kubeconfig` — so switching context switches which cluster you are talking to _and_ as whom, which is exactly why a mis-set context is how people apply to the wrong cluster. Mention `kubectx` and `kubens`, and that a distinct prompt colour per environment is a cheap safeguard.
- The three cluster-operations questions — how many clusters, which version, have you upgraded — are calibration checks. Have exact numbers and a real upgrade story ready; vagueness here undercuts every technical answer that follows.
+
+
+## Related Concepts
+
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-volkswagen-group-digital-ask.md b/interview-experience/what-devops-interview-questions-does-volkswagen-group-digital-ask.md
index e324633..fae1ca1 100644
--- a/interview-experience/what-devops-interview-questions-does-volkswagen-group-digital-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-volkswagen-group-digital-ask.md
@@ -79,6 +79,16 @@ A SMALL ROUND WHERE FOUR QUESTIONS ARE THE SAME QUESTION
- The REST API question exists because the role is 30% development, so answer it as an engineer rather than reciting an acronym: an architectural style over HTTP where resources are identified by URIs and manipulated with the standard methods, communication is stateless so each request carries everything needed, and responses are cacheable. Then give the substance that shows you have built and operated one: correct method semantics and idempotency — `GET`, `PUT`, and `DELETE` idempotent, `POST` not, which is why a retried `POST` needs an idempotency key; meaningful status codes (`200`, `201`, `204`, `400`, `401`, `403`, `404`, `409`, `429`, `500`, `503`); versioning so you can evolve without breaking clients; pagination and rate limiting; and authentication with OAuth 2.0 bearer tokens or mTLS. Contrast briefly with gRPC and GraphQL to show you know when REST is not the right choice. See [what a web application firewall is](../network-security/what-is-a-web-application-firewall-waf.md) for the operational side of exposing one.
- With ten questions and four of them overlapping, the risk in this round is sounding repetitive. Decide in advance which detail belongs to which question — sequence and governance for onboarding, integration architecture for the many-tools question, syntax and templating for how you write pipelines, and a concrete narrative for the walkthrough — so each answer adds something new.
+
+
+## Related Concepts
+
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-wikreate-media-ask.md b/interview-experience/what-devops-interview-questions-does-wikreate-media-ask.md
index f7c331f..abddc4b 100644
--- a/interview-experience/what-devops-interview-questions-does-wikreate-media-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-wikreate-media-ask.md
@@ -61,6 +61,16 @@ THE SHORTEST FULL ROUND IN THIS COLLECTION
- "The role of continuous integration" invites a textbook answer, so give the _purpose_ rather than the mechanics: CI exists to keep the main branch continuously in a known-good, releasable state by having every developer integrate small changes frequently and having an automated build plus test suite verify each one — so integration problems surface in minutes rather than at the end of a release cycle. Then name what makes it real: it must be fast enough that people wait for it, it must be trusted (a flaky suite trains people to ignore red builds), and it must actually block the merge through branch protection. Say that CI is about _feedback speed_, and that CD is a separate question about what happens after the build is green. See [what a CI/CD pipeline is](../cicd/what-is-ci-cd-pipeline.md) and [continuous delivery versus continuous deployment](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md).
- In a six-question round every answer carries roughly 17%, so the pattern that wins is: definition in one sentence, mechanism in one more, then one trade-off or consequence, then stop. Do not pad — but do volunteer the adjacent detail (alias records, `stash -u`, why horizontal scaling needs statelessness), because with so few questions that is the only way to show depth. See [what are the most frequently asked DevOps interview questions](./what-are-the-most-frequently-asked-devops-interview-questions.md) for the wider recall checklist these six are drawn from.
+
+
+## Related Concepts
+
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[What is the difference between Continuous Delivery and Continuous Deployment?]] (`#20`): [What is the difference between Continuous Delivery and Continuous Deployment?](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md)
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-wipro-ask.md b/interview-experience/what-devops-interview-questions-does-wipro-ask.md
index a96c72e..6420437 100644
--- a/interview-experience/what-devops-interview-questions-does-wipro-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-wipro-ask.md
@@ -157,6 +157,16 @@ WIPRO'S RANGE IS THE WIDEST HERE
- The dual-target deployment question — same file into Kubernetes and on-premises — is best answered by separating the artefact from the delivery: build one versioned artefact, then deliver it two ways from the same source of truth. For Kubernetes, a ConfigMap or a mounted volume rendered from a Helm value or a Git-tracked manifest; for on-premises, an Ansible role or a pull-based agent inside that network so no inbound access is needed. Say that the file's content must come from one place — a repository or a config service — or the two environments will drift, which is the actual risk the question is probing.
- The multi-lingual stakeholder question is a genuine communication question, so answer it seriously: write short, plain sentences and avoid idiom and abbreviation; lead with the decision or ask rather than burying it; use structure — numbered points, explicit owners, explicit dates in unambiguous format; confirm understanding by restating agreed actions in a summary rather than assuming; and move anything complex or contentious to a call, then follow up in writing. Say that you never rely on tone to carry meaning across a language barrier.
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you integrate SonarQube and quality gates into a pipeline?]] (`#458`): [How do you integrate SonarQube and quality gates into a pipeline?](../cicd/how-do-you-integrate-sonarqube-and-quality-gates-into-a-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-zensar-ask.md b/interview-experience/what-devops-interview-questions-does-zensar-ask.md
index 698026c..6219203 100644
--- a/interview-experience/what-devops-interview-questions-does-zensar-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-zensar-ask.md
@@ -96,6 +96,16 @@ THE ONE ODD QUESTION
- Disaster recovery should lead with the two numbers and then a named tier: RPO is tolerable data loss, RTO is tolerable time to recover, and the patterns are backup-and-restore, pilot light, warm standby, and active-active in ascending cost and descending RTO. Then the three points that make the answer credible: replication is **not** backup, because a deletion replicates too — so you need an immutable copy; traffic redirection needs health-checked DNS or a global load balancer; and an untested plan does not count, so a restore rehearsal is the only proof. On Azure specifically, name Site Recovery, geo-redundant storage, paired regions, and Traffic Manager or Front Door. See [disaster recovery](../scalability-and-high-availability/what-is-disaster-recovery.md).
- Ingress should be defined as an API object that routes external HTTP and HTTPS traffic to Services by host and path, with TLS termination — plus the crucial point that the object does nothing without an **ingress controller** running in the cluster to implement it, selected via `ingressClassName`. Add that the Gateway API is its successor, since the community ingress-nginx project is now maintenance-only. See [exposing an application in Kubernetes](../kubernetes/how-do-you-expose-an-application-running-in-kubernetes-to-the-outside-world.md).
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-zopsmart-ask.md b/interview-experience/what-devops-interview-questions-does-zopsmart-ask.md
index 281e7ab..7d17ad7 100644
--- a/interview-experience/what-devops-interview-questions-does-zopsmart-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-zopsmart-ask.md
@@ -136,6 +136,16 @@ A JUNIOR ROUND THAT ASKS YOU TO WRITE
- On "explain a CI/CD pipeline", give a real stage-by-stage flow rather than the acronyms: commit triggers build, unit tests, static analysis, dependency and image scanning, image built once and tagged with the Git SHA, pushed to a registry, deployed automatically to dev, smoke tests, then promotion to higher environments behind an approval. Say the principle that makes it correct — build once and promote the same artefact, changing only configuration — because rebuilding per environment means you never tested what you shipped. See [what a CI/CD pipeline is](../cicd/what-is-ci-cd-pipeline.md) and [continuous delivery versus continuous deployment](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md).
- At two years of experience the interviewer is calibrating breadth and honesty, not depth. Where you have not used something, say so and describe the nearest thing you have done — inventing experience invites a follow-up you cannot answer, and this round has enough questions that one honest gap costs very little.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-interview-questions-does-zs-associates-ask.md b/interview-experience/what-devops-interview-questions-does-zs-associates-ask.md
index 638cd58..224adbc 100644
--- a/interview-experience/what-devops-interview-questions-does-zs-associates-ask.md
+++ b/interview-experience/what-devops-interview-questions-does-zs-associates-ask.md
@@ -120,6 +120,16 @@ THE STANDOUT TOPIC
- For the EKS module structure, describe the interface rather than listing resources: inputs for cluster name, Kubernetes version, VPC and subnet IDs, node pool or Karpenter configuration, add-on versions, and access entries; outputs for the cluster endpoint, certificate authority data, and the OIDC issuer URL — that last one being essential because every IRSA role depends on it. Internally the module owns the cluster, its IAM roles, security groups, the OIDC provider, and managed add-ons. Say whether you would write it or use the well-maintained community module, and justify the choice; "I would not rebuild a module thousands of people test for me" is a perfectly strong answer when it comes with a reason. See [what Terraform is](../infrastructure-as-code/what-is-terraform.md).
- The estate questions at the end — how many clusters, how many nodes, how CI/CD is organised — are calibration checks. Have exact numbers ready, because a vague answer here retroactively weakens the confident technical answers that preceded it.
+
+
+## Related Concepts
+
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-scenario-and-pipeline-questions-come-up-when-the-company-is-not-named.md b/interview-experience/what-devops-scenario-and-pipeline-questions-come-up-when-the-company-is-not-named.md
index c865779..aa80ac7 100644
--- a/interview-experience/what-devops-scenario-and-pipeline-questions-come-up-when-the-company-is-not-named.md
+++ b/interview-experience/what-devops-scenario-and-pipeline-questions-come-up-when-the-company-is-not-named.md
@@ -321,6 +321,16 @@ WHAT THESE ROUNDS TEST THAT ROUNDS 1-8 DO NOT
- A zombie process is one that has exited but whose exit status has not been reaped by its parent, so it holds a process-table entry and shows as `Z` in `ps`. It consumes no CPU or memory, and you cannot kill it — you have to make the parent call `wait()`, or kill the parent so `init` adopts and reaps it. Add that many zombies indicate a buggy parent, and that this is exactly why the pause container in a Kubernetes Pod acts as PID 1 to reap orphans. See [basic Linux commands](../linux-administration/what-are-the-basic-linux-commands-every-devops-engineer-should-know.md).
- The nginx-ingress-controller deprecation question is current and worth knowing: the community ingress-nginx project has entered maintenance-only status, so the alternatives to name are the Gateway API implementations — Envoy Gateway, Istio's gateway, Cilium's, and Traefik — plus cloud-native controllers such as the AWS Load Balancer Controller and Application Gateway Ingress Controller on Azure. Say that Gateway API is the successor to Ingress and that a migration is the real answer, not just swapping controllers.
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you scale CI/CD across many services and teams?]] (`#459`): [How do you scale CI/CD across many services and teams?](../cicd/how-do-you-scale-ci-cd-across-many-services-and-teams.md)
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-devops-tech-lead-interview-questions-does-virtusa-ask.md b/interview-experience/what-devops-tech-lead-interview-questions-does-virtusa-ask.md
index 2976620..6864706 100644
--- a/interview-experience/what-devops-tech-lead-interview-questions-does-virtusa-ask.md
+++ b/interview-experience/what-devops-tech-lead-interview-questions-does-virtusa-ask.md
@@ -98,6 +98,16 @@ A TECH LEAD ROUND THAT STAYS HANDS-ON
- List versus tuple in Python is a two-line answer with one consequence worth adding: lists are mutable and tuples immutable, which is why a tuple can be a dictionary key or a set member and a list cannot, and why tuples are slightly faster and safer as fixed records. For reversing a string, give the idiomatic `s[::-1]` and then a loop version, and say which you would ship — interviewers often follow up by banning slicing, so having the manual version ready costs nothing. See [what you use Python for as a DevOps engineer](../scripting-and-automation/what-do-you-use-python-for-as-a-devops-engineer.md).
- One thing to notice about this round: it is titled Tech Lead but contains no questions about people, delivery, estimation, or architecture ownership. That gap is an opportunity — where an answer naturally allows it, add the lead framing: how you would standardise the Helm chart across teams, why you would put Terraform behind a pipeline rather than trusting discipline, or how you would document the ECS traffic path for on-call. It costs a sentence and it is the only signal in the round that you can operate at lead level.
+
+
+## Related Concepts
+
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-does-a-typical-devops-interview-process-look-like.md b/interview-experience/what-does-a-typical-devops-interview-process-look-like.md
index ae72b23..37c660c 100644
--- a/interview-experience/what-does-a-typical-devops-interview-process-look-like.md
+++ b/interview-experience/what-does-a-typical-devops-interview-process-look-like.md
@@ -83,6 +83,16 @@ UNIVERSAL CORE — asked regardless of the job description
- Ask what the on-call rotation and incident process look like. It is a genuine question and it signals operational seniority.
- Treat the managerial round as technical too - "tell me about an incident you led" is assessed on the technical detail as much as the narrative.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-mlops-interview-questions-does-moodys-ask.md b/interview-experience/what-mlops-interview-questions-does-moodys-ask.md
index 1d27e1b..a9baa39 100644
--- a/interview-experience/what-mlops-interview-questions-does-moodys-ask.md
+++ b/interview-experience/what-mlops-interview-questions-does-moodys-ask.md
@@ -82,6 +82,16 @@ WHAT MAKES THIS AN MLOPS ROUND, NOT A DEVOPS ONE
- The Terraform-for-ML question wants the ML-specific resources, not a generic VPC answer: the model registry and artefact buckets with versioning and encryption, ECR repositories, the training and inference IAM roles, the endpoint or serving infrastructure with autoscaling, GPU node groups or instance types with the right quotas, VPC endpoints so training data never traverses the internet, and KMS keys for data at rest. Say you would keep environments in separate state and expose the model version as a variable so promotion is a configuration change, not a code change. See [what Terraform is](../infrastructure-as-code/what-is-terraform.md).
- Moodys is a ratings and analytics business, so lineage and auditability carry weight. Wherever you can, add the sentence that a given prediction can be traced back to a specific model version, training dataset, and code commit — that reproducibility claim is what a regulated financial employer is listening for.
+
+
+## Related Concepts
+
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-principal-sre-interview-questions-does-commonwealth-bank-ask.md b/interview-experience/what-principal-sre-interview-questions-does-commonwealth-bank-ask.md
index 874702d..b45bec9 100644
--- a/interview-experience/what-principal-sre-interview-questions-does-commonwealth-bank-ask.md
+++ b/interview-experience/what-principal-sre-interview-questions-does-commonwealth-bank-ask.md
@@ -84,6 +84,16 @@ PICKING AN SLI — the shape of a good answer
- Tie observability to reliability with outcomes rather than adjectives: it shortens detection and diagnosis time, so it moves MTTR; it makes SLOs measurable, so it enables the error-budget conversation; and it turns postmortems into evidence-based reviews. See [designing alerts that page a human](../site-reliability-engineering/how-do-you-design-alerts-that-page-a-human.md) and [post-mortem analysis](../incident-management/what-is-post-mortem-analysis.md).
- The DNS question is the only fundamentals question, and in an observability-heavy round it is best answered with the full request path — resolver cache, recursive resolution, TCP, TLS, load balancer, application, response, render — then a sentence on where you would observe each hop. There is a full walkthrough at [what happens when a user opens your application in a browser](../network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md).
+
+
+## Related Concepts
+
+- [[What is the difference between SRE, DevOps, and Platform Engineering?]] (`#232`): [What is the difference between SRE, DevOps, and Platform Engineering?](../site-reliability-engineering/what-is-the-difference-between-sre-devops-and-platform-engineering.md)
+- [[What is Site Reliability Engineering?]] (`#96`): [What is Site Reliability Engineering?](../site-reliability-engineering/what-is-site-reliability-engineering.md)
+- [[What are Service Level Objectives (SLOs)?]] (`#97`): [What are Service Level Objectives (SLOs)?](../site-reliability-engineering/what-are-service-level-objectives-slos.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-questions-should-you-ask-your-interviewer.md b/interview-experience/what-questions-should-you-ask-your-interviewer.md
index 3715e27..e26aa2a 100644
--- a/interview-experience/what-questions-should-you-ask-your-interviewer.md
+++ b/interview-experience/what-questions-should-you-ask-your-interviewer.md
@@ -109,6 +109,16 @@ WHAT THE ANSWERS TELL YOU
- Reference something from earlier in the conversation. It proves you listened and turns the close into a discussion rather than a checklist.
- Save compensation for the recruiter, and do not skip it - just put it in the right round.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-release-engineering-interview-questions-does-morgan-stanley-ask.md b/interview-experience/what-release-engineering-interview-questions-does-morgan-stanley-ask.md
index a17672f..8095313 100644
--- a/interview-experience/what-release-engineering-interview-questions-does-morgan-stanley-ask.md
+++ b/interview-experience/what-release-engineering-interview-questions-does-morgan-stanley-ask.md
@@ -100,6 +100,16 @@ ls /proc//fd | wc -l # how many descriptors it is really holding
- stdin, stdout, and stderr are file descriptors 0, 1, and 2. Give the redirection forms as well as the definitions — `2>&1` merges stderr into stdout, `>` truncates while `>>` appends, `2>/dev/null` discards errors — and say why the split exists: so you can pipe real output onward while still seeing diagnostics.
- Hard versus soft link needs the consequences, not just the definition: a hard link is a second directory entry pointing at the same inode, so it cannot cross filesystems or link a directory, and the data survives until the last link is gone; a symlink stores a path, can cross filesystems and point at directories, and dangles if the target moves. `ln -s target linkname` creates the symlink — note that omitting `-s` gives you a hard link, which is the trap in the pair. See [Linux filesystem hierarchy](../linux-administration/what-is-linux-file-system-hierarchy.md).
+
+
+## Related Concepts
+
+- [[What is the difference between Continuous Delivery and Continuous Deployment?]] (`#20`): [What is the difference between Continuous Delivery and Continuous Deployment?](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md)
+- [[What is the difference between SRE, DevOps, and Platform Engineering?]] (`#232`): [What is the difference between SRE, DevOps, and Platform Engineering?](../site-reliability-engineering/what-is-the-difference-between-sre-devops-and-platform-engineering.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-release-engineering-interview-questions-does-syncortex-ask.md b/interview-experience/what-release-engineering-interview-questions-does-syncortex-ask.md
index 6be4962..e8d0dbe 100644
--- a/interview-experience/what-release-engineering-interview-questions-does-syncortex-ask.md
+++ b/interview-experience/what-release-engineering-interview-questions-does-syncortex-ask.md
@@ -75,6 +75,16 @@ A COMPACT ROUND WITH TWO PRECISE ANSWERS
- Multi-region Terraform is a provider-alias question at its core: declare aliased providers per region and pass the right one into each module with `providers = { aws = aws.eu_west_1 }`, since a module inherits only the default provider otherwise. Then the structural points: keep per-region state separate so one region's apply cannot break another, factor region-agnostic infrastructure into modules invoked once per region, use `for_each` over a region map rather than copy-pasting blocks, and remember that some resources are global — IAM, Route 53, CloudFront, and ACM certificates for CloudFront must live in `us-east-1`. That global-resource caveat is the detail that marks experience. See [what are Terraform providers](../infrastructure-as-code/what-are-terraform-providers.md) and [designing for multi-region resilience](../cloud-engineering/how-do-you-design-for-multi-region-resilience.md).
- For a release engineering role specifically, tie the Ansible and Terraform answers back to release safety wherever it fits naturally: `block`/`rescue` gives a change an automatic rollback path, `prevent_destroy` and approval gates stop a release from destroying state, and admission control stops an unapproved artefact reaching production. That framing is what distinguishes a release engineer from a general automation engineer.
+
+
+## Related Concepts
+
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-sre-interview-questions-come-up-when-the-company-is-not-named.md b/interview-experience/what-sre-interview-questions-come-up-when-the-company-is-not-named.md
index 07b24fd..70f5750 100644
--- a/interview-experience/what-sre-interview-questions-come-up-when-the-company-is-not-named.md
+++ b/interview-experience/what-sre-interview-questions-come-up-when-the-company-is-not-named.md
@@ -60,6 +60,16 @@ A SHORT, OPEN-ENDED ROUND
- For "how you build a CI/CD pipeline", give one pipeline you actually own, stage by stage, and name the gates: build once and produce an immutable artefact tagged by Git SHA, run unit tests and static analysis, scan dependencies and the image, push to a registry, deploy to a lower environment automatically, then promote _the same artefact_ upward with an approval before production. Say that rebuilding per environment means you never tested what you shipped. See [what a CI/CD pipeline is](../cicd/what-is-ci-cd-pipeline.md) and [continuous delivery versus continuous deployment](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md).
- Nothing in this round asks about SLIs, SLOs, error budgets, or incident response — which is unusual for an SRE title and suggests a platform-operations role wearing an SRE label. Volunteer the reliability framing anyway where it fits naturally: when asked about monitoring, mention that you alert on user-facing symptoms and error-budget burn rather than raw CPU thresholds. It costs one sentence and reframes you as an SRE rather than an operator. See [designing alerts that page a human](../site-reliability-engineering/how-do-you-design-alerts-that-page-a-human.md) and [error budgets](../site-reliability-engineering/what-is-error-budget.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-sre-interview-questions-does-accion-labs-ask.md b/interview-experience/what-sre-interview-questions-does-accion-labs-ask.md
index edd3f01..313a5e6 100644
--- a/interview-experience/what-sre-interview-questions-does-accion-labs-ask.md
+++ b/interview-experience/what-sre-interview-questions-does-accion-labs-ask.md
@@ -85,6 +85,16 @@ SENIORITY SIGNAL
- The workspaces question has a preferred answer at senior level: workspaces suit identical infrastructure with different variables, but most teams prefer separate state files and directories per environment because workspaces hide which environment you are targeting. Say the trade-off. See [managing Terraform state safely](../infrastructure-as-code/how-do-you-manage-terraform-state-safely-in-a-team.md).
- Ansible and Terraform in the same round usually leads to "why both?". Prepare the configuration-versus-provisioning distinction. See [Ansible versus Terraform](../infrastructure-as-code/what-is-the-difference-between-ansible-and-terraform.md).
+
+
+## Related Concepts
+
+- [[What is the difference between SRE, DevOps, and Platform Engineering?]] (`#232`): [What is the difference between SRE, DevOps, and Platform Engineering?](../site-reliability-engineering/what-is-the-difference-between-sre-devops-and-platform-engineering.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[What is a production readiness review?]] (`#231`): [What is a production readiness review?](../site-reliability-engineering/what-is-a-production-readiness-review.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-sre-interview-questions-does-akamai-ask.md b/interview-experience/what-sre-interview-questions-does-akamai-ask.md
index d4b1747..b002a23 100644
--- a/interview-experience/what-sre-interview-questions-does-akamai-ask.md
+++ b/interview-experience/what-sre-interview-questions-does-akamai-ask.md
@@ -84,6 +84,16 @@ grep -i "ERROR" application.log
- Public versus private hosted zones is a Route 53 question in disguise: private zones are associated with specific VPCs and resolve only from inside them. Mention split-horizon DNS. See [managing DNS and global traffic routing](../cloud-engineering/how-do-you-manage-dns-and-global-traffic-routing.md).
- Add `grep -ri` and `grep -c` as follow-ups to the case-insensitive search, and be ready for "now show only the count" or "now search every file under this tree". See [analysing logs with grep, awk, and sed](../linux-administration/how-do-you-analyse-logs-and-text-files-with-grep-awk-and-sed.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+- [[Why does a build pass locally but fail in CI?]] (`#397`): [Why does a build pass locally but fail in CI?](../cicd/why-does-a-build-pass-locally-but-fail-in-ci.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-sre-interview-questions-does-altimetrik-ask.md b/interview-experience/what-sre-interview-questions-does-altimetrik-ask.md
index 87f30d8..2743bbf 100644
--- a/interview-experience/what-sre-interview-questions-does-altimetrik-ask.md
+++ b/interview-experience/what-sre-interview-questions-does-altimetrik-ask.md
@@ -93,6 +93,16 @@ THE PATTERN TO NOTICE
- When describing Helm, cover `Chart.yaml`, `values.yaml`, the `templates/` directory, `_helpers.tpl`, and how you override values per environment; then say whether you use `helm upgrade --install` from CI or a GitOps controller. See [what Helm is](../container-orchestration-advanced/what-is-helm.md) and [Argo CD](../devops-tools-and-automation/what-is-argocd.md).
- Practise writing `aws_vpc`, `aws_subnet`, `aws_internet_gateway`, and `aws_route_table` from memory. Being asked to write it live, out of an SRE conversation, is a fluency test rather than a design test. See [what Terraform is](../infrastructure-as-code/what-is-terraform.md).
+
+
+## Related Concepts
+
+- [[What is Site Reliability Engineering?]] (`#96`): [What is Site Reliability Engineering?](../site-reliability-engineering/what-is-site-reliability-engineering.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[How do you design alerts that page a human?]] (`#233`): [How do you design alerts that page a human?](../site-reliability-engineering/how-do-you-design-alerts-that-page-a-human.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-sre-interview-questions-does-amadeus-labs-ask.md b/interview-experience/what-sre-interview-questions-does-amadeus-labs-ask.md
index 83eda51..55eccd8 100644
--- a/interview-experience/what-sre-interview-questions-does-amadeus-labs-ask.md
+++ b/interview-experience/what-sre-interview-questions-does-amadeus-labs-ask.md
@@ -76,6 +76,16 @@ securityContext:
- Service discovery should cover both halves: DNS through CoreDNS resolving `service.namespace.svc.cluster.local`, and the Service-to-Endpoints mapping that kube-proxy programs into iptables or IPVS rules. Add headless Services for StatefulSet Pod-level addressing. See [what a Service is in Kubernetes](../kubernetes/what-is-a-service-in-kubernetes.md) and [StatefulSets](../container-orchestration-advanced/what-are-statefulsets-in-kubernetes.md).
- Leap seconds matter because a repeated or skipped second breaks monotonic-time assumptions: timers fire twice, distributed leases and certificate validity get confused, and some kernels have historically hung. The expected mitigation is NTP leap smearing rather than a step adjustment. Being aware of the failure mode is enough at this level.
+
+
+## Related Concepts
+
+- [[How do you do capacity planning?]] (`#230`): [How do you do capacity planning?](../site-reliability-engineering/how-do-you-do-capacity-planning.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[What are Service Level Objectives (SLOs)?]] (`#97`): [What are Service Level Objectives (SLOs)?](../site-reliability-engineering/what-are-service-level-objectives-slos.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/interview-experience/what-sre-interview-questions-does-cmt-ask.md b/interview-experience/what-sre-interview-questions-does-cmt-ask.md
index 67567b5..ef236d7 100644
--- a/interview-experience/what-sre-interview-questions-does-cmt-ask.md
+++ b/interview-experience/what-sre-interview-questions-does-cmt-ask.md
@@ -90,6 +90,16 @@ THE THREAD TO PULL
- TCP versus UDP should end in a use case, not just "reliable versus unreliable": TCP for HTTP and databases, UDP for DNS, streaming, and metrics where a lost datagram is cheaper than a retransmit delay. See [network security in DevOps](../network-security/what-is-network-security-in-devops.md).
- Have two production incidents ready, ideally one where your first hypothesis was wrong. Interviewers at SRE level use the incident answer to check whether you reason from evidence or from memory. See [post-mortem analysis](../incident-management/what-is-post-mortem-analysis.md).
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[How do you run and secure a Jenkins controller in production?]] (`#456`): [How do you run and secure a Jenkins controller in production?](../cicd/how-do-you-run-and-secure-a-jenkins-controller-in-production.md)
+- [[What is the difference between SRE, DevOps, and Platform Engineering?]] (`#232`): [What is the difference between SRE, DevOps, and Platform Engineering?](../site-reliability-engineering/what-is-the-difference-between-sre-devops-and-platform-engineering.md)
+
+
+
---
[⬅ Back to Interview Experience](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/explain-the-difference-between-docker-swarm-and-kubernetes.md b/kubernetes/explain-the-difference-between-docker-swarm-and-kubernetes.md
index 50d2f81..315b80f 100644
--- a/kubernetes/explain-the-difference-between-docker-swarm-and-kubernetes.md
+++ b/kubernetes/explain-the-difference-between-docker-swarm-and-kubernetes.md
@@ -37,6 +37,16 @@ Kubernetes wins on everything that matters at scale - autoscaling, sophisticated
- The strategic point: Kubernetes won because of extensibility and the ecosystem, not raw features.
- If you have migrated Swarm to Kubernetes, that story - especially the networking and storage remapping - is gold.
+
+
+## Related Concepts
+
+- [[How do you run an application across multiple Kubernetes clusters?]] (`#414`): [How do you run an application across multiple Kubernetes clusters?](../container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md)
+- [[How do you run a multi-tenant Kubernetes cluster?]] (`#453`): [How do you run a multi-tenant Kubernetes cluster?](../container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md)
+- [[How do you upgrade a production Kubernetes cluster with zero downtime?]] (`#411`): [How do you upgrade a production Kubernetes cluster with zero downtime?](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md b/kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md
index 9e2ddbf..6170717 100644
--- a/kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md
+++ b/kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md
@@ -112,6 +112,16 @@ hubble observe --to-pod prod/checkout --verdict DROPPED
- Mention audit or staged policy mode for rollout, plus the three forgotten flows: kubelet health probes, Prometheus scrapes, and API server access.
- For deep debugging, name Hubble or Calico flow logs rather than "check the logs" - seeing the drop verdict is what closes these cases. See [how do you design defence in depth for a cloud network](../network-security/how-do-you-design-defence-in-depth-for-a-cloud-network.md).
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you run a multi-tenant Kubernetes cluster?]] (`#453`): [How do you run a multi-tenant Kubernetes cluster?](../container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md)
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-liveness-readiness-and-startup-probes-differ.md b/kubernetes/how-do-liveness-readiness-and-startup-probes-differ.md
index 0181a38..95fb01e 100644
--- a/kubernetes/how-do-liveness-readiness-and-startup-probes-differ.md
+++ b/kubernetes/how-do-liveness-readiness-and-startup-probes-differ.md
@@ -84,6 +84,16 @@ kubectl get endpointslices -l kubernetes.io/service-name=api # who is receivin
- Volunteering the anti-pattern - liveness probes that check the database - marks you as someone who has actually operated this.
- Mention `preStop` plus readiness-on-`SIGTERM` when asked about zero-downtime rollouts; probes and graceful shutdown are the same conversation.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a failed Helm release?]] (`#412`): [How do you troubleshoot a failed Helm release?](../container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md)
+- [[How do you run and scale a stateful application on Kubernetes?]] (`#413`): [How do you run and scale a stateful application on Kubernetes?](../container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md)
+- [[How do you back up and restore a Kubernetes cluster?]] (`#451`): [How do you back up and restore a Kubernetes cluster?](../container-orchestration-advanced/how-do-you-back-up-and-restore-a-kubernetes-cluster.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-requests-limits-and-qos-classes-work-in-kubernetes.md b/kubernetes/how-do-requests-limits-and-qos-classes-work-in-kubernetes.md
index 538deac..bf0c1f1 100644
--- a/kubernetes/how-do-requests-limits-and-qos-classes-work-in-kubernetes.md
+++ b/kubernetes/how-do-requests-limits-and-qos-classes-work-in-kubernetes.md
@@ -128,6 +128,16 @@ kubectl describe node | grep -A6 "Allocated resources"
- Do the node arithmetic out loud if they give you numbers - sum the **requests** against allocatable, not the limits, and remember system reserved.
- Close on cost: over-requesting is why clusters sit at low utilisation while the bill grows, and VPA in recommendation mode is how you fix it with data. See [autoscaling workloads and nodes in Kubernetes](./how-do-you-autoscale-workloads-and-nodes-in-kubernetes.md), [node pressure and Pod evictions](./how-do-you-handle-node-pressure-and-pod-evictions-in-kubernetes.md), [Pod stuck in Pending or CrashLoopBackOff](./how-do-you-troubleshoot-a-pod-stuck-in-pending-or-crashloopbackoff.md), and [cutting a cloud bill without hurting reliability](../cloud-cost-optimization/how-do-you-cut-a-cloud-bill-without-hurting-reliability.md).
+
+
+## Related Concepts
+
+- [[How do you upgrade a production Kubernetes cluster with zero downtime?]] (`#411`): [How do you upgrade a production Kubernetes cluster with zero downtime?](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md)
+- [[How do you run and scale a stateful application on Kubernetes?]] (`#413`): [How do you run and scale a stateful application on Kubernetes?](../container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md)
+- [[How do you run an application across multiple Kubernetes clusters?]] (`#414`): [How do you run an application across multiple Kubernetes clusters?](../container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-you-autoscale-workloads-and-nodes-in-kubernetes.md b/kubernetes/how-do-you-autoscale-workloads-and-nodes-in-kubernetes.md
index c10cb21..498b7e5 100644
--- a/kubernetes/how-do-you-autoscale-workloads-and-nodes-in-kubernetes.md
+++ b/kubernetes/how-do-you-autoscale-workloads-and-nodes-in-kubernetes.md
@@ -99,6 +99,16 @@ kubectl top pods -l app=api # is the metrics-server even reporting?
- Karpenter vs Cluster Autoscaler: node-group-free, right-sized instances, and consolidation for cost. Expect a cost follow-up right after.
- Have a cascading-failure story ready - "a misconfigured HPA made an incident worse" is now a common senior-level scenario question.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a failed Helm release?]] (`#412`): [How do you troubleshoot a failed Helm release?](../container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md)
+- [[How do you run and scale a stateful application on Kubernetes?]] (`#413`): [How do you run and scale a stateful application on Kubernetes?](../container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md)
+- [[What are CustomResourceDefinitions and operators in Kubernetes?]] (`#452`): [What are CustomResourceDefinitions and operators in Kubernetes?](../container-orchestration-advanced/what-are-customresourcedefinitions-and-operators-in-kubernetes.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-you-control-which-node-a-pod-runs-on.md b/kubernetes/how-do-you-control-which-node-a-pod-runs-on.md
index d93aa0e..5e824fa 100644
--- a/kubernetes/how-do-you-control-which-node-a-pod-runs-on.md
+++ b/kubernetes/how-do-you-control-which-node-a-pod-runs-on.md
@@ -105,6 +105,16 @@ kubectl describe pod inference-xxx | grep -A10 Events
- Prefer `topologySpreadConstraints` over required pod anti-affinity for HA spread, and be ready to say why: anti-affinity leaves Pods `Pending` when replicas exceed domains.
- `kubectl describe pod` on a `Pending` Pod prints the scheduler's exact reason - say that when asked how you would debug placement.
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you upgrade a production Kubernetes cluster with zero downtime?]] (`#411`): [How do you upgrade a production Kubernetes cluster with zero downtime?](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md)
+- [[How do you troubleshoot a failed Helm release?]] (`#412`): [How do you troubleshoot a failed Helm release?](../container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-you-debug-a-kubernetes-ingress-that-is-not-routing-traffic.md b/kubernetes/how-do-you-debug-a-kubernetes-ingress-that-is-not-routing-traffic.md
index c3a226f..8642f42 100644
--- a/kubernetes/how-do-you-debug-a-kubernetes-ingress-that-is-not-routing-traffic.md
+++ b/kubernetes/how-do-you-debug-a-kubernetes-ingress-that-is-not-routing-traffic.md
@@ -96,6 +96,16 @@ spec:
- For TLS, mention the fake certificate as the tell, the same-namespace secret requirement, and the cert-manager chain (`Certificate` → `CertificateRequest` → `Order` → `Challenge`).
- Close with the bypass tests (`port-forward`, `curl` from inside the controller Pod, `--resolve`) - taking layers away is more convincing than reading YAML harder. See [how do you expose an application running in Kubernetes to the outside world](./how-do-you-expose-an-application-running-in-kubernetes-to-the-outside-world.md).
+
+
+## Related Concepts
+
+- [[How do you run a multi-tenant Kubernetes cluster?]] (`#453`): [How do you run a multi-tenant Kubernetes cluster?](../container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md)
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you run an application across multiple Kubernetes clusters?]] (`#414`): [How do you run an application across multiple Kubernetes clusters?](../container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-you-debug-dns-resolution-failures-inside-a-kubernetes-cluster.md b/kubernetes/how-do-you-debug-dns-resolution-failures-inside-a-kubernetes-cluster.md
index 1d545c0..f4c9d6a 100644
--- a/kubernetes/how-do-you-debug-dns-resolution-failures-inside-a-kubernetes-cluster.md
+++ b/kubernetes/how-do-you-debug-dns-resolution-failures-inside-a-kubernetes-cluster.md
@@ -89,6 +89,16 @@ spec:
- Show the isolation move: `dig @` bypasses the Pod's resolver, so a working direct query proves the problem is `resolv.conf`, not CoreDNS.
- Close on the observability you would add: alert on CoreDNS `SERVFAIL` rate and p99 latency, because DNS failures usually surface as unexplained application timeouts. See [how do you write effective PromQL queries and Alertmanager rules](../monitoring-and-logging/how-do-you-write-effective-promql-queries-and-alertmanager-rules.md).
+
+
+## Related Concepts
+
+- [[How do you run a multi-tenant Kubernetes cluster?]] (`#453`): [How do you run a multi-tenant Kubernetes cluster?](../container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md)
+- [[How does Prometheus collect metrics, and what components sit around it?]] (`#500`): [How does Prometheus collect metrics, and what components sit around it?](../monitoring-and-logging/how-does-prometheus-collect-metrics-and-what-components-sit-around-it.md)
+- [[How do the ELK and EFK stacks fit together?]] (`#501`): [How do the ELK and EFK stacks fit together?](../monitoring-and-logging/how-do-the-elk-and-efk-stacks-fit-together.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-you-expose-an-application-running-in-kubernetes-to-the-outside-world.md b/kubernetes/how-do-you-expose-an-application-running-in-kubernetes-to-the-outside-world.md
index e56dfc8..491e993 100644
--- a/kubernetes/how-do-you-expose-an-application-running-in-kubernetes-to-the-outside-world.md
+++ b/kubernetes/how-do-you-expose-an-application-running-in-kubernetes-to-the-outside-world.md
@@ -114,6 +114,16 @@ kubectl describe ingress api # controller events explain 404s
- A frequent scenario: "an Ingress returns 404 / the certificate is not issued." Answer with `kubectl describe ingress`, then check the EndpointSlice actually has backends and that the readiness probe is passing.
- If asked about `targetPort` being omitted on a Service - it defaults to the value of `port`.
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you upgrade a production Kubernetes cluster with zero downtime?]] (`#411`): [How do you upgrade a production Kubernetes cluster with zero downtime?](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md)
+- [[How do you troubleshoot a failed Helm release?]] (`#412`): [How do you troubleshoot a failed Helm release?](../container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-you-handle-node-pressure-and-pod-evictions-in-kubernetes.md b/kubernetes/how-do-you-handle-node-pressure-and-pod-evictions-in-kubernetes.md
index 9868af2..2021d1b 100644
--- a/kubernetes/how-do-you-handle-node-pressure-and-pod-evictions-in-kubernetes.md
+++ b/kubernetes/how-do-you-handle-node-pressure-and-pod-evictions-in-kubernetes.md
@@ -118,6 +118,16 @@ spec:
- Bring up disk pressure with a concrete cause - an unbounded `emptyDir` or unrotated logs taking a whole node down - and the `sizeLimit` fix.
- Close on the systemic view: repeated evictions mean requests are wrong or capacity is short, so the real fix is right-sizing plus autoscaling headroom, not restarting Pods.
+
+
+## Related Concepts
+
+- [[How do you upgrade a production Kubernetes cluster with zero downtime?]] (`#411`): [How do you upgrade a production Kubernetes cluster with zero downtime?](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md)
+- [[How do you run and scale a stateful application on Kubernetes?]] (`#413`): [How do you run and scale a stateful application on Kubernetes?](../container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md)
+- [[How do you run an application across multiple Kubernetes clusters?]] (`#414`): [How do you run an application across multiple Kubernetes clusters?](../container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-you-perform-and-roll-back-a-rolling-update-in-kubernetes.md b/kubernetes/how-do-you-perform-and-roll-back-a-rolling-update-in-kubernetes.md
index bc07c8b..37effe8 100644
--- a/kubernetes/how-do-you-perform-and-roll-back-a-rolling-update-in-kubernetes.md
+++ b/kubernetes/how-do-you-perform-and-roll-back-a-rolling-update-in-kubernetes.md
@@ -125,6 +125,16 @@ kubectl rollout undo deployment/checkout --to-revision=7
- Know that StatefulSets update in reverse ordinal order one at a time and stall on an unready Pod, and that `partition` is their canary control.
- Close by naming the limits of rolling updates - no traffic shifting, no automated verdict - and when you would reach for canary or blue/green instead.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a failed Helm release?]] (`#412`): [How do you troubleshoot a failed Helm release?](../container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md)
+- [[How do you run and scale a stateful application on Kubernetes?]] (`#413`): [How do you run and scale a stateful application on Kubernetes?](../container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md)
+- [[How do you back up and restore a Kubernetes cluster?]] (`#451`): [How do you back up and restore a Kubernetes cluster?](../container-orchestration-advanced/how-do-you-back-up-and-restore-a-kubernetes-cluster.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-you-troubleshoot-a-kubernetes-job-or-cronjob-that-never-completes.md b/kubernetes/how-do-you-troubleshoot-a-kubernetes-job-or-cronjob-that-never-completes.md
index 58c7b7c..dac9637 100644
--- a/kubernetes/how-do-you-troubleshoot-a-kubernetes-job-or-cronjob-that-never-completes.md
+++ b/kubernetes/how-do-you-troubleshoot-a-kubernetes-job-or-cronjob-that-never-completes.md
@@ -113,6 +113,16 @@ spec:
- Say that batch work must be idempotent because evictions and retries will re-run it - and that "resume from where it stopped" is a design requirement, not a nice-to-have.
- Close on alerting: a failed nightly job discovered a week later is the actual production risk. See [how do you write effective PromQL queries and Alertmanager rules](../monitoring-and-logging/how-do-you-write-effective-promql-queries-and-alertmanager-rules.md).
+
+
+## Related Concepts
+
+- [[How does Prometheus collect metrics, and what components sit around it?]] (`#500`): [How does Prometheus collect metrics, and what components sit around it?](../monitoring-and-logging/how-does-prometheus-collect-metrics-and-what-components-sit-around-it.md)
+- [[How do the ELK and EFK stacks fit together?]] (`#501`): [How do the ELK and EFK stacks fit together?](../monitoring-and-logging/how-do-the-elk-and-efk-stacks-fit-together.md)
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-you-troubleshoot-a-kubernetes-node-that-is-notready.md b/kubernetes/how-do-you-troubleshoot-a-kubernetes-node-that-is-notready.md
index 29629ff..b42f02b 100644
--- a/kubernetes/how-do-you-troubleshoot-a-kubernetes-node-that-is-notready.md
+++ b/kubernetes/how-do-you-troubleshoot-a-kubernetes-node-that-is-notready.md
@@ -133,6 +133,16 @@ kubectl get csr | grep -i pending # kubelet serving certs
- Mention inodes (`df -ih`) separately from disk space, and expired kubelet certificates. Both are common and both look mysterious.
- For a node that will not join, pivot to bootstrap causes: token/cert, connectivity to the API endpoint, IAM mapping, version skew, subnet IP exhaustion, cloud-init logs. See [node pressure and Pod evictions](./how-do-you-handle-node-pressure-and-pod-evictions-in-kubernetes.md), [what happens when a control-plane node or etcd fails](./what-happens-when-a-kubernetes-control-plane-node-or-etcd-fails.md), [troubleshooting SSH failures, high CPU, and disk space on Linux](../linux-administration/how-do-you-troubleshoot-ssh-failures-high-cpu-and-disk-space-on-linux-servers.md), and [what is a PodDisruptionBudget](./what-is-a-poddisruptionbudget-and-when-do-you-need-one.md).
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[How do you upgrade a production Kubernetes cluster with zero downtime?]] (`#411`): [How do you upgrade a production Kubernetes cluster with zero downtime?](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-you-troubleshoot-a-kubernetes-service-that-has-no-endpoints.md b/kubernetes/how-do-you-troubleshoot-a-kubernetes-service-that-has-no-endpoints.md
index 547d273..42c1092 100644
--- a/kubernetes/how-do-you-troubleshoot-a-kubernetes-service-that-has-no-endpoints.md
+++ b/kubernetes/how-do-you-troubleshoot-a-kubernetes-service-that-has-no-endpoints.md
@@ -108,6 +108,16 @@ spec:
- Have the external-access branch ready: `ClusterIP` is internal, `` external IP means no cloud controller or no capacity, and the load balancer's health check is separate from the readiness probe.
- Close with `kubectl get endpointslices` rather than the deprecated `kubectl get endpoints` - EndpointSlice is the current API and using it signals you are current. See [what is a Service in Kubernetes](./what-is-a-service-in-kubernetes.md).
+
+
+## Related Concepts
+
+- [[How do you run a multi-tenant Kubernetes cluster?]] (`#453`): [How do you run a multi-tenant Kubernetes cluster?](../container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md)
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[How do you troubleshoot a failed Helm release?]] (`#412`): [How do you troubleshoot a failed Helm release?](../container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-you-troubleshoot-a-pod-stuck-in-pending-or-crashloopbackoff.md b/kubernetes/how-do-you-troubleshoot-a-pod-stuck-in-pending-or-crashloopbackoff.md
index 5996886..0fdf4b0 100644
--- a/kubernetes/how-do-you-troubleshoot-a-pod-stuck-in-pending-or-crashloopbackoff.md
+++ b/kubernetes/how-do-you-troubleshoot-a-pod-stuck-in-pending-or-crashloopbackoff.md
@@ -71,6 +71,16 @@ Last State: Terminated
- Explain the distinction between `resources.requests` (used by scheduler for node placement) and `resources.limits` (enforced by cgroups, causing OOMKilled if memory limit is breached).
- Note that `kubectl logs --previous` is critical because standard `kubectl logs` might return empty if the container just restarted.
+
+
+## Related Concepts
+
+- [[How do you upgrade a production Kubernetes cluster with zero downtime?]] (`#411`): [How do you upgrade a production Kubernetes cluster with zero downtime?](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md)
+- [[How do you troubleshoot a failed Helm release?]] (`#412`): [How do you troubleshoot a failed Helm release?](../container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md)
+- [[How do you run and scale a stateful application on Kubernetes?]] (`#413`): [How do you run and scale a stateful application on Kubernetes?](../container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md b/kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md
index ad3d926..0a9642b 100644
--- a/kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md
+++ b/kubernetes/how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md
@@ -100,6 +100,16 @@ spec:
- Mention `fsGroup` for the write-permission variant, and `allowVolumeExpansion` plus no-shrink for resize questions.
- Close on prevention: explicit storage class, `Retain` for real data, snapshots before risky changes, and an alert on volume fill level.
+
+
+## Related Concepts
+
+- [[How do you run an application across multiple Kubernetes clusters?]] (`#414`): [How do you run an application across multiple Kubernetes clusters?](../container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md)
+- [[How do you back up and restore a Kubernetes cluster?]] (`#451`): [How do you back up and restore a Kubernetes cluster?](../container-orchestration-advanced/how-do-you-back-up-and-restore-a-kubernetes-cluster.md)
+- [[How do you run a multi-tenant Kubernetes cluster?]] (`#453`): [How do you run a multi-tenant Kubernetes cluster?](../container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-does-persistent-storage-work-in-kubernetes.md b/kubernetes/how-does-persistent-storage-work-in-kubernetes.md
index c88139e..1f66b4b 100644
--- a/kubernetes/how-does-persistent-storage-work-in-kubernetes.md
+++ b/kubernetes/how-does-persistent-storage-work-in-kubernetes.md
@@ -145,6 +145,16 @@ kubectl patch pv pvc-9f2c8b1d -p '{"spec":{"claimRef":null}}'
- Mention volume expansion (grow only, never shrink) and snapshot-to-PVC restore as the clone path.
- Close with quotas per namespace and class for multi-tenant clusters. See [how do you troubleshoot a Pod stuck waiting for a PersistentVolumeClaim](./how-do-you-troubleshoot-a-pod-stuck-waiting-for-a-persistentvolumeclaim.md), [what are StatefulSets in Kubernetes](../container-orchestration-advanced/what-are-statefulsets-in-kubernetes.md), [running and scaling a stateful application on Kubernetes](../container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md), and [how do you back up and restore a Kubernetes cluster](../container-orchestration-advanced/how-do-you-back-up-and-restore-a-kubernetes-cluster.md).
+
+
+## Related Concepts
+
+- [[How do you run and scale a stateful application on Kubernetes?]] (`#413`): [How do you run and scale a stateful application on Kubernetes?](../container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md)
+- [[How do you upgrade a production Kubernetes cluster with zero downtime?]] (`#411`): [How do you upgrade a production Kubernetes cluster with zero downtime?](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md)
+- [[What is inside a Helm chart, and how do you customise one?]] (`#450`): [What is inside a Helm chart, and how do you customise one?](../container-orchestration-advanced/what-is-inside-a-helm-chart-and-how-do-you-customise-one.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-does-pod-networking-and-service-discovery-work-in-kubernetes.md b/kubernetes/how-does-pod-networking-and-service-discovery-work-in-kubernetes.md
index 748ee20..0bb91c4 100644
--- a/kubernetes/how-does-pod-networking-and-service-discovery-work-in-kubernetes.md
+++ b/kubernetes/how-does-pod-networking-and-service-discovery-work-in-kubernetes.md
@@ -152,6 +152,16 @@ spec:
- For the Calico-versus-VPC-CNI question, answer in trade-offs: VPC-native addressing and security groups versus IP exhaustion and per-instance limits, against overlay independence and richer policy.
- Have the "two Pods cannot communicate, no errors anywhere" checklist ready, and lead with NetworkPolicy plus the missing DNS egress rule - it is the most common cause and the one people miss. See [how do Kubernetes NetworkPolicies work](./how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md), [debugging DNS resolution failures inside a cluster](./how-do-you-debug-dns-resolution-failures-inside-a-kubernetes-cluster.md), [a Service that has no endpoints](./how-do-you-troubleshoot-a-kubernetes-service-that-has-no-endpoints.md), and [exposing an application to the outside world](./how-do-you-expose-an-application-running-in-kubernetes-to-the-outside-world.md).
+
+
+## Related Concepts
+
+- [[How do you run a multi-tenant Kubernetes cluster?]] (`#453`): [How do you run a multi-tenant Kubernetes cluster?](../container-orchestration-advanced/how-do-you-run-a-multi-tenant-kubernetes-cluster.md)
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[How do you troubleshoot a failed Helm release?]] (`#412`): [How do you troubleshoot a failed Helm release?](../container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/how-does-rbac-work-in-kubernetes.md b/kubernetes/how-does-rbac-work-in-kubernetes.md
index fe07c4f..fc34de6 100644
--- a/kubernetes/how-does-rbac-work-in-kubernetes.md
+++ b/kubernetes/how-does-rbac-work-in-kubernetes.md
@@ -94,6 +94,16 @@ kubectl auth whoami
- If the interview leans security, volunteer the escalation paths: `pods/exec`, `secrets: list`, and `create pods` with a privileged ServiceAccount are cluster-admin in disguise.
- Tie ServiceAccounts to cloud workload identity rather than static keys - that connects RBAC to the secrets-management answer they will ask next.
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you upgrade a production Kubernetes cluster with zero downtime?]] (`#411`): [How do you upgrade a production Kubernetes cluster with zero downtime?](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md)
+- [[How do you troubleshoot a failed Helm release?]] (`#412`): [How do you troubleshoot a failed Helm release?](../container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/what-are-init-containers-and-sidecar-containers-in-kubernetes.md b/kubernetes/what-are-init-containers-and-sidecar-containers-in-kubernetes.md
index 6824fb9..20c0c42 100644
--- a/kubernetes/what-are-init-containers-and-sidecar-containers-in-kubernetes.md
+++ b/kubernetes/what-are-init-containers-and-sidecar-containers-in-kubernetes.md
@@ -122,6 +122,16 @@ kubectl debug -it api-7f4c2b --image=nicolaka/netshoot --target=api
- Mention the resource-request rule (`max(init) vs sum(app)`) if sizing comes up; it explains a Pod that will not schedule for no obvious reason.
- Push back thoughtfully on sidecar sprawl: a DaemonSet log collector or direct `/metrics` exposure is usually cheaper than a sidecar per Pod, and name the "sidecar tax". See [what is a sidecar pattern](../advanced-devops-cloud/what-is-a-sidecar-pattern.md), [running a service mesh in production without the sidecar tax](../api-gateway-and-service-mesh/how-do-you-run-a-service-mesh-in-production-without-the-sidecar-tax.md), [troubleshooting a Job or CronJob that never completes](./how-do-you-troubleshoot-a-kubernetes-job-or-cronjob-that-never-completes.md), and [what are DaemonSets in Kubernetes](../container-orchestration-advanced/what-are-daemonsets-in-kubernetes.md).
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you run and scale a stateful application on Kubernetes?]] (`#413`): [How do you run and scale a stateful application on Kubernetes?](../container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md)
+- [[What are CustomResourceDefinitions and operators in Kubernetes?]] (`#452`): [What are CustomResourceDefinitions and operators in Kubernetes?](../container-orchestration-advanced/what-are-customresourcedefinitions-and-operators-in-kubernetes.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/what-are-the-main-components-of-kubernetes-architecture.md b/kubernetes/what-are-the-main-components-of-kubernetes-architecture.md
index ed476ee..4c655cf 100644
--- a/kubernetes/what-are-the-main-components-of-kubernetes-architecture.md
+++ b/kubernetes/what-are-the-main-components-of-kubernetes-architecture.md
@@ -49,6 +49,16 @@ kubelet → reports status → apiserver → etcd
- Emphasise that only the API server touches etcd - it explains the security and backup story.
- Mention control-plane HA: three or five etcd members for quorum.
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you upgrade a production Kubernetes cluster with zero downtime?]] (`#411`): [How do you upgrade a production Kubernetes cluster with zero downtime?](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md)
+- [[How do you troubleshoot a failed Helm release?]] (`#412`): [How do you troubleshoot a failed Helm release?](../container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/what-happens-when-a-kubernetes-control-plane-node-or-etcd-fails.md b/kubernetes/what-happens-when-a-kubernetes-control-plane-node-or-etcd-fails.md
index 9589a60..335bb8a 100644
--- a/kubernetes/what-happens-when-a-kubernetes-control-plane-node-or-etcd-fails.md
+++ b/kubernetes/what-happens-when-a-kubernetes-control-plane-node-or-etcd-fails.md
@@ -116,6 +116,16 @@ Alerts that catch this before users do
- Have the worker-node counterpart ready: `NotReady` after ~40 s, eviction and rescheduling after the ~5 minute toleration, which explains recovery time.
- Close on preparation, not theory: three control-plane nodes across AZs, scheduled etcd snapshots stored off-cluster, a **rehearsed** restore, and certificate-expiry monitoring. See [how do you back up and restore a Kubernetes cluster](../container-orchestration-advanced/how-do-you-back-up-and-restore-a-kubernetes-cluster.md), [the main components of Kubernetes architecture](./what-are-the-main-components-of-kubernetes-architecture.md), [troubleshooting a node that is NotReady](./how-do-you-troubleshoot-a-kubernetes-node-that-is-notready.md), and [executing a disaster recovery failover](../backup-and-disaster-recovery/how-do-you-execute-a-disaster-recovery-failover-with-minimal-rto-and-rpo.md).
+
+
+## Related Concepts
+
+- [[How do you upgrade a production Kubernetes cluster with zero downtime?]] (`#411`): [How do you upgrade a production Kubernetes cluster with zero downtime?](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md)
+- [[How do you run and scale a stateful application on Kubernetes?]] (`#413`): [How do you run and scale a stateful application on Kubernetes?](../container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md)
+- [[How do you run an application across multiple Kubernetes clusters?]] (`#414`): [How do you run an application across multiple Kubernetes clusters?](../container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/what-is-a-pod-in-kubernetes.md b/kubernetes/what-is-a-pod-in-kubernetes.md
index a10f74c..8eb6567 100644
--- a/kubernetes/what-is-a-pod-in-kubernetes.md
+++ b/kubernetes/what-is-a-pod-in-kubernetes.md
@@ -58,6 +58,16 @@ spec:
- Be precise on readiness vs liveness; confusing them causes real outages (a failing liveness probe restart-loops a healthy-but-slow app).
- In practice you rarely create bare Pods - Deployments, StatefulSets, and Jobs create them for you.
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you upgrade a production Kubernetes cluster with zero downtime?]] (`#411`): [How do you upgrade a production Kubernetes cluster with zero downtime?](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md)
+- [[How do you troubleshoot a failed Helm release?]] (`#412`): [How do you troubleshoot a failed Helm release?](../container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/what-is-a-poddisruptionbudget-and-when-do-you-need-one.md b/kubernetes/what-is-a-poddisruptionbudget-and-when-do-you-need-one.md
index 40d9b51..8462164 100644
--- a/kubernetes/what-is-a-poddisruptionbudget-and-when-do-you-need-one.md
+++ b/kubernetes/what-is-a-poddisruptionbudget-and-when-do-you-need-one.md
@@ -132,6 +132,16 @@ kubectl drain ip-10-0-3-14 --ignore-daemonsets --delete-emptydir-data
- Mention `status.disruptionsAllowed` as the pre-upgrade check, and `unhealthyPodEvictionPolicy: AlwaysAllow` as the fix for drains blocked by already-broken Pods. Both are recent and specific.
- If they ask what to do when a drain is blocked: wait, temporarily scale up, or repair the unhealthy replica - never `--force`, which bypasses the budget you deliberately set. See [upgrading a production Kubernetes cluster with zero downtime](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md), [node pressure and Pod evictions](./how-do-you-handle-node-pressure-and-pod-evictions-in-kubernetes.md), and [rolling updates and rollback](./how-do-you-perform-and-roll-back-a-rolling-update-in-kubernetes.md).
+
+
+## Related Concepts
+
+- [[How do you upgrade a production Kubernetes cluster with zero downtime?]] (`#411`): [How do you upgrade a production Kubernetes cluster with zero downtime?](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md)
+- [[How do you run and scale a stateful application on Kubernetes?]] (`#413`): [How do you run and scale a stateful application on Kubernetes?](../container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md)
+- [[How do you run an application across multiple Kubernetes clusters?]] (`#414`): [How do you run an application across multiple Kubernetes clusters?](../container-orchestration-advanced/how-do-you-run-an-application-across-multiple-kubernetes-clusters.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/what-is-a-service-in-kubernetes.md b/kubernetes/what-is-a-service-in-kubernetes.md
index c96b9c0..4aaa2a6 100644
--- a/kubernetes/what-is-a-service-in-kubernetes.md
+++ b/kubernetes/what-is-a-service-in-kubernetes.md
@@ -50,6 +50,16 @@ In-cluster DNS: `web.default.svc.cluster.local`, usually just `web` from the sam
- Know why one LoadBalancer per service gets expensive, and how Ingress solves it - then say that Gateway API is the successor and Ingress is frozen.
- Headless Services plus StatefulSets is a common follow-up for databases.
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you troubleshoot a failed Helm release?]] (`#412`): [How do you troubleshoot a failed Helm release?](../container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md)
+- [[How do you run and scale a stateful application on Kubernetes?]] (`#413`): [How do you run and scale a stateful application on Kubernetes?](../container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/what-is-kubernetes.md b/kubernetes/what-is-kubernetes.md
index 991b684..339d34b 100644
--- a/kubernetes/what-is-kubernetes.md
+++ b/kubernetes/what-is-kubernetes.md
@@ -61,6 +61,16 @@ spec:
- Be ready for "when would you _not_ use Kubernetes?" A single small service is better served by a managed platform.
- Know that Kubernetes gives you primitives, not a platform; teams still build the developer experience on top.
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you upgrade a production Kubernetes cluster with zero downtime?]] (`#411`): [How do you upgrade a production Kubernetes cluster with zero downtime?](../container-orchestration-advanced/how-do-you-upgrade-a-production-kubernetes-cluster-with-zero-downtime.md)
+- [[How do you troubleshoot a failed Helm release?]] (`#412`): [How do you troubleshoot a failed Helm release?](../container-orchestration-advanced/how-do-you-troubleshoot-a-failed-helm-release.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md b/kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md
index 679203f..09915b5 100644
--- a/kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md
+++ b/kubernetes/what-is-the-difference-between-a-configmap-and-a-secret-in-kubernetes.md
@@ -143,6 +143,16 @@ spec:
- Mention `immutable: true` as both a safety and a scale control; it reduces API server watch traffic in large clusters.
- If GitOps comes up, say Secrets never go into Git in plaintext - SOPS, Sealed Secrets, or the External Secrets Operator. See [how do you manage Kubernetes secrets in a GitOps workflow](../devsecops/how-do-you-manage-kubernetes-secrets-in-a-gitops-workflow.md), [how do you manage secrets in CI/CD pipelines](../devsecops/how-do-you-manage-secrets-in-ci-cd-pipelines.md), [how do you rotate secrets without downtime](../devsecops/how-do-you-rotate-secrets-without-downtime.md), and [how does RBAC work in Kubernetes](./how-does-rbac-work-in-kubernetes.md).
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you harden a container image and a Dockerfile?]] (`#441`): [How do you harden a container image and a Dockerfile?](../docker/how-do-you-harden-a-container-image-and-a-dockerfile.md)
+- [[How do you run and scale a stateful application on Kubernetes?]] (`#413`): [How do you run and scale a stateful application on Kubernetes?](../container-orchestration-advanced/how-do-you-run-and-scale-a-stateful-application-on-kubernetes.md)
+
+
+
---
[⬅ Back to Kubernetes](./README.md) · [All topics](../README.md)
diff --git a/linux-administration/how-do-you-analyse-logs-and-text-files-with-grep-awk-and-sed.md b/linux-administration/how-do-you-analyse-logs-and-text-files-with-grep-awk-and-sed.md
index 69e6e93..80808d4 100644
--- a/linux-administration/how-do-you-analyse-logs-and-text-files-with-grep-awk-and-sed.md
+++ b/linux-administration/how-do-you-analyse-logs-and-text-files-with-grep-awk-and-sed.md
@@ -104,6 +104,16 @@ kubectl logs deploy/api --since=15m | jq -r 'select(.level=="error") | .msg' | s
- Mention `jq` for structured logs. Reaching for `awk` on JSON when `jq` exists reads as dated.
- Know that `sed -i` differs between GNU and BSD/macOS. It is a small detail that signals real command-line time.
+
+
+## Related Concepts
+
+- [[What Bash scripting exercises come up in DevOps interviews?]] (`#502`): [What Bash scripting exercises come up in DevOps interviews?](../scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md)
+- [[How do you patch hundreds of servers safely?]] (`#430`): [How do you patch hundreds of servers safely?](../configuration-management/how-do-you-patch-hundreds-of-servers-safely.md)
+- [[How do you write a production-grade Bash script?]] (`#266`): [How do you write a production-grade Bash script?](../scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md)
+
+
+
---
[⬅ Back to Linux Administration](./README.md) · [All topics](../README.md)
diff --git a/linux-administration/how-do-you-debug-a-linux-performance-problem-from-first-principles.md b/linux-administration/how-do-you-debug-a-linux-performance-problem-from-first-principles.md
index c3caf7e..d361ca6 100644
--- a/linux-administration/how-do-you-debug-a-linux-performance-problem-from-first-principles.md
+++ b/linux-administration/how-do-you-debug-a-linux-performance-problem-from-first-principles.md
@@ -104,6 +104,16 @@ sar -q -s 09:00:00 -e 10:00:00 # run queue during last week's incid
- Include the container angle - cgroup `memory.max` and `memory.events` - because most production Linux debugging now happens inside one.
- Insist on a baseline and on changing one variable at a time. Then tell a real story where the cause was boring: a full disk, a cron job, or a retry loop.
+
+
+## Related Concepts
+
+- [[How do you patch hundreds of servers safely?]] (`#430`): [How do you patch hundreds of servers safely?](../configuration-management/how-do-you-patch-hundreds-of-servers-safely.md)
+- [[What Bash scripting exercises come up in DevOps interviews?]] (`#502`): [What Bash scripting exercises come up in DevOps interviews?](../scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md)
+- [[How do you write a production-grade Bash script?]] (`#266`): [How do you write a production-grade Bash script?](../scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md)
+
+
+
---
[⬅ Back to Linux Administration](./README.md) · [All topics](../README.md)
diff --git a/linux-administration/how-do-you-inspect-and-manage-linux-processes-signals-and-resource-limits.md b/linux-administration/how-do-you-inspect-and-manage-linux-processes-signals-and-resource-limits.md
index fbc7e01..57def2d 100644
--- a/linux-administration/how-do-you-inspect-and-manage-linux-processes-signals-and-resource-limits.md
+++ b/linux-administration/how-do-you-inspect-and-manage-linux-processes-signals-and-resource-limits.md
@@ -163,6 +163,16 @@ cat /proc/4412/oom_score /proc/4412/oom_score_adj
- Use `nice`/`ionice` to make backups yield, and say it is a courtesy, not isolation - cgroups are how you enforce.
- If asked to inspect processes without `ps` or `top`, answer `/proc` and explain that `ps` is just a reader of it. See [how do you debug a Linux performance problem from first principles](./how-do-you-debug-a-linux-performance-problem-from-first-principles.md), [troubleshooting SSH failures, high CPU, and disk space](./how-do-you-troubleshoot-ssh-failures-high-cpu-and-disk-space-on-linux-servers.md), [how do namespaces, cgroups, and capabilities isolate a container](../docker/how-do-namespaces-cgroups-and-capabilities-isolate-a-container.md), and [requests, limits, and QoS classes in Kubernetes](../kubernetes/how-do-requests-limits-and-qos-classes-work-in-kubernetes.md).
+
+
+## Related Concepts
+
+- [[How do you patch hundreds of servers safely?]] (`#430`): [How do you patch hundreds of servers safely?](../configuration-management/how-do-you-patch-hundreds-of-servers-safely.md)
+- [[What Bash scripting exercises come up in DevOps interviews?]] (`#502`): [What Bash scripting exercises come up in DevOps interviews?](../scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md)
+- [[How do you write a production-grade Bash script?]] (`#266`): [How do you write a production-grade Bash script?](../scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md)
+
+
+
---
[⬅ Back to Linux Administration](./README.md) · [All topics](../README.md)
diff --git a/linux-administration/how-do-you-manage-disks-filesystems-and-lvm-on-linux.md b/linux-administration/how-do-you-manage-disks-filesystems-and-lvm-on-linux.md
index 4f6cf1f..6941f62 100644
--- a/linux-administration/how-do-you-manage-disks-filesystems-and-lvm-on-linux.md
+++ b/linux-administration/how-do-you-manage-disks-filesystems-and-lvm-on-linux.md
@@ -145,6 +145,16 @@ umount /data && xfs_repair /dev/vg0/data # only on an UNMOUNTED device
- Always mount by **UUID** with **`nofail`** and a device timeout, and say `mount -a` before rebooting. It is the same habit that prevents the most common boot failure.
- For splitting workloads, choose separate cloud volumes in the cloud and LVM on bare metal, and mention XFS project quotas as the lighter alternative. See [what is Linux File System Hierarchy](./what-is-linux-file-system-hierarchy.md), [walk through the Linux boot process](./walk-through-the-linux-boot-process.md), [troubleshooting SSH failures, high CPU, and disk space](./how-do-you-troubleshoot-ssh-failures-high-cpu-and-disk-space-on-linux-servers.md), and [choosing between EBS, EFS, and S3](../aws-engineering/how-do-you-choose-between-ebs-efs-and-s3.md).
+
+
+## Related Concepts
+
+- [[What Bash scripting exercises come up in DevOps interviews?]] (`#502`): [What Bash scripting exercises come up in DevOps interviews?](../scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md)
+- [[How do you patch hundreds of servers safely?]] (`#430`): [How do you patch hundreds of servers safely?](../configuration-management/how-do-you-patch-hundreds-of-servers-safely.md)
+- [[How do you turn a pile of ad hoc scripts into maintainable automation?]] (`#302`): [How do you turn a pile of ad hoc scripts into maintainable automation?](../scripting-and-automation/how-do-you-turn-a-pile-of-ad-hoc-scripts-into-maintainable-automation.md)
+
+
+
---
[⬅ Back to Linux Administration](./README.md) · [All topics](../README.md)
diff --git a/linux-administration/how-do-you-manage-services-in-linux.md b/linux-administration/how-do-you-manage-services-in-linux.md
index e69e978..35af733 100644
--- a/linux-administration/how-do-you-manage-services-in-linux.md
+++ b/linux-administration/how-do-you-manage-services-in-linux.md
@@ -60,6 +60,16 @@ Older systems use SysV init (`service nginx start`, `chkconfig`), and containers
- Drop-in overrides (`systemctl edit`) are the correct way to customise packaged units.
- Mention `mask` - the answer when a service keeps coming back because something depends on it.
+
+
+## Related Concepts
+
+- [[What Bash scripting exercises come up in DevOps interviews?]] (`#502`): [What Bash scripting exercises come up in DevOps interviews?](../scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md)
+- [[How do you patch hundreds of servers safely?]] (`#430`): [How do you patch hundreds of servers safely?](../configuration-management/how-do-you-patch-hundreds-of-servers-safely.md)
+- [[How do you write a production-grade Bash script?]] (`#266`): [How do you write a production-grade Bash script?](../scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md)
+
+
+
---
[⬅ Back to Linux Administration](./README.md) · [All topics](../README.md)
diff --git a/linux-administration/how-do-you-schedule-work-with-cron-and-systemd-timers.md b/linux-administration/how-do-you-schedule-work-with-cron-and-systemd-timers.md
index b570d6b..3a8d6ca 100644
--- a/linux-administration/how-do-you-schedule-work-with-cron-and-systemd-timers.md
+++ b/linux-administration/how-do-you-schedule-work-with-cron-and-systemd-timers.md
@@ -187,6 +187,16 @@ crontab -l -u backup # per-user crontabs are ea
- Note the drop-in directory gotcha - scripts in `/etc/cron.daily` must be executable and have **no extension** - and that `/etc/cron.d` files need a user field while a user crontab does not.
- Close with the modern equivalents: a Kubernetes `CronJob` with `concurrencyPolicy: Forbid`, or EventBridge Scheduler invoking Lambda/ECS so there is no cron host to lose. See [what is systemd](./what-is-systemd.md), [how do you manage services in Linux](./how-do-you-manage-services-in-linux.md), [writing a production-grade Bash script](../scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md), and [troubleshooting a Kubernetes Job or CronJob that never completes](../kubernetes/how-do-you-troubleshoot-a-kubernetes-job-or-cronjob-that-never-completes.md).
+
+
+## Related Concepts
+
+- [[What Bash scripting exercises come up in DevOps interviews?]] (`#502`): [What Bash scripting exercises come up in DevOps interviews?](../scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md)
+- [[How do you patch hundreds of servers safely?]] (`#430`): [How do you patch hundreds of servers safely?](../configuration-management/how-do-you-patch-hundreds-of-servers-safely.md)
+- [[What do you use Python for as a DevOps engineer?]] (`#267`): [What do you use Python for as a DevOps engineer?](../scripting-and-automation/what-do-you-use-python-for-as-a-devops-engineer.md)
+
+
+
---
[⬅ Back to Linux Administration](./README.md) · [All topics](../README.md)
diff --git a/linux-administration/how-do-you-troubleshoot-ssh-failures-high-cpu-and-disk-space-on-linux-servers.md b/linux-administration/how-do-you-troubleshoot-ssh-failures-high-cpu-and-disk-space-on-linux-servers.md
index 73572cb..b00b13a 100644
--- a/linux-administration/how-do-you-troubleshoot-ssh-failures-high-cpu-and-disk-space-on-linux-servers.md
+++ b/linux-administration/how-do-you-troubleshoot-ssh-failures-high-cpu-and-disk-space-on-linux-servers.md
@@ -79,6 +79,16 @@ fi
- Explain the `lsof | grep deleted` scenario: interviewers love asking why `df -h` shows 100% full even after `rm -rf /var/log/huge.log`.
- Know `systemctl` commands (`systemctl status`, `journalctl -u sshd -n 50 --no-pager`) for service log inspection.
+
+
+## Related Concepts
+
+- [[What Bash scripting exercises come up in DevOps interviews?]] (`#502`): [What Bash scripting exercises come up in DevOps interviews?](../scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md)
+- [[How do you patch hundreds of servers safely?]] (`#430`): [How do you patch hundreds of servers safely?](../configuration-management/how-do-you-patch-hundreds-of-servers-safely.md)
+- [[What do you use Python for as a DevOps engineer?]] (`#267`): [What do you use Python for as a DevOps engineer?](../scripting-and-automation/what-do-you-use-python-for-as-a-devops-engineer.md)
+
+
+
---
[⬅ Back to Linux Administration](./README.md) · [All topics](../README.md)
diff --git a/linux-administration/walk-through-the-linux-boot-process.md b/linux-administration/walk-through-the-linux-boot-process.md
index b05c888..800c34e 100644
--- a/linux-administration/walk-through-the-linux-boot-process.md
+++ b/linux-administration/walk-through-the-linux-boot-process.md
@@ -143,6 +143,16 @@ curl -s -H "X-aws-ec2-metadata-token: $(curl -sX PUT \
- Add **cloud-init** as the stage that matters on a cloud instance, with `/var/log/cloud-init-output.log` as the evidence. It turns a sysadmin answer into a DevOps one.
- Close on boot time: `systemd-analyze blame`, avoiding unnecessary `network-online.target` waits, and baking the image so instances boot ready - which links to autoscaling and health-check grace periods. See [what is systemd](./what-is-systemd.md), [how do you manage services in Linux](./how-do-you-manage-services-in-linux.md), [how do you manage disks, filesystems, and LVM on Linux](./how-do-you-manage-disks-filesystems-and-lvm-on-linux.md), and [troubleshooting SSH failures, high CPU, and disk space](./how-do-you-troubleshoot-ssh-failures-high-cpu-and-disk-space-on-linux-servers.md).
+
+
+## Related Concepts
+
+- [[How do you patch hundreds of servers safely?]] (`#430`): [How do you patch hundreds of servers safely?](../configuration-management/how-do-you-patch-hundreds-of-servers-safely.md)
+- [[What Bash scripting exercises come up in DevOps interviews?]] (`#502`): [What Bash scripting exercises come up in DevOps interviews?](../scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md)
+- [[How do you turn a pile of ad hoc scripts into maintainable automation?]] (`#302`): [How do you turn a pile of ad hoc scripts into maintainable automation?](../scripting-and-automation/how-do-you-turn-a-pile-of-ad-hoc-scripts-into-maintainable-automation.md)
+
+
+
---
[⬅ Back to Linux Administration](./README.md) · [All topics](../README.md)
diff --git a/linux-administration/what-are-the-basic-linux-commands-every-devops-engineer-should-know.md b/linux-administration/what-are-the-basic-linux-commands-every-devops-engineer-should-know.md
index a285ff3..6758b2e 100644
--- a/linux-administration/what-are-the-basic-linux-commands-every-devops-engineer-should-know.md
+++ b/linux-administration/what-are-the-basic-linux-commands-every-devops-engineer-should-know.md
@@ -61,6 +61,16 @@ chmod 640 /etc/app/secret.conf && chown app:app /etc/app/secret.conf
- Knowing `ss` rather than the deprecated `netstat`, and `journalctl` rather than tailing `/var/log/messages`, signals current experience.
- Mention `set -euo pipefail` when the conversation turns to scripting.
+
+
+## Related Concepts
+
+- [[What Bash scripting exercises come up in DevOps interviews?]] (`#502`): [What Bash scripting exercises come up in DevOps interviews?](../scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md)
+- [[How do you patch hundreds of servers safely?]] (`#430`): [How do you patch hundreds of servers safely?](../configuration-management/how-do-you-patch-hundreds-of-servers-safely.md)
+- [[How do you write a production-grade Bash script?]] (`#266`): [How do you write a production-grade Bash script?](../scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md)
+
+
+
---
[⬅ Back to Linux Administration](./README.md) · [All topics](../README.md)
diff --git a/linux-administration/what-is-linux-file-system-hierarchy.md b/linux-administration/what-is-linux-file-system-hierarchy.md
index ce2fa41..014a36d 100644
--- a/linux-administration/what-is-linux-file-system-hierarchy.md
+++ b/linux-administration/what-is-linux-file-system-hierarchy.md
@@ -52,6 +52,16 @@ findmnt -t ext4,xfs # what is mounted where
- `/proc` questions are common in troubleshooting rounds - be able to name three useful files.
- Mention that `/etc` holding only configuration is what makes a host's state easy to back up and review.
+
+
+## Related Concepts
+
+- [[How do you patch hundreds of servers safely?]] (`#430`): [How do you patch hundreds of servers safely?](../configuration-management/how-do-you-patch-hundreds-of-servers-safely.md)
+- [[What Bash scripting exercises come up in DevOps interviews?]] (`#502`): [What Bash scripting exercises come up in DevOps interviews?](../scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md)
+- [[How do you write a production-grade Bash script?]] (`#266`): [How do you write a production-grade Bash script?](../scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md)
+
+
+
---
[⬅ Back to Linux Administration](./README.md) · [All topics](../README.md)
diff --git a/linux-administration/what-is-shell-scripting.md b/linux-administration/what-is-shell-scripting.md
index d4d41b7..46e418e 100644
--- a/linux-administration/what-is-shell-scripting.md
+++ b/linux-administration/what-is-shell-scripting.md
@@ -68,6 +68,16 @@ main "$@"
- Writing to a temp file then `mv` (an atomic rename) avoids half-written artifacts - a nice detail.
- Have a clear threshold for when you would rewrite the script in a real language.
+
+
+## Related Concepts
+
+- [[What Bash scripting exercises come up in DevOps interviews?]] (`#502`): [What Bash scripting exercises come up in DevOps interviews?](../scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md)
+- [[How do you patch hundreds of servers safely?]] (`#430`): [How do you patch hundreds of servers safely?](../configuration-management/how-do-you-patch-hundreds-of-servers-safely.md)
+- [[How do you write a production-grade Bash script?]] (`#266`): [How do you write a production-grade Bash script?](../scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md)
+
+
+
---
[⬅ Back to Linux Administration](./README.md) · [All topics](../README.md)
diff --git a/linux-administration/what-is-systemd.md b/linux-administration/what-is-systemd.md
index 2201973..a7f8386 100644
--- a/linux-administration/what-is-systemd.md
+++ b/linux-administration/what-is-systemd.md
@@ -69,6 +69,16 @@ journalctl -u myapp -f
- Timers versus cron: timers give you logging, dependencies, and randomised delays - a better answer for scheduled work on a modern host.
- The sandboxing directives are a strong security answer for hardening legacy daemons.
+
+
+## Related Concepts
+
+- [[What Bash scripting exercises come up in DevOps interviews?]] (`#502`): [What Bash scripting exercises come up in DevOps interviews?](../scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md)
+- [[How do you patch hundreds of servers safely?]] (`#430`): [How do you patch hundreds of servers safely?](../configuration-management/how-do-you-patch-hundreds-of-servers-safely.md)
+- [[How do you write a production-grade Bash script?]] (`#266`): [How do you write a production-grade Bash script?](../scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md)
+
+
+
---
[⬅ Back to Linux Administration](./README.md) · [All topics](../README.md)
diff --git a/linux-administration/what-is-the-difference-between-a-hard-link-and-a-soft-link.md b/linux-administration/what-is-the-difference-between-a-hard-link-and-a-soft-link.md
index b19adb2..6b75f03 100644
--- a/linux-administration/what-is-the-difference-between-a-hard-link-and-a-soft-link.md
+++ b/linux-administration/what-is-the-difference-between-a-hard-link-and-a-soft-link.md
@@ -126,6 +126,16 @@ namei -l /opt/app/current/VERSION # every component's type and permissions
- Mention `cp -a` versus `cp -r` for preserving links, and `find -xtype l` for dangling symlinks. Small, practical, and they signal you have cleaned up a real filesystem.
- If Kubernetes comes up, note that mounted ConfigMaps and Secrets are directories of symlinks into a versioned directory, which is how atomic updates work - and why `subPath` mounts never refresh. That connects a Linux fundamental to a container problem, which is exactly the kind of link interviewers reward. See [what is Linux File System Hierarchy](./what-is-linux-file-system-hierarchy.md), [basic Linux commands every DevOps engineer should know](./what-are-the-basic-linux-commands-every-devops-engineer-should-know.md), and [how do you manage disks, filesystems, and LVM on Linux](./how-do-you-manage-disks-filesystems-and-lvm-on-linux.md).
+
+
+## Related Concepts
+
+- [[What Bash scripting exercises come up in DevOps interviews?]] (`#502`): [What Bash scripting exercises come up in DevOps interviews?](../scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md)
+- [[How to handle merge conflicts in Git?]] (`#50`): [How to handle merge conflicts in Git?](../version-control/how-to-handle-merge-conflicts-in-git.md)
+- [[What is the difference between git merge, rebase, and cherry-pick?]] (`#263`): [What is the difference between git merge, rebase, and cherry-pick?](../version-control/what-is-the-difference-between-git-merge-rebase-and-cherry-pick.md)
+
+
+
---
[⬅ Back to Linux Administration](./README.md) · [All topics](../README.md)
diff --git a/monitoring-and-logging/explain-the-difference-between-monitoring-and-logging.md b/monitoring-and-logging/explain-the-difference-between-monitoring-and-logging.md
index 33884ad..c0a5e05 100644
--- a/monitoring-and-logging/explain-the-difference-between-monitoring-and-logging.md
+++ b/monitoring-and-logging/explain-the-difference-between-monitoring-and-logging.md
@@ -37,6 +37,16 @@ The connective tissue is correlation IDs - a trace ID propagated through headers
- Structured JSON logging with a trace ID is the single highest-value logging practice - say it.
- Cost is a legitimate engineering concern: sample verbose logs, keep metrics for trends, keep logs short-lived.
+
+
+## Related Concepts
+
+- [[How do you add monitoring to an application that has none?]] (`#433`): [How do you add monitoring to an application that has none?](../infrastructure-monitoring/how-do-you-add-monitoring-to-an-application-that-has-none.md)
+- [[What is Infrastructure Monitoring?]] (`#131`): [What is Infrastructure Monitoring?](../infrastructure-monitoring/what-is-infrastructure-monitoring.md)
+- [[What are Monitoring Tools?]] (`#132`): [What are Monitoring Tools?](../infrastructure-monitoring/what-are-monitoring-tools.md)
+
+
+
---
[⬅ Back to Monitoring and Logging](./README.md) · [All topics](../README.md)
diff --git a/monitoring-and-logging/how-do-the-elk-and-efk-stacks-fit-together.md b/monitoring-and-logging/how-do-the-elk-and-efk-stacks-fit-together.md
index a0618d7..d29165b 100644
--- a/monitoring-and-logging/how-do-the-elk-and-efk-stacks-fit-together.md
+++ b/monitoring-and-logging/how-do-the-elk-and-efk-stacks-fit-together.md
@@ -212,6 +212,16 @@ curl -s 'http://es:9200/_cat/indices/.kibana*?v' # Kibana's own ob
- For the 100-microservices-three-regions design, cover regional aggregation for residency and egress cost, a shared schema, and a **correlation/trace ID** as the thing that makes cross-service debugging possible at all.
- Mention Loki and the OpenTelemetry Collector as the modern alternatives, and be able to say when a label-indexed store beats a full inverted index on cost. See [what is ELK stack](./what-is-elk-stack.md), [designing a logging pipeline that stays affordable at scale](./how-do-you-design-a-logging-pipeline-that-stays-affordable-at-scale.md), [what is log management](../infrastructure-monitoring/what-is-log-management.md), and [adding monitoring to an application that has none](../infrastructure-monitoring/how-do-you-add-monitoring-to-an-application-that-has-none.md).
+
+
+## Related Concepts
+
+- [[How do you add monitoring to an application that has none?]] (`#433`): [How do you add monitoring to an application that has none?](../infrastructure-monitoring/how-do-you-add-monitoring-to-an-application-that-has-none.md)
+- [[What is Infrastructure Monitoring?]] (`#131`): [What is Infrastructure Monitoring?](../infrastructure-monitoring/what-is-infrastructure-monitoring.md)
+- [[What is Log Management?]] (`#135`): [What is Log Management?](../infrastructure-monitoring/what-is-log-management.md)
+
+
+
---
[⬅ Back to Monitoring and Logging](./README.md) · [All topics](../README.md)
diff --git a/monitoring-and-logging/how-do-you-design-a-logging-pipeline-that-stays-affordable-at-scale.md b/monitoring-and-logging/how-do-you-design-a-logging-pipeline-that-stays-affordable-at-scale.md
index a4ec471..a062e63 100644
--- a/monitoring-and-logging/how-do-you-design-a-logging-pipeline-that-stays-affordable-at-scale.md
+++ b/monitoring-and-logging/how-do-you-design-a-logging-pipeline-that-stays-affordable-at-scale.md
@@ -153,6 +153,16 @@ processors:
- Explain Loki's label-only indexing versus a full inverted index. It shows you understand _why_ one is cheaper, not just which is cheaper.
- Mention buffering, back pressure, and the deliberate drop policy. "What happens when the backend is down" is a standard follow-up.
+
+
+## Related Concepts
+
+- [[How do you add monitoring to an application that has none?]] (`#433`): [How do you add monitoring to an application that has none?](../infrastructure-monitoring/how-do-you-add-monitoring-to-an-application-that-has-none.md)
+- [[What is Log Management?]] (`#135`): [What is Log Management?](../infrastructure-monitoring/what-is-log-management.md)
+- [[How do you control metric cardinality and monitoring cost at scale?]] (`#293`): [How do you control metric cardinality and monitoring cost at scale?](../infrastructure-monitoring/how-do-you-control-metric-cardinality-and-monitoring-cost-at-scale.md)
+
+
+
---
[⬅ Back to Monitoring and Logging](./README.md) · [All topics](../README.md)
diff --git a/monitoring-and-logging/how-do-you-write-effective-promql-queries-and-alertmanager-rules.md b/monitoring-and-logging/how-do-you-write-effective-promql-queries-and-alertmanager-rules.md
index 7c01f16..152a862 100644
--- a/monitoring-and-logging/how-do-you-write-effective-promql-queries-and-alertmanager-rules.md
+++ b/monitoring-and-logging/how-do-you-write-effective-promql-queries-and-alertmanager-rules.md
@@ -112,6 +112,16 @@ receivers:
- Explain **Histogram Quantile calculation**: explain that histograms store cumulative bucket counts (`le`), enabling accurate percentile calculation across aggregated multi-instance pods.
- Mention **Inhibition rules** in Alertmanager: they prevent alert storms during major outages, keeping on-call engineers focused on root causes rather than secondary symptoms.
+
+
+## Related Concepts
+
+- [[How do you add monitoring to an application that has none?]] (`#433`): [How do you add monitoring to an application that has none?](../infrastructure-monitoring/how-do-you-add-monitoring-to-an-application-that-has-none.md)
+- [[What are Monitoring Tools?]] (`#132`): [What are Monitoring Tools?](../infrastructure-monitoring/what-are-monitoring-tools.md)
+- [[What are Monitoring Best Practices?]] (`#133`): [What are Monitoring Best Practices?](../infrastructure-monitoring/what-are-monitoring-best-practices.md)
+
+
+
---
[⬅ Back to Monitoring and Logging](./README.md) · [All topics](../README.md)
diff --git a/monitoring-and-logging/how-does-prometheus-collect-metrics-and-what-components-sit-around-it.md b/monitoring-and-logging/how-does-prometheus-collect-metrics-and-what-components-sit-around-it.md
index c19f41b..6ac6d04 100644
--- a/monitoring-and-logging/how-does-prometheus-collect-metrics-and-what-components-sit-around-it.md
+++ b/monitoring-and-logging/how-does-prometheus-collect-metrics-and-what-components-sit-around-it.md
@@ -188,6 +188,16 @@ curl -s http://alertmanager:9093/api/v2/silences | jq '.[] | {matchers, endsAt,
- Describe Alertmanager's grouping and inhibition with a concrete example (one notification for 100 pods, cluster-down inhibiting service alerts), and include a **dead-man's-switch** so you can detect a monitoring outage.
- For "how do you set it up?", say kube-prometheus-stack plus `ServiceMonitor`s and `PrometheusRule`s as code, rather than describing a manual install. That answers the question and shows you think in platforms. See [what is Prometheus](./what-is-prometheus.md), [writing effective PromQL queries and Alertmanager rules](./how-do-you-write-effective-promql-queries-and-alertmanager-rules.md), [designing alerts that page a human](../site-reliability-engineering/how-do-you-design-alerts-that-page-a-human.md), and [controlling metric cardinality and monitoring cost at scale](../infrastructure-monitoring/how-do-you-control-metric-cardinality-and-monitoring-cost-at-scale.md).
+
+
+## Related Concepts
+
+- [[How do you add monitoring to an application that has none?]] (`#433`): [How do you add monitoring to an application that has none?](../infrastructure-monitoring/how-do-you-add-monitoring-to-an-application-that-has-none.md)
+- [[What is Infrastructure Monitoring?]] (`#131`): [What is Infrastructure Monitoring?](../infrastructure-monitoring/what-is-infrastructure-monitoring.md)
+- [[What are Monitoring Tools?]] (`#132`): [What are Monitoring Tools?](../infrastructure-monitoring/what-are-monitoring-tools.md)
+
+
+
---
[⬅ Back to Monitoring and Logging](./README.md) · [All topics](../README.md)
diff --git a/monitoring-and-logging/what-is-elk-stack.md b/monitoring-and-logging/what-is-elk-stack.md
index bb61603..a3e083a 100644
--- a/monitoring-and-logging/what-is-elk-stack.md
+++ b/monitoring-and-logging/what-is-elk-stack.md
@@ -53,6 +53,16 @@ output {
- Index lifecycle management and retention are the cost answers; log volume grows faster than anyone plans for.
- Structured JSON logging at source beats grok parsing downstream - say that if asked how to improve a log pipeline.
+
+
+## Related Concepts
+
+- [[How do you add monitoring to an application that has none?]] (`#433`): [How do you add monitoring to an application that has none?](../infrastructure-monitoring/how-do-you-add-monitoring-to-an-application-that-has-none.md)
+- [[What are Monitoring Tools?]] (`#132`): [What are Monitoring Tools?](../infrastructure-monitoring/what-are-monitoring-tools.md)
+- [[What are Monitoring Best Practices?]] (`#133`): [What are Monitoring Best Practices?](../infrastructure-monitoring/what-are-monitoring-best-practices.md)
+
+
+
---
[⬅ Back to Monitoring and Logging](./README.md) · [All topics](../README.md)
diff --git a/monitoring-and-logging/what-is-grafana.md b/monitoring-and-logging/what-is-grafana.md
index 638b701..4137423 100644
--- a/monitoring-and-logging/what-is-grafana.md
+++ b/monitoring-and-logging/what-is-grafana.md
@@ -33,6 +33,16 @@ The wider Grafana stack pairs it with **Loki** (logs), **Tempo** (traces), **Mim
- A good dashboard design principle: top row answers "is it healthy?" in five seconds; detail lives below.
- Deploy annotations are a cheap, high-value practice worth mentioning.
+
+
+## Related Concepts
+
+- [[How do you add monitoring to an application that has none?]] (`#433`): [How do you add monitoring to an application that has none?](../infrastructure-monitoring/how-do-you-add-monitoring-to-an-application-that-has-none.md)
+- [[What are Monitoring Tools?]] (`#132`): [What are Monitoring Tools?](../infrastructure-monitoring/what-are-monitoring-tools.md)
+- [[What are Monitoring Best Practices?]] (`#133`): [What are Monitoring Best Practices?](../infrastructure-monitoring/what-are-monitoring-best-practices.md)
+
+
+
---
[⬅ Back to Monitoring and Logging](./README.md) · [All topics](../README.md)
diff --git a/monitoring-and-logging/what-is-monitoring-in-devops.md b/monitoring-and-logging/what-is-monitoring-in-devops.md
index fce2890..6d0a85a 100644
--- a/monitoring-and-logging/what-is-monitoring-in-devops.md
+++ b/monitoring-and-logging/what-is-monitoring-in-devops.md
@@ -53,6 +53,16 @@ groups:
- "Alert on symptoms, diagnose with causes" is a phrase that lands well.
- Be ready to discuss alert fatigue and how you reduced it.
+
+
+## Related Concepts
+
+- [[How do you add monitoring to an application that has none?]] (`#433`): [How do you add monitoring to an application that has none?](../infrastructure-monitoring/how-do-you-add-monitoring-to-an-application-that-has-none.md)
+- [[What is Infrastructure Monitoring?]] (`#131`): [What is Infrastructure Monitoring?](../infrastructure-monitoring/what-is-infrastructure-monitoring.md)
+- [[What are Monitoring Tools?]] (`#132`): [What are Monitoring Tools?](../infrastructure-monitoring/what-are-monitoring-tools.md)
+
+
+
---
[⬅ Back to Monitoring and Logging](./README.md) · [All topics](../README.md)
diff --git a/monitoring-and-logging/what-is-prometheus.md b/monitoring-and-logging/what-is-prometheus.md
index cc4aee2..f06caaf 100644
--- a/monitoring-and-logging/what-is-prometheus.md
+++ b/monitoring-and-logging/what-is-prometheus.md
@@ -44,6 +44,16 @@ sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total
- Cardinality is the top operational pitfall - mention it before you are asked.
- Prometheus is not durable long-term storage by itself; name Thanos/Mimir/Cortex for that.
+
+
+## Related Concepts
+
+- [[How do you add monitoring to an application that has none?]] (`#433`): [How do you add monitoring to an application that has none?](../infrastructure-monitoring/how-do-you-add-monitoring-to-an-application-that-has-none.md)
+- [[What is Infrastructure Monitoring?]] (`#131`): [What is Infrastructure Monitoring?](../infrastructure-monitoring/what-is-infrastructure-monitoring.md)
+- [[What are Monitoring Tools?]] (`#132`): [What are Monitoring Tools?](../infrastructure-monitoring/what-are-monitoring-tools.md)
+
+
+
---
[⬅ Back to Monitoring and Logging](./README.md) · [All topics](../README.md)
diff --git a/network-security/how-do-you-design-defence-in-depth-for-a-cloud-network.md b/network-security/how-do-you-design-defence-in-depth-for-a-cloud-network.md
index debba32..f14705e 100644
--- a/network-security/how-do-you-design-defence-in-depth-for-a-cloud-network.md
+++ b/network-security/how-do-you-design-defence-in-depth-for-a-cloud-network.md
@@ -134,6 +134,16 @@ aws ec2 describe-instances \
- Include detection and the containment runbook: quarantine security group, snapshot for forensics, revoke role sessions. Preserving evidence is a senior detail.
- Finish on drift: policy-as-code, SCPs, and an exposure scan. "The control was on the diagram, not in the account" is the sentence that lands.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Network Security](./README.md) · [All topics](../README.md)
diff --git a/network-security/how-do-you-manage-tls-certificates-in-production.md b/network-security/how-do-you-manage-tls-certificates-in-production.md
index 384d6d6..ee8bd1d 100644
--- a/network-security/how-do-you-manage-tls-certificates-in-production.md
+++ b/network-security/how-do-you-manage-tls-certificates-in-production.md
@@ -184,6 +184,16 @@ The alert that prevents the incident - from an EXTERNAL probe, not from the CA's
- For internal traffic, say a public CA cannot issue for cluster-internal names, so use a private CA or a service mesh with short-lived automatically-rotated workload certificates - and name the mesh trade-off honestly.
- Add the hygiene items that show breadth: CAA records, keys never in Git, an inventory generated from the estate, an explicitly pinned TLS policy at 1.2 minimum, and automating the `.csr`/`.cer`/`.pfx` workflow out of existence. See [what is SSL/TLS](./what-is-ssl-tls.md), [what happens when a user opens your application in a browser](./what-happens-when-a-user-opens-your-application-in-a-browser.md), [choosing between Azure Load Balancer, Application Gateway, and Front Door](../azure-engineering/how-do-you-choose-between-azure-load-balancer-application-gateway-and-front-door.md), and [rotating secrets without downtime](../devsecops/how-do-you-rotate-secrets-without-downtime.md).
+
+
+## Related Concepts
+
+- [[How do you harden a container image and a Dockerfile?]] (`#441`): [How do you harden a container image and a Dockerfile?](../docker/how-do-you-harden-a-container-image-and-a-dockerfile.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+
+
+
---
[⬅ Back to Network Security](./README.md) · [All topics](../README.md)
diff --git a/network-security/how-do-you-plan-cidr-ranges-and-subnets.md b/network-security/how-do-you-plan-cidr-ranges-and-subnets.md
index 26e4b85..311fdf6 100644
--- a/network-security/how-do-you-plan-cidr-ranges-and-subnets.md
+++ b/network-security/how-do-you-plan-cidr-ranges-and-subnets.md
@@ -159,6 +159,16 @@ kubectl get events -A --field-selector reason=FailedCreatePodSandBox | grep -i '
- Confirm that one VPC can hold both `172.` and `192.168.` blocks, while noting it complicates summarisation - so treat it as a remedy, not a plan.
- For an existing overlap, lead with PrivateLink (no routing between address spaces, so overlap is irrelevant) and mention private NAT or renumbering as the alternatives. See [designing a production-ready VPC on AWS](../aws-engineering/how-do-you-design-a-production-ready-vpc-on-aws.md), [connecting many VPCs](../aws-engineering/how-do-you-connect-many-vpcs-peering-transit-gateway-or-privatelink.md), [what is network segmentation](./what-is-network-segmentation.md), and [how does Pod networking and service discovery work in Kubernetes](../kubernetes/how-does-pod-networking-and-service-discovery-work-in-kubernetes.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+
+
+
---
[⬅ Back to Network Security](./README.md) · [All topics](../README.md)
diff --git a/network-security/how-do-you-protect-a-public-web-application-against-the-owasp-top-10-and-ddos.md b/network-security/how-do-you-protect-a-public-web-application-against-the-owasp-top-10-and-ddos.md
index 797c55d..ac42d6b 100644
--- a/network-security/how-do-you-protect-a-public-web-application-against-the-owasp-top-10-and-ddos.md
+++ b/network-security/how-do-you-protect-a-public-web-application-against-the-owasp-top-10-and-ddos.md
@@ -207,6 +207,16 @@ curl -s -o /dev/null -w '%{http_code}\n' "https://app.example.com/?q=1%27%20OR%2
- Insist on **detection mode first** and tuning with real traffic, and explain the consequence of not doing it - a false-positive outage, after which the WAF gets disabled forever.
- Mention the free wins: HSTS, CSP as the real XSS mitigation, secure cookies, deliberate CORS, and an API gateway doing authentication and quotas before traffic reaches the service. Then say the pipeline catches the classes the WAF cannot see. See [what is a web application firewall (WAF)](./what-is-a-web-application-firewall-waf.md), [designing defence in depth for a cloud network](./how-do-you-design-defence-in-depth-for-a-cloud-network.md), [what is API security](../api-gateway-and-service-mesh/what-is-api-security.md), [what is rate limiting](../api-gateway-and-service-mesh/what-is-rate-limiting.md), and [designing a system to degrade gracefully under overload](../scalability-and-high-availability/how-do-you-design-a-system-to-degrade-gracefully-under-overload.md).
+
+
+## Related Concepts
+
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[How do you harden a container image and a Dockerfile?]] (`#441`): [How do you harden a container image and a Dockerfile?](../docker/how-do-you-harden-a-container-image-and-a-dockerfile.md)
+
+
+
---
[⬅ Back to Network Security](./README.md) · [All topics](../README.md)
diff --git a/network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md b/network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md
index e2f16f2..cac2ef7 100644
--- a/network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md
+++ b/network-security/what-happens-when-a-user-opens-your-application-in-a-browser.md
@@ -83,6 +83,16 @@ kubectl logs -l app=api --tail=100 --since=10m
- If the role is security-leaning, expect the branch into TLS specifics - handshake steps, SNI, certificate chain validation, and HSTS.
- If it is Kubernetes-leaning, expect the branch into Service → EndpointSlice → Pod and why a failing readiness probe produces a 503.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Network Security](./README.md) · [All topics](../README.md)
diff --git a/network-security/what-is-a-web-application-firewall-waf.md b/network-security/what-is-a-web-application-firewall-waf.md
index 88e6aee..da36ec8 100644
--- a/network-security/what-is-a-web-application-firewall-waf.md
+++ b/network-security/what-is-a-web-application-firewall-waf.md
@@ -58,6 +58,16 @@ resource "aws_wafv2_web_acl" "app" {
- Virtual patching is a strong concept: a WAF buys time while the real fix ships.
- Be clear that a WAF is defence in depth, never a substitute for input validation and parameterised queries.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Network Security](./README.md) · [All topics](../README.md)
diff --git a/network-security/what-is-network-security-in-devops.md b/network-security/what-is-network-security-in-devops.md
index 5ec2cff..cb2bac3 100644
--- a/network-security/what-is-network-security-in-devops.md
+++ b/network-security/what-is-network-security-in-devops.md
@@ -66,6 +66,16 @@ spec:
- Remember the DNS rule when writing default-deny NetworkPolicies; forgetting it is the classic mistake.
- Frame network controls as code, reviewed and scanned, not as tickets to a firewall team.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Network Security](./README.md) · [All topics](../README.md)
diff --git a/network-security/what-is-network-segmentation.md b/network-security/what-is-network-segmentation.md
index ec465c8..316b298 100644
--- a/network-security/what-is-network-segmentation.md
+++ b/network-security/what-is-network-segmentation.md
@@ -42,6 +42,16 @@ tags:
- Referencing security groups by group rather than CIDR is a practical detail that shows cloud experience.
- Mention PCI scope reduction if the role touches regulated environments.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Network Security](./README.md) · [All topics](../README.md)
diff --git a/network-security/what-is-ssl-tls.md b/network-security/what-is-ssl-tls.md
index e264c49..4bc6548 100644
--- a/network-security/what-is-ssl-tls.md
+++ b/network-security/what-is-ssl-tls.md
@@ -56,6 +56,16 @@ curl -sI --tlsv1.3 https://example.com | head -1
- Naming `X25519MLKEM768` and "harvest now, decrypt later" shows you have kept current; being clear that it protects key exchange and not certificate signatures shows you actually understand it.
- Be precise: TLS authenticates the _server_ by default; mutual TLS is required to authenticate the client.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to Network Security](./README.md) · [All topics](../README.md)
diff --git a/network-security/what-is-the-difference-between-a-reverse-proxy-and-a-forward-proxy.md b/network-security/what-is-the-difference-between-a-reverse-proxy-and-a-forward-proxy.md
index de498ea..ae59aa8 100644
--- a/network-security/what-is-the-difference-between-a-reverse-proxy-and-a-forward-proxy.md
+++ b/network-security/what-is-the-difference-between-a-reverse-proxy-and-a-forward-proxy.md
@@ -173,6 +173,16 @@ curl -isS -X OPTIONS https://api.example.com/v2/orders \
- Distinguish NAT (layer 3/4 address rewriting, connectivity) from a proxy (layer 7 termination, visibility and policy), and note that every layer 7 load balancer is a reverse proxy while a layer 4 one is not.
- If transparent proxying comes up, mention that intercepting TLS requires a CA on every client, with the privacy and operational cost that implies. See [what happens when a user opens your application in a browser](./what-happens-when-a-user-opens-your-application-in-a-browser.md), [what is an API gateway](../api-gateway-and-service-mesh/what-is-an-api-gateway.md), [designing defence in depth for a cloud network](./how-do-you-design-defence-in-depth-for-a-cloud-network.md), and [how do Kubernetes NetworkPolicies work](../kubernetes/how-do-kubernetes-networkpolicies-work-and-how-do-you-debug-one-that-blocks-traffic.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+- [[What is the difference between Continuous Delivery and Continuous Deployment?]] (`#20`): [What is the difference between Continuous Delivery and Continuous Deployment?](../cicd/what-is-the-difference-between-continuous-delivery-and-continuous-deployment.md)
+
+
+
---
[⬅ Back to Network Security](./README.md) · [All topics](../README.md)
diff --git a/network-security/what-is-the-osi-model-and-what-is-the-difference-between-tcp-and-udp.md b/network-security/what-is-the-osi-model-and-what-is-the-difference-between-tcp-and-udp.md
index 6ef10b3..72fc53d 100644
--- a/network-security/what-is-the-osi-model-and-what-is-the-difference-between-tcp-and-udp.md
+++ b/network-security/what-is-the-osi-model-and-what-is-the-difference-between-tcp-and-udp.md
@@ -141,6 +141,16 @@ Where the cloud controls sit - the mapping that makes OSI useful
- Add MTU/MSS mismatch as the cause of "small requests work, large responses hang" - the classic overlay-network and VPN symptom.
- For IPv4 classes, answer historically and then say CIDR replaced it, listing the RFC 1918 private ranges and `169.254.169.254` as the metadata endpoint. See [what happens when a user opens your application in a browser](./what-happens-when-a-user-opens-your-application-in-a-browser.md), [how do you plan CIDR ranges and subnets](./how-do-you-plan-cidr-ranges-and-subnets.md), [what is the difference between a layer 4 and a layer 7 load balancer](../scalability-and-high-availability/what-is-the-difference-between-a-layer-4-and-a-layer-7-load-balancer.md), and [how do you troubleshoot a DNS problem in production](../cloud-engineering/how-do-you-troubleshoot-a-dns-problem-in-production.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+
+
+
---
[⬅ Back to Network Security](./README.md) · [All topics](../README.md)
diff --git a/network-security/what-is-zero-trust-security.md b/network-security/what-is-zero-trust-security.md
index 4dd8abc..48b760c 100644
--- a/network-security/what-is-zero-trust-security.md
+++ b/network-security/what-is-zero-trust-security.md
@@ -40,6 +40,16 @@ tags:
- Emphasise that zero trust is an architecture, not a product - vendors claiming otherwise are selling.
- Service mesh mTLS and identity-aware proxies are the concrete implementations to name.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Network Security](./README.md) · [All topics](../README.md)
diff --git a/performance-testing/how-do-you-load-test-safely-against-production.md b/performance-testing/how-do-you-load-test-safely-against-production.md
index 9753003..abf4aa3 100644
--- a/performance-testing/how-do-you-load-test-safely-against-production.md
+++ b/performance-testing/how-do-you-load-test-safely-against-production.md
@@ -113,6 +113,16 @@ aws elbv2 deregister-targets --target-group-arn $TG --targets Id=i-0abc # one A
- Name the reason production testing exists at all: data volume, cache state, real dependency behaviour, noisy neighbours - things staging cannot fake.
- Finish with the deliverables, especially autoscaling scale-up latency, and say that results must change a configuration to have been worth it.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Performance Testing](./README.md) · [All topics](../README.md)
diff --git a/performance-testing/how-to-analyze-performance-test-results.md b/performance-testing/how-to-analyze-performance-test-results.md
index 4390fba..6fb91e0 100644
--- a/performance-testing/how-to-analyze-performance-test-results.md
+++ b/performance-testing/how-to-analyze-performance-test-results.md
@@ -39,6 +39,16 @@ tags:
- Mention coordinated omission if you want to demonstrate depth on measurement accuracy.
- Always end with re-testing to prove the fix - analysis without validation is a hypothesis.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Performance Testing](./README.md) · [All topics](../README.md)
diff --git a/performance-testing/what-are-different-types-of-performance-tests.md b/performance-testing/what-are-different-types-of-performance-tests.md
index 926d616..c2192c5 100644
--- a/performance-testing/what-are-different-types-of-performance-tests.md
+++ b/performance-testing/what-are-different-types-of-performance-tests.md
@@ -37,6 +37,16 @@ Note the related but distinct disciplines: **capacity planning** uses these resu
- Soak testing for memory and connection leaks is the one most candidates omit.
- Mention automated performance regression gates in the pipeline as the mature practice.
+
+
+## Related Concepts
+
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Performance Testing](./README.md) · [All topics](../README.md)
diff --git a/performance-testing/what-are-performance-testing-best-practices.md b/performance-testing/what-are-performance-testing-best-practices.md
index c3af974..e7a0238 100644
--- a/performance-testing/what-are-performance-testing-best-practices.md
+++ b/performance-testing/what-are-performance-testing-best-practices.md
@@ -51,6 +51,16 @@ tags:
- Emphasise repeatability - a test you cannot reproduce cannot prove a fix worked.
- Have a story about a bottleneck you found and what the fix actually was.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Performance Testing](./README.md) · [All topics](../README.md)
diff --git a/performance-testing/what-are-performance-testing-tools.md b/performance-testing/what-are-performance-testing-tools.md
index 5917c7e..9183f0e 100644
--- a/performance-testing/what-are-performance-testing-tools.md
+++ b/performance-testing/what-are-performance-testing-tools.md
@@ -60,6 +60,16 @@ export default function () {
- Always mention pairing with server-side metrics and profiling.
- Note that distributed load generation is needed once one machine cannot produce the target load.
+
+
+## Related Concepts
+
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to Performance Testing](./README.md) · [All topics](../README.md)
diff --git a/performance-testing/what-is-performance-testing.md b/performance-testing/what-is-performance-testing.md
index 7f7255c..76e7fb9 100644
--- a/performance-testing/what-is-performance-testing.md
+++ b/performance-testing/what-is-performance-testing.md
@@ -36,6 +36,16 @@ tags:
- Mention monitoring the load generator itself - testing your own client's limits is a classic mistake.
- Tie targets to SLOs so the test has a pass/fail meaning rather than producing a number nobody acts on.
+
+
+## Related Concepts
+
+- [[How do you prevent and handle secret leaks in CI/CD pipelines?]] (`#237`): [How do you prevent and handle secret leaks in CI/CD pipelines?](../cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md)
+- [[Explain Docker Architecture]] (`#10`): [Explain Docker Architecture](../docker/explain-docker-architecture.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+
+
+
---
[⬅ Back to Performance Testing](./README.md) · [All topics](../README.md)
diff --git a/platform-engineering/how-do-you-deploy-and-scale-llm-inference-serving-with-vllm-or-triton-on-kubernetes.md b/platform-engineering/how-do-you-deploy-and-scale-llm-inference-serving-with-vllm-or-triton-on-kubernetes.md
index 13fd4d7..4ea6488 100644
--- a/platform-engineering/how-do-you-deploy-and-scale-llm-inference-serving-with-vllm-or-triton-on-kubernetes.md
+++ b/platform-engineering/how-do-you-deploy-and-scale-llm-inference-serving-with-vllm-or-triton-on-kubernetes.md
@@ -110,6 +110,16 @@ curl http://vllm-llama3.ai-platform.svc.cluster.local:8000/v1/chat/completions \
- Highlight model weight loading strategies: downloading weights on container boot creates 15-minute start times; using persistent storage or OCI artifacts dramatically reduces cold start latency.
- Mention **OpenAI Protocol compatibility**: engines like vLLM expose OpenAI-compatible REST endpoints (`/v1/chat/completions`), simplifying frontend API integration.
+
+
+## Related Concepts
+
+- [[How do you structure Terraform code for multiple environments and providers?]] (`#422`): [How do you structure Terraform code for multiple environments and providers?](../infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md)
+- [[How do you write and structure a reusable Terraform module?]] (`#463`): [How do you write and structure a reusable Terraform module?](../infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md)
+- [[What is Infrastructure as Code?]] (`#26`): [What is Infrastructure as Code?](../infrastructure-as-code/what-is-infrastructure-as-code.md)
+
+
+
---
[⬅ Back to Platform Engineering](./README.md) · [All topics](../README.md)
diff --git a/platform-engineering/how-do-you-deploy-and-scale-vector-databases-in-kubernetes-for-rag-applications.md b/platform-engineering/how-do-you-deploy-and-scale-vector-databases-in-kubernetes-for-rag-applications.md
index 2acca70..2cb0835 100644
--- a/platform-engineering/how-do-you-deploy-and-scale-vector-databases-in-kubernetes-for-rag-applications.md
+++ b/platform-engineering/how-do-you-deploy-and-scale-vector-databases-in-kubernetes-for-rag-applications.md
@@ -111,6 +111,16 @@ for res in results:
- Differentiate **Milvus** (disaggregated cloud-native architecture for billion-scale vectors) from **pgvector** (lightweight extension for existing Postgres databases).
- Highlight **hybrid search**: combining dense vector embeddings (semantic search) with sparse keyword search (BM25) to maximize RAG retrieval accuracy.
+
+
+## Related Concepts
+
+- [[How do you structure Terraform code for multiple environments and providers?]] (`#422`): [How do you structure Terraform code for multiple environments and providers?](../infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md)
+- [[How do you import existing cloud infrastructure into Terraform?]] (`#235`): [How do you import existing cloud infrastructure into Terraform?](../infrastructure-as-code/how-do-you-import-existing-cloud-infrastructure-into-terraform.md)
+- [[How do you write and structure a reusable Terraform module?]] (`#463`): [How do you write and structure a reusable Terraform module?](../infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md)
+
+
+
---
[⬅ Back to Platform Engineering](./README.md) · [All topics](../README.md)
diff --git a/platform-engineering/how-do-you-design-a-production-mlops-pipeline-using-ray-or-kubeflow.md b/platform-engineering/how-do-you-design-a-production-mlops-pipeline-using-ray-or-kubeflow.md
index 2a159f3..402ff5e 100644
--- a/platform-engineering/how-do-you-design-a-production-mlops-pipeline-using-ray-or-kubeflow.md
+++ b/platform-engineering/how-do-you-design-a-production-mlops-pipeline-using-ray-or-kubeflow.md
@@ -118,6 +118,16 @@ spec:
- Highlight **Model Registry & Reproducibility**: emphasize logging code Git commit SHA, dataset version/hash, hyperparameters, and environment docker image to ensure 100% reproducible model builds.
- Explain **Feature Stores**: centralize feature engineering logic so training pipelines and low-latency inference services share consistent data features without skew.
+
+
+## Related Concepts
+
+- [[How do you structure Terraform code for multiple environments and providers?]] (`#422`): [How do you structure Terraform code for multiple environments and providers?](../infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md)
+- [[What is Infrastructure as Code?]] (`#26`): [What is Infrastructure as Code?](../infrastructure-as-code/what-is-infrastructure-as-code.md)
+- [[What is Ansible?]] (`#28`): [What is Ansible?](../infrastructure-as-code/what-is-ansible.md)
+
+
+
---
[⬅ Back to Platform Engineering](./README.md) · [All topics](../README.md)
diff --git a/platform-engineering/how-do-you-measure-the-success-of-a-platform.md b/platform-engineering/how-do-you-measure-the-success-of-a-platform.md
index 4f30c87..3a46df1 100644
--- a/platform-engineering/how-do-you-measure-the-success-of-a-platform.md
+++ b/platform-engineering/how-do-you-measure-the-success-of-a-platform.md
@@ -68,6 +68,16 @@ for deploy debugging. Not done: secret rotation (moved to Q4, now top request).
- "Adoption is the metric you cannot fake" and "always pair speed with stability" are the two lines to land.
- Expect: "what would you do if adoption were low?" - treat it as product feedback, interview the teams routing around you, and fix the missing capability.
+
+
+## Related Concepts
+
+- [[How do you write and structure a reusable Terraform module?]] (`#463`): [How do you write and structure a reusable Terraform module?](../infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md)
+- [[How do you structure Terraform code for multiple environments and providers?]] (`#422`): [How do you structure Terraform code for multiple environments and providers?](../infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md)
+- [[What is Ansible?]] (`#28`): [What is Ansible?](../infrastructure-as-code/what-is-ansible.md)
+
+
+
---
[⬅ Back to Platform Engineering](./README.md) · [All topics](../README.md)
diff --git a/platform-engineering/how-do-you-monitor-ai-llm-applications-for-latency-gpu-metrics-and-token-costs.md b/platform-engineering/how-do-you-monitor-ai-llm-applications-for-latency-gpu-metrics-and-token-costs.md
index 5ff17f0..2275e17 100644
--- a/platform-engineering/how-do-you-monitor-ai-llm-applications-for-latency-gpu-metrics-and-token-costs.md
+++ b/platform-engineering/how-do-you-monitor-ai-llm-applications-for-latency-gpu-metrics-and-token-costs.md
@@ -112,6 +112,16 @@ sum(increase(DCGM_FI_DEV_XID_ERRORS[5m])) by (pod, gpu)
- Know the critical **DCGM metrics**: `DCGM_FI_DEV_GPU_UTIL`, `DCGM_FI_DEV_FB_USED`, and `DCGM_FI_DEV_XID_ERRORS`.
- Explain how **AI FinOps** operates: tracking token usage at the API Gateway level (e.g. Kong, Ambassador, or LiteLLM Proxy) allows enforcing per-team rate limits and cost budgets.
+
+
+## Related Concepts
+
+- [[How do you structure Terraform code for multiple environments and providers?]] (`#422`): [How do you structure Terraform code for multiple environments and providers?](../infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md)
+- [[How do you write and structure a reusable Terraform module?]] (`#463`): [How do you write and structure a reusable Terraform module?](../infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md)
+- [[What is Service Mesh?]] (`#68`): [What is Service Mesh?](../cloud-native-architecture/what-is-service-mesh.md)
+
+
+
---
[⬅ Back to Platform Engineering](./README.md) · [All topics](../README.md)
diff --git a/platform-engineering/how-do-you-orchestrate-and-autoscale-gpu-workloads-in-kubernetes.md b/platform-engineering/how-do-you-orchestrate-and-autoscale-gpu-workloads-in-kubernetes.md
index 7622e44..49c1e3e 100644
--- a/platform-engineering/how-do-you-orchestrate-and-autoscale-gpu-workloads-in-kubernetes.md
+++ b/platform-engineering/how-do-you-orchestrate-and-autoscale-gpu-workloads-in-kubernetes.md
@@ -106,6 +106,16 @@ data:
- Explain why standard HPA (CPU/Memory scaling) fails for GPU workloads: GPUs require scaling based on VRAM consumption, queue length, or DCGM metrics (`DCGM_FI_DEV_GPU_UTIL`).
- Emphasize node provisioning with **Karpenter**: Karpenter handles heterogeneous GPU instance constraints much faster than legacy Cluster Autoscaler.
+
+
+## Related Concepts
+
+- [[How do you structure Terraform code for multiple environments and providers?]] (`#422`): [How do you structure Terraform code for multiple environments and providers?](../infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md)
+- [[What is Infrastructure as Code?]] (`#26`): [What is Infrastructure as Code?](../infrastructure-as-code/what-is-infrastructure-as-code.md)
+- [[What is Ansible?]] (`#28`): [What is Ansible?](../infrastructure-as-code/what-is-ansible.md)
+
+
+
---
[⬅ Back to Platform Engineering](./README.md) · [All topics](../README.md)
diff --git a/platform-engineering/how-do-you-provide-self-service-environments-to-developers.md b/platform-engineering/how-do-you-provide-self-service-environments-to-developers.md
index 79e0712..3762d3a 100644
--- a/platform-engineering/how-do-you-provide-self-service-environments-to-developers.md
+++ b/platform-engineering/how-do-you-provide-self-service-environments-to-developers.md
@@ -84,6 +84,16 @@ environment cannot outlive its purpose. This is the control that keeps the bill
- Mandatory TTL plus a reaper is the operational detail that shows you have run this at scale.
- Expect: "does this replace staging?" - mostly for feature verification; keep a persistent environment for load and migration rehearsals, and rely on canaries in production.
+
+
+## Related Concepts
+
+- [[How do you structure Terraform code for multiple environments and providers?]] (`#422`): [How do you structure Terraform code for multiple environments and providers?](../infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md)
+- [[How do you write and structure a reusable Terraform module?]] (`#463`): [How do you write and structure a reusable Terraform module?](../infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md)
+- [[What is Infrastructure as Code?]] (`#26`): [What is Infrastructure as Code?](../infrastructure-as-code/what-is-infrastructure-as-code.md)
+
+
+
---
[⬅ Back to Platform Engineering](./README.md) · [All topics](../README.md)
diff --git a/platform-engineering/how-do-you-roll-out-breaking-platform-changes-safely.md b/platform-engineering/how-do-you-roll-out-breaking-platform-changes-safely.md
index 2c63427..2a2a670 100644
--- a/platform-engineering/how-do-you-roll-out-breaking-platform-changes-safely.md
+++ b/platform-engineering/how-do-you-roll-out-breaking-platform-changes-safely.md
@@ -55,6 +55,16 @@ Rollback plan at every stage: re-enable v1beta1 reconciliation (kept for 30 days
- The bot-raised pull request with CI already green is the detail that shows you have actually finished a migration.
- Expect: "what about changes you cannot version, like a Kubernetes upgrade?" - staged environments, canary node pools, audit-before-enforce for policy, tested rollback.
+
+
+## Related Concepts
+
+- [[How do you structure Terraform code for multiple environments and providers?]] (`#422`): [How do you structure Terraform code for multiple environments and providers?](../infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md)
+- [[How do you write and structure a reusable Terraform module?]] (`#463`): [How do you write and structure a reusable Terraform module?](../infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md)
+- [[What is Infrastructure as Code?]] (`#26`): [What is Infrastructure as Code?](../infrastructure-as-code/what-is-infrastructure-as-code.md)
+
+
+
---
[⬅ Back to Platform Engineering](./README.md) · [All topics](../README.md)
diff --git a/platform-engineering/how-do-you-treat-a-platform-as-a-product.md b/platform-engineering/how-do-you-treat-a-platform-as-a-product.md
index cf93718..c7c4ea6 100644
--- a/platform-engineering/how-do-you-treat-a-platform-as-a-product.md
+++ b/platform-engineering/how-do-you-treat-a-platform-as-a-product.md
@@ -53,6 +53,16 @@ Cost $/ team / month published so teams can see their own consumptio
- "Voluntary adoption is the only honest signal" is a strong, opinionated line to deliver.
- Expect: "how do you measure success?" - DORA outcomes plus adoption and satisfaction, explicitly rejecting output metrics.
+
+
+## Related Concepts
+
+- [[How do you structure Terraform code for multiple environments and providers?]] (`#422`): [How do you structure Terraform code for multiple environments and providers?](../infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md)
+- [[How do you write and structure a reusable Terraform module?]] (`#463`): [How do you write and structure a reusable Terraform module?](../infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md)
+- [[What is Infrastructure as Code?]] (`#26`): [What is Infrastructure as Code?](../infrastructure-as-code/what-is-infrastructure-as-code.md)
+
+
+
---
[⬅ Back to Platform Engineering](./README.md) · [All topics](../README.md)
diff --git a/platform-engineering/what-does-a-platform-engineer-actually-do-day-to-day.md b/platform-engineering/what-does-a-platform-engineer-actually-do-day-to-day.md
index be6ad9c..f609747 100644
--- a/platform-engineering/what-does-a-platform-engineer-actually-do-day-to-day.md
+++ b/platform-engineering/what-does-a-platform-engineer-actually-do-day-to-day.md
@@ -87,6 +87,16 @@ $ platform new service --name checkout --language go --database postgres
- Be ready to name real coding work (Go, Python, controllers, CLIs). Platform engineering is a software role, not only a configuration one.
- Have one concrete reusable thing you built and how many teams used it. Adoption numbers beat descriptions.
+
+
+## Related Concepts
+
+- [[How do you structure Terraform code for multiple environments and providers?]] (`#422`): [How do you structure Terraform code for multiple environments and providers?](../infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md)
+- [[How do you write and structure a reusable Terraform module?]] (`#463`): [How do you write and structure a reusable Terraform module?](../infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md)
+- [[What is Infrastructure as Code?]] (`#26`): [What is Infrastructure as Code?](../infrastructure-as-code/what-is-infrastructure-as-code.md)
+
+
+
---
[⬅ Back to Platform Engineering](./README.md) · [All topics](../README.md)
diff --git a/platform-engineering/what-is-a-golden-path.md b/platform-engineering/what-is-a-golden-path.md
index aefba9e..228f30e 100644
--- a/platform-engineering/what-is-a-golden-path.md
+++ b/platform-engineering/what-is-a-golden-path.md
@@ -57,6 +57,16 @@ $ acme new service checkout --template http-service --owner team-payments
- The versioned-template-with-auto-PR detail is what distinguishes a maintained path from a one-time generator.
- Expect: "what if a team wants something different?" - allow it, make the trade explicit, and treat the deviation as product feedback.
+
+
+## Related Concepts
+
+- [[How do you structure Terraform code for multiple environments and providers?]] (`#422`): [How do you structure Terraform code for multiple environments and providers?](../infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md)
+- [[How do you write and structure a reusable Terraform module?]] (`#463`): [How do you write and structure a reusable Terraform module?](../infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md)
+- [[What is Infrastructure as Code?]] (`#26`): [What is Infrastructure as Code?](../infrastructure-as-code/what-is-infrastructure-as-code.md)
+
+
+
---
[⬅ Back to Platform Engineering](./README.md) · [All topics](../README.md)
diff --git a/platform-engineering/what-is-an-internal-developer-platform-idp.md b/platform-engineering/what-is-an-internal-developer-platform-idp.md
index aba182a..696da6c 100644
--- a/platform-engineering/what-is-an-internal-developer-platform-idp.md
+++ b/platform-engineering/what-is-an-internal-developer-platform-idp.md
@@ -67,6 +67,16 @@ spec:
- "Golden paths, not mandates" and "abstractions must be escapable" are the two ideas that show maturity.
- Expect: "when is an IDP not worth building?" - small organisations; recommend templates and a shared pipeline instead.
+
+
+## Related Concepts
+
+- [[How do you structure Terraform code for multiple environments and providers?]] (`#422`): [How do you structure Terraform code for multiple environments and providers?](../infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md)
+- [[How do you write and structure a reusable Terraform module?]] (`#463`): [How do you write and structure a reusable Terraform module?](../infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md)
+- [[What is Infrastructure as Code?]] (`#26`): [What is Infrastructure as Code?](../infrastructure-as-code/what-is-infrastructure-as-code.md)
+
+
+
---
[⬅ Back to Platform Engineering](./README.md) · [All topics](../README.md)
diff --git a/platform-engineering/what-is-backstage.md b/platform-engineering/what-is-backstage.md
index 35221d1..b436e61 100644
--- a/platform-engineering/what-is-backstage.md
+++ b/platform-engineering/what-is-backstage.md
@@ -58,6 +58,16 @@ spec:
- "A portal is not a platform" is the line that shows you understand the ordering of the work.
- Expect: "would you build Backstage or buy a portal?" - weigh a dedicated engineer's cost against extensibility needs, and answer for the size of team in question.
+
+
+## Related Concepts
+
+- [[How do you structure Terraform code for multiple environments and providers?]] (`#422`): [How do you structure Terraform code for multiple environments and providers?](../infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md)
+- [[How do you write and structure a reusable Terraform module?]] (`#463`): [How do you write and structure a reusable Terraform module?](../infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md)
+- [[What is Infrastructure as Code?]] (`#26`): [What is Infrastructure as Code?](../infrastructure-as-code/what-is-infrastructure-as-code.md)
+
+
+
---
[⬅ Back to Platform Engineering](./README.md) · [All topics](../README.md)
diff --git a/platform-engineering/what-is-crossplane-and-how-does-it-compare-to-terraform.md b/platform-engineering/what-is-crossplane-and-how-does-it-compare-to-terraform.md
index 12becfa..99f9d23 100644
--- a/platform-engineering/what-is-crossplane-and-how-does-it-compare-to-terraform.md
+++ b/platform-engineering/what-is-crossplane-and-how-does-it-compare-to-terraform.md
@@ -83,6 +83,16 @@ spec:
- Raise the risks yourself: weak preview, deletion propagation, and the control plane becoming critical infrastructure.
- Expect: "would you replace Terraform with it?" - usually no; Terraform for foundation, Crossplane for the developer-facing layer.
+
+
+## Related Concepts
+
+- [[How do you structure Terraform code for multiple environments and providers?]] (`#422`): [How do you structure Terraform code for multiple environments and providers?](../infrastructure-as-code/how-do-you-structure-terraform-code-for-multiple-environments-and-providers.md)
+- [[How do you write and structure a reusable Terraform module?]] (`#463`): [How do you write and structure a reusable Terraform module?](../infrastructure-as-code/how-do-you-write-and-structure-a-reusable-terraform-module.md)
+- [[What is Infrastructure as Code?]] (`#26`): [What is Infrastructure as Code?](../infrastructure-as-code/what-is-infrastructure-as-code.md)
+
+
+
---
[⬅ Back to Platform Engineering](./README.md) · [All topics](../README.md)
diff --git a/scalability-and-high-availability/how-do-you-design-a-system-to-degrade-gracefully-under-overload.md b/scalability-and-high-availability/how-do-you-design-a-system-to-degrade-gracefully-under-overload.md
index 5c2142b..2742f0e 100644
--- a/scalability-and-high-availability/how-do-you-design-a-system-to-degrade-gracefully-under-overload.md
+++ b/scalability-and-high-availability/how-do-you-design-a-system-to-degrade-gracefully-under-overload.md
@@ -152,6 +152,16 @@ histogram_quantile(0.99, sum by (le) (rate(request_duration_seconds_bucket[5m]))
- Bounded queues, deadline propagation, and dropping stale work (LIFO under load) are all worth naming - unbounded queues are the classic mistake.
- Finish with verification: load test past the knee, inject failure, and confirm the system recovers when load drops without a restart.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Scalability and High Availability](./README.md) · [All topics](../README.md)
diff --git a/scalability-and-high-availability/how-do-you-troubleshoot-a-load-balancer-returning-5xx-errors-or-sending-traffic-unevenly.md b/scalability-and-high-availability/how-do-you-troubleshoot-a-load-balancer-returning-5xx-errors-or-sending-traffic-unevenly.md
index d96b1fb..eb1a96d 100644
--- a/scalability-and-high-availability/how-do-you-troubleshoot-a-load-balancer-returning-5xx-errors-or-sending-traffic-unevenly.md
+++ b/scalability-and-high-availability/how-do-you-troubleshoot-a-load-balancer-returning-5xx-errors-or-sending-traffic-unevenly.md
@@ -127,6 +127,16 @@ resource "aws_lb_target_group" "api" {
- Mention `deregistration_delay` and `slow_start` as the deploy-time settings that stop rolling deployments producing 5xx blips.
- Close on prevention: load-balancer configuration in Terraform, access logs always on, dashboards that split the two 5xx families, and alerting on ratio rather than count.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot Docker networking between containers?]] (`#415`): [How do you troubleshoot Docker networking between containers?](../docker/how-do-you-troubleshoot-docker-networking-between-containers.md)
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Scalability and High Availability](./README.md) · [All topics](../README.md)
diff --git a/scalability-and-high-availability/what-is-auto-scaling.md b/scalability-and-high-availability/what-is-auto-scaling.md
index 0f32e89..e72819a 100644
--- a/scalability-and-high-availability/what-is-auto-scaling.md
+++ b/scalability-and-high-availability/what-is-auto-scaling.md
@@ -40,6 +40,16 @@ At the cluster level, the pod autoscaler needs the **Cluster Autoscaler** or Kar
- Mention flapping and stabilisation windows; they are the practical failure mode.
- Note the downstream effect: scaling the app tier can overwhelm the database connection pool.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to Scalability and High Availability](./README.md) · [All topics](../README.md)
diff --git a/scalability-and-high-availability/what-is-disaster-recovery.md b/scalability-and-high-availability/what-is-disaster-recovery.md
index 540c974..72296f9 100644
--- a/scalability-and-high-availability/what-is-disaster-recovery.md
+++ b/scalability-and-high-availability/what-is-disaster-recovery.md
@@ -43,6 +43,16 @@ tags:
- Immutable, separately-owned backups are the ransomware answer, and interviewers listen for it.
- The strongest closing point: "we test failover quarterly, and here is what we learned last time."
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[How do you take a monthly release process to daily deployments?]] (`#285`): [How do you take a monthly release process to daily deployments?](../core-devops-concepts/how-do-you-take-a-monthly-release-process-to-daily-deployments.md)
+
+
+
---
[⬅ Back to Scalability and High Availability](./README.md) · [All topics](../README.md)
diff --git a/scalability-and-high-availability/what-is-high-availability.md b/scalability-and-high-availability/what-is-high-availability.md
index c3e59c8..d97d93a 100644
--- a/scalability-and-high-availability/what-is-high-availability.md
+++ b/scalability-and-high-availability/what-is-high-availability.md
@@ -44,6 +44,16 @@ Each nine costs materially more. The right target comes from what the business l
- Always mention that dependencies (DNS, certs, third-party APIs) are part of your availability.
- Distinguish HA from DR clearly - it is a frequently tested distinction.
+
+
+## Related Concepts
+
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to Scalability and High Availability](./README.md) · [All topics](../README.md)
diff --git a/scalability-and-high-availability/what-is-load-balancing.md b/scalability-and-high-availability/what-is-load-balancing.md
index 5b36154..d04f09d 100644
--- a/scalability-and-high-availability/what-is-load-balancing.md
+++ b/scalability-and-high-availability/what-is-load-balancing.md
@@ -60,6 +60,16 @@ server {
- Deep versus shallow health checks is a great detail to raise unprompted.
- Connection draining during deployments is what turns load balancing into zero-downtime deployment.
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you reduce Docker image size and build time?]] (`#260`): [How do you reduce Docker image size and build time?](../docker/how-do-you-reduce-docker-image-size-and-build-time.md)
+- [[How do you prevent and handle secret leaks in CI/CD pipelines?]] (`#237`): [How do you prevent and handle secret leaks in CI/CD pipelines?](../cicd/how-do-you-prevent-and-handle-secret-leaks-in-ci-cd-pipelines.md)
+
+
+
---
[⬅ Back to Scalability and High Availability](./README.md) · [All topics](../README.md)
diff --git a/scalability-and-high-availability/what-is-scalability-in-devops.md b/scalability-and-high-availability/what-is-scalability-in-devops.md
index fd3f3ed..5ee0a5b 100644
--- a/scalability-and-high-availability/what-is-scalability-in-devops.md
+++ b/scalability-and-high-availability/what-is-scalability-in-devops.md
@@ -55,6 +55,16 @@ spec:
- Name the database as the usual bottleneck; it is the follow-up question in most interviews.
- Distinguish scalability (can grow) from elasticity (grows and shrinks automatically).
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+
+
+
---
[⬅ Back to Scalability and High Availability](./README.md) · [All topics](../README.md)
diff --git a/scalability-and-high-availability/what-is-the-difference-between-a-layer-4-and-a-layer-7-load-balancer.md b/scalability-and-high-availability/what-is-the-difference-between-a-layer-4-and-a-layer-7-load-balancer.md
index 70fa398..13317fb 100644
--- a/scalability-and-high-availability/what-is-the-difference-between-a-layer-4-and-a-layer-7-load-balancer.md
+++ b/scalability-and-high-availability/what-is-the-difference-between-a-layer-4-and-a-layer-7-load-balancer.md
@@ -124,6 +124,16 @@ resource "aws_lb_listener" "mqtt" {
- Expect a follow-up connecting this to Kubernetes: a `LoadBalancer` Service is layer 4, an Ingress or Gateway is layer 7.
- Least-outstanding-requests over round robin is a good detail if algorithms come up - round robin keeps feeding a slow backend.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Scalability and High Availability](./README.md) · [All topics](../README.md)
diff --git a/scalability-and-high-availability/why-did-your-autoscaling-not-kick-in-during-a-traffic-spike.md b/scalability-and-high-availability/why-did-your-autoscaling-not-kick-in-during-a-traffic-spike.md
index 81cd974..ae5ce11 100644
--- a/scalability-and-high-availability/why-did-your-autoscaling-not-kick-in-during-a-traffic-spike.md
+++ b/scalability-and-high-availability/why-did-your-autoscaling-not-kick-in-during-a-traffic-spike.md
@@ -113,6 +113,16 @@ spec:
- Mention the GitOps conflict (a `replicas` field in Git fighting the HPA every sync). It is a real and very common bug.
- Close with the bottleneck check: scaling the stateless tier into a saturated database makes the outage worse. See [what is auto scaling](./what-is-auto-scaling.md) and [how do you autoscale workloads and nodes in Kubernetes](../kubernetes/how-do-you-autoscale-workloads-and-nodes-in-kubernetes.md).
+
+
+## Related Concepts
+
+- [[Why does a container fail to start with a permission denied error?]] (`#416`): [Why does a container fail to start with a permission denied error?](../docker/why-does-a-container-fail-to-start-with-a-permission-denied-error.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[How do you speed up a slow CI/CD pipeline?]] (`#396`): [How do you speed up a slow CI/CD pipeline?](../cicd/how-do-you-speed-up-a-slow-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Scalability and High Availability](./README.md) · [All topics](../README.md)
diff --git a/scripting-and-automation/how-do-you-turn-a-pile-of-ad-hoc-scripts-into-maintainable-automation.md b/scripting-and-automation/how-do-you-turn-a-pile-of-ad-hoc-scripts-into-maintainable-automation.md
index 3111c38..602388f 100644
--- a/scripting-and-automation/how-do-you-turn-a-pile-of-ad-hoc-scripts-into-maintainable-automation.md
+++ b/scripting-and-automation/how-do-you-turn-a-pile-of-ad-hoc-scripts-into-maintainable-automation.md
@@ -141,6 +141,16 @@ shellcheck scripts/*.sh # the cheap
- Mention consolidating into an internal CLI or library, and that it also discourages new one-offs.
- Finish by naming the limit: reconciliation belongs in Terraform or a controller, and multi-step stateful workflows belong in a workflow engine. Knowing when to delete the script entirely is the senior answer.
+
+
+## Related Concepts
+
+- [[How do you schedule work with cron and systemd timers?]] (`#497`): [How do you schedule work with cron and systemd timers?](../linux-administration/how-do-you-schedule-work-with-cron-and-systemd-timers.md)
+- [[What is Shell Scripting?]] (`#42`): [What is Shell Scripting?](../linux-administration/what-is-shell-scripting.md)
+- [[What is Linux File System Hierarchy?]] (`#45`): [What is Linux File System Hierarchy?](../linux-administration/what-is-linux-file-system-hierarchy.md)
+
+
+
---
[⬅ Back to Scripting and Automation](./README.md) · [All topics](../README.md)
diff --git a/scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md b/scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md
index 3fd9814..ae2eb94 100644
--- a/scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md
+++ b/scripting-and-automation/how-do-you-write-a-production-grade-bash-script.md
@@ -120,6 +120,16 @@ bash -x promote.sh --env staging --image api:1.4.0 # trace execution
- Be willing to say Bash is the wrong tool past a certain point. Interviewers respect the boundary more than a 600-line Bash program.
- If asked to write something live - "back up a directory to S3", "delete files older than 7 days" - narrate the guard rails first, then the logic.
+
+
+## Related Concepts
+
+- [[How do you schedule work with cron and systemd timers?]] (`#497`): [How do you schedule work with cron and systemd timers?](../linux-administration/how-do-you-schedule-work-with-cron-and-systemd-timers.md)
+- [[What are the basic Linux commands every DevOps engineer should know?]] (`#41`): [What are the basic Linux commands every DevOps engineer should know?](../linux-administration/what-are-the-basic-linux-commands-every-devops-engineer-should-know.md)
+- [[What is Shell Scripting?]] (`#42`): [What is Shell Scripting?](../linux-administration/what-is-shell-scripting.md)
+
+
+
---
[⬅ Back to Scripting and Automation](./README.md) · [All topics](../README.md)
diff --git a/scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md b/scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md
index c7bbec5..4b602e3 100644
--- a/scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md
+++ b/scripting-and-automation/what-bash-scripting-exercises-come-up-in-devops-interviews.md
@@ -280,6 +280,16 @@ env -i /bin/bash --noprofile --norc ./cleanup.sh -n /tmp/test # reproduce cron
- Mention `flock` for anything on a schedule, `mktemp` plus a `trap` for temporary files, and an explicit `PATH` because cron's environment is nearly empty.
- Say `shellcheck` runs in CI, and say where you would stop using Bash - once you need JSON, data structures, or API error handling, it is Python. Recognising the boundary is a senior signal. See [how do you write a production-grade Bash script](./how-do-you-write-a-production-grade-bash-script.md), [analysing logs with grep, awk, and sed](../linux-administration/how-do-you-analyse-logs-and-text-files-with-grep-awk-and-sed.md), [scheduling work with cron and systemd timers](../linux-administration/how-do-you-schedule-work-with-cron-and-systemd-timers.md), and [what Python exercises come up in DevOps interviews](./what-python-exercises-come-up-in-devops-interviews.md).
+
+
+## Related Concepts
+
+- [[How do you schedule work with cron and systemd timers?]] (`#497`): [How do you schedule work with cron and systemd timers?](../linux-administration/how-do-you-schedule-work-with-cron-and-systemd-timers.md)
+- [[What are the basic Linux commands every DevOps engineer should know?]] (`#41`): [What are the basic Linux commands every DevOps engineer should know?](../linux-administration/what-are-the-basic-linux-commands-every-devops-engineer-should-know.md)
+- [[What is Shell Scripting?]] (`#42`): [What is Shell Scripting?](../linux-administration/what-is-shell-scripting.md)
+
+
+
---
[⬅ Back to Scripting and Automation](./README.md) · [All topics](../README.md)
diff --git a/scripting-and-automation/what-do-you-use-python-for-as-a-devops-engineer.md b/scripting-and-automation/what-do-you-use-python-for-as-a-devops-engineer.md
index ca793a8..aaf6ae2 100644
--- a/scripting-and-automation/what-do-you-use-python-for-as-a-devops-engineer.md
+++ b/scripting-and-automation/what-do-you-use-python-for-as-a-devops-engineer.md
@@ -118,6 +118,16 @@ if __name__ == "__main__":
- Mention virtual environments and pinned dependencies unprompted; unpinned automation is a stability question waiting to be asked.
- If you are not strong in Python, say so and describe what you _have_ automated. Claiming fluency and then failing a shallow-copy question is worse than an honest boundary.
+
+
+## Related Concepts
+
+- [[How do you schedule work with cron and systemd timers?]] (`#497`): [How do you schedule work with cron and systemd timers?](../linux-administration/how-do-you-schedule-work-with-cron-and-systemd-timers.md)
+- [[What is Shell Scripting?]] (`#42`): [What is Shell Scripting?](../linux-administration/what-is-shell-scripting.md)
+- [[What is Linux File System Hierarchy?]] (`#45`): [What is Linux File System Hierarchy?](../linux-administration/what-is-linux-file-system-hierarchy.md)
+
+
+
---
[⬅ Back to Scripting and Automation](./README.md) · [All topics](../README.md)
diff --git a/scripting-and-automation/what-python-exercises-come-up-in-devops-interviews.md b/scripting-and-automation/what-python-exercises-come-up-in-devops-interviews.md
index 283f235..cf58e06 100644
--- a/scripting-and-automation/what-python-exercises-come-up-in-devops-interviews.md
+++ b/scripting-and-automation/what-python-exercises-come-up-in-devops-interviews.md
@@ -344,6 +344,16 @@ def pods(namespace: str) -> str:
- Show a decorator with `functools.wraps` if asked, and volunteer the retry-with-backoff decorator - it is the most useful thing in a DevOps Python toolkit.
- Always pass subprocess arguments as a list, and say why: building a command string from an input value hands control of the shell to whoever supplied it. See [what do you use Python for as a DevOps engineer](./what-do-you-use-python-for-as-a-devops-engineer.md), [when do you use Bash and when do you use Python](./when-do-you-use-bash-and-when-do-you-use-python.md), [what Bash scripting exercises come up in DevOps interviews](./what-bash-scripting-exercises-come-up-in-devops-interviews.md), and [turning a pile of ad hoc scripts into maintainable automation](./how-do-you-turn-a-pile-of-ad-hoc-scripts-into-maintainable-automation.md).
+
+
+## Related Concepts
+
+- [[How do you schedule work with cron and systemd timers?]] (`#497`): [How do you schedule work with cron and systemd timers?](../linux-administration/how-do-you-schedule-work-with-cron-and-systemd-timers.md)
+- [[How do you troubleshoot SSH failures, high CPU, and disk space on Linux servers?]] (`#238`): [How do you troubleshoot SSH failures, high CPU, and disk space on Linux servers?](../linux-administration/how-do-you-troubleshoot-ssh-failures-high-cpu-and-disk-space-on-linux-servers.md)
+- [[How do you analyse logs and text files with grep, awk, and sed?]] (`#265`): [How do you analyse logs and text files with grep, awk, and sed?](../linux-administration/how-do-you-analyse-logs-and-text-files-with-grep-awk-and-sed.md)
+
+
+
---
[⬅ Back to Scripting and Automation](./README.md) · [All topics](../README.md)
diff --git a/scripting-and-automation/when-do-you-use-bash-and-when-do-you-use-python.md b/scripting-and-automation/when-do-you-use-bash-and-when-do-you-use-python.md
index 92394c3..c7c590b 100644
--- a/scripting-and-automation/when-do-you-use-bash-and-when-do-you-use-python.md
+++ b/scripting-and-automation/when-do-you-use-bash-and-when-do-you-use-python.md
@@ -120,6 +120,16 @@ aws ec2 describe-instances \
- Name `jq` as the middle ground, and note that Python calling `subprocess` is normal - you do not need an SDK for everything.
- Close on the operational point: pipeline scripts get retried, so they must be idempotent and exit with meaningful status codes.
+
+
+## Related Concepts
+
+- [[How do you schedule work with cron and systemd timers?]] (`#497`): [How do you schedule work with cron and systemd timers?](../linux-administration/how-do-you-schedule-work-with-cron-and-systemd-timers.md)
+- [[What are the basic Linux commands every DevOps engineer should know?]] (`#41`): [What are the basic Linux commands every DevOps engineer should know?](../linux-administration/what-are-the-basic-linux-commands-every-devops-engineer-should-know.md)
+- [[What is Shell Scripting?]] (`#42`): [What is Shell Scripting?](../linux-administration/what-is-shell-scripting.md)
+
+
+
---
[⬅ Back to Scripting and Automation](./README.md) · [All topics](../README.md)
diff --git a/scripts/build_knowledge_graph.py b/scripts/build_knowledge_graph.py
new file mode 100644
index 0000000..b1b25f0
--- /dev/null
+++ b/scripts/build_knowledge_graph.py
@@ -0,0 +1,662 @@
+#!/usr/bin/env python3
+"""Generate an interactive HTML knowledge graph for GitHub Pages.
+
+Parses all Markdown questions and topic indexes, extracts connections (categories,
+shared tags, and explicit cross-file relative links), and builds an interactive 3D/2D
+Force Graph using Force-Graph for GitHub Pages static site deployment.
+
+Usage:
+ python3 scripts/build_knowledge_graph.py [--output docs/index.html]
+"""
+
+from __future__ import annotations
+
+import argparse
+import json
+import re
+import sys
+from pathlib import Path
+
+# Add scripts dir to sys.path
+SCRIPTS_DIR = Path(__file__).resolve().parent
+sys.path.insert(0, str(SCRIPTS_DIR))
+
+from lib_content import REPO_ROOT, all_questions, load_topics, topic_meta
+
+LINK_RE = re.compile(r"\[[^\]]*\]\(([^:)\s][^)\s]*)\)")
+WIKILINK_RE = re.compile(r"\[\[([^\]|]+)(?:\|[^\]]+)?\]\]")
+
+DIFFICULTY_COLORS = {
+ "Beginner": "#10b981", # Emerald Green
+ "Intermediate": "#f59e0b", # Amber Yellow
+ "Advanced": "#ef4444", # Rose Red
+ "Topic": "#06b6d4", # Cyan / Terminal Teal
+}
+
+GROUP_COLORS = {
+ "Foundations": "#3b82f6",
+ "Containers and Kubernetes": "#06b6d4",
+ "Delivery and Automation": "#10b981",
+ "Cloud Providers": "#8b5cf6",
+ "Architecture and Scale": "#f59e0b",
+ "Reliability and Operations": "#ec4899",
+ "Security": "#ef4444",
+ "Platform and Leadership": "#6366f1",
+ "Interview Prep": "#14b8a6",
+}
+
+
+def extract_internal_links(file_path: Path, text: str, title_to_path_map: dict | None = None) -> list[Path]:
+ """Extract relative markdown links and [[wikilinks]] targeting other question files."""
+ linked_paths = []
+ # 1. Standard relative markdown links
+ for match in LINK_RE.findall(text):
+ target = match.split("#", 1)[0]
+ if not target or not target.endswith(".md"):
+ continue
+ resolved = (file_path.parent / target).resolve()
+ if resolved.exists() and resolved != file_path:
+ linked_paths.append(resolved)
+
+ # 2. Obsidian / Wiki style [[wikilinks]]
+ if title_to_path_map:
+ for match in WIKILINK_RE.findall(text):
+ target_name = match.strip().lower()
+ if target_name in title_to_path_map:
+ resolved = title_to_path_map[target_name]
+ if resolved != file_path:
+ linked_paths.append(resolved)
+
+ return linked_paths
+
+
+def build_graph_data(repo_root: Path = REPO_ROOT) -> dict:
+ topics = load_topics(repo_root)
+ questions = all_questions(topics)
+ meta = topic_meta()
+
+ nodes = []
+ edges = []
+ edge_set = set()
+
+ # 1. Add Topic Nodes
+ for t in topics:
+ t_group = meta.get(t.directory, {}).get("group", "Other")
+ nodes.append({
+ "id": f"topic:{t.directory}",
+ "label": t.title,
+ "group": "Topic Hub",
+ "section": t_group,
+ "val": 16,
+ "color": GROUP_COLORS.get(t_group, DIFFICULTY_COLORS["Topic"]),
+ "url": f"./{t.directory}/README.md",
+ "category": t.title,
+ "type": "topic"
+ })
+
+ # Path to Node ID map and Title to Path map
+ path_to_id = {q.path.resolve(): f"q:{q.id}" for q in questions}
+ title_to_path_map = {q.title.strip().lower(): q.path.resolve() for q in questions}
+ for q in questions:
+ title_to_path_map[f"q{q.id}"] = q.path.resolve()
+ title_to_path_map[f"question {q.id}"] = q.path.resolve()
+ title_to_path_map[f"#{q.id}"] = q.path.resolve()
+
+ # 2. Add Question Nodes and Topic-to-Question Edges
+ for q in questions:
+ node_id = f"q:{q.id}"
+ topic_dir = q.path.parent.name
+ topic_node_id = f"topic:{topic_dir}"
+ t_group = meta.get(topic_dir, {}).get("group", "Other")
+
+ nodes.append({
+ "id": node_id,
+ "label": f"#{q.id} {q.title}",
+ "title": q.title,
+ "group": q.difficulty,
+ "section": t_group,
+ "val": 6 if q.difficulty == "Advanced" else (4 if q.difficulty == "Intermediate" else 3),
+ "color": DIFFICULTY_COLORS.get(q.difficulty, "#3b82f6"),
+ "url": f"./{q.path.relative_to(repo_root)}",
+ "category": q.category,
+ "difficulty": q.difficulty,
+ "tags": q.tags,
+ "type": "question"
+ })
+
+ # Connect Question to its Topic Node
+ edge_key = (topic_node_id, node_id, "topic")
+ if edge_key not in edge_set:
+ edge_set.add(edge_key)
+ edges.append({
+ "source": topic_node_id,
+ "target": node_id,
+ "type": "topic-link",
+ "color": "rgba(6, 182, 212, 0.4)"
+ })
+
+ # 3. Extract Explicit Markdown Links and [[wikilinks]] between Questions
+ for linked_path in extract_internal_links(q.path, q.body, title_to_path_map):
+ if linked_path in path_to_id:
+ target_id = path_to_id[linked_path]
+ e_key = (node_id, target_id, "cross-link")
+ if e_key not in edge_set and (target_id, node_id, "cross-link") not in edge_set:
+ edge_set.add(e_key)
+ edges.append({
+ "source": node_id,
+ "target": target_id,
+ "type": "cross-link",
+ "color": "rgba(59, 130, 246, 0.6)"
+ })
+
+ # 4. Connect Questions sharing identical specific tags (Tag Similarity Edges)
+ tag_map: dict[str, list[str]] = {}
+ for q in questions:
+ for tag in q.tags:
+ if tag in {"devops", "interview-questions"}:
+ continue # Skip generic tags
+ tag_map.setdefault(tag, []).append(f"q:{q.id}")
+
+ for tag, q_ids in tag_map.items():
+ if len(q_ids) > 1 and len(q_ids) <= 6:
+ for i in range(len(q_ids)):
+ for j in range(i + 1, len(q_ids)):
+ src, tgt = q_ids[i], q_ids[j]
+ e_key = (src, tgt, f"tag:{tag}")
+ if e_key not in edge_set and (tgt, src, f"tag:{tag}") not in edge_set:
+ edge_set.add(e_key)
+ edges.append({
+ "source": src,
+ "target": tgt,
+ "type": "tag-link",
+ "color": "rgba(245, 158, 11, 0.2)"
+ })
+
+ return {"nodes": nodes, "links": edges}
+
+
+HTML_TEMPLATE = """
+
+
+
+
+ DevOps & Cloud Engineering Knowledge Graph
+
+
+
+
+
+
+
+
+ QUESTION
+ BEGINNER
+
+
Node Info
+
+
+
+
+
+
+
+
+
+"""
+
+
+def main() -> int:
+ parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument("--output", "-o", default="docs/index.html", help="Target output HTML file path")
+ args = parser.parse_args()
+
+ graph_data = build_graph_data()
+
+ output_path = REPO_ROOT / args.output
+ output_path.parent.mkdir(parents=True, exist_ok=True)
+
+ # Escape HTML-significant characters in JSON to prevent script breakout
+ json_str = json.dumps(graph_data, indent=2)
+ json_str = json_str.replace('<', r'\u003c').replace('>', r'\u003e').replace('&', r'\u0026')
+
+ html_content = HTML_TEMPLATE.format(graph_json=json_str)
+ output_path.write_text(html_content, encoding="utf-8")
+
+ print(f"Successfully generated DevOps Knowledge Graph UI at: {output_path}")
+ print(f"Nodes: {len(graph_data['nodes'])}, Edges: {len(graph_data['links'])}")
+ return 0
+
+
+if __name__ == "__main__":
+ raise SystemExit(main())
diff --git a/scripts/inject_wikilinks.py b/scripts/inject_wikilinks.py
new file mode 100644
index 0000000..d76ff3d
--- /dev/null
+++ b/scripts/inject_wikilinks.py
@@ -0,0 +1,236 @@
+#!/usr/bin/env python3
+"""Inject cross-topic [[wikilinks]] between related question files.
+
+Scans all question files in the vault, identifies semantically related questions across
+different topics based on shared concepts, tags, and key terms, and appends a structured
+## Related Questions section with [[wikilinks]] (and relative markdown links for standard rendering).
+"""
+
+from __future__ import annotations
+
+import re
+import sys
+from pathlib import Path
+
+SCRIPTS_DIR = Path(__file__).resolve().parent
+sys.path.insert(0, str(SCRIPTS_DIR))
+
+from lib_content import REPO_ROOT, all_questions, load_topics
+
+# Map of related topic categories to query for cross-links
+RELATED_TOPICS_MAP: dict[str, list[str]] = {
+ "core-devops-concepts": ["cicd", "infrastructure-as-code", "devops-culture-and-practices"],
+ "docker": ["kubernetes", "container-orchestration-advanced", "devsecops"],
+ "kubernetes": ["docker", "container-orchestration-advanced", "monitoring-and-logging"],
+ "cicd": ["core-devops-concepts", "devops-tools-and-automation", "devsecops"],
+ "cloud-platforms": ["aws-engineering", "azure-engineering", "gcp-engineering"],
+ "infrastructure-as-code": ["configuration-management", "cloud-engineering", "cicd"],
+ "monitoring-and-logging": ["infrastructure-monitoring", "site-reliability-engineering", "slo-engineering"],
+ "security-and-compliance": ["devsecops", "secops", "network-security"],
+ "linux-administration": ["scripting-and-automation", "version-control", "configuration-management"],
+ "version-control": ["cicd", "devops-tools-and-automation", "linux-administration"],
+ "aws-engineering": ["cloud-platforms", "cloud-engineering", "kubernetes"],
+ "azure-engineering": ["cloud-platforms", "cloud-engineering", "kubernetes"],
+ "gcp-engineering": ["cloud-platforms", "cloud-engineering", "kubernetes"],
+ "site-reliability-engineering": ["slo-engineering", "sla-management", "incident-management"],
+ "platform-engineering": ["infrastructure-as-code", "cloud-native-architecture", "devops-tools-and-automation"],
+ "scripting-and-automation": ["linux-administration", "infrastructure-as-code", "cicd"],
+ "interview-experience": ["core-devops-concepts", "cicd", "site-reliability-engineering"],
+}
+
+
+def build_cross_link_map(topics, questions) -> dict[int, list[int]]:
+ """Build cross-links based on semantic metadata: tags, category, and shared terms.
+
+ Validates complete coverage and fails loudly on unmapped topics or missing targets.
+ """
+ # Build topic -> questions lookup
+ topic_to_questions = {t.directory: t.questions for t in topics}
+
+ # Validate all RELATED_TOPICS_MAP source topics exist
+ unmapped_sources = set()
+ for source_topic in RELATED_TOPICS_MAP.keys():
+ if source_topic not in topic_to_questions or not topic_to_questions[source_topic]:
+ unmapped_sources.add(source_topic)
+
+ # Validate all target topics in RELATED_TOPICS_MAP exist
+ unmapped_targets = set()
+ for source_topic, target_list in RELATED_TOPICS_MAP.items():
+ for target_topic in target_list:
+ if target_topic not in topic_to_questions or not topic_to_questions[target_topic]:
+ unmapped_targets.add(target_topic)
+
+ # Fail loudly if unmapped topics are found
+ if unmapped_sources or unmapped_targets:
+ error_msg = "Cross-link mapping validation failed:\n"
+ if unmapped_sources:
+ error_msg += f" Unmapped source topics: {sorted(unmapped_sources)}\n"
+ if unmapped_targets:
+ error_msg += f" Unmapped target topics: {sorted(unmapped_targets)}\n"
+ raise SystemExit(error_msg)
+
+ cross_map: dict[int, list[int]] = {}
+
+ for q in questions:
+ t_slug = q.topic_dir
+
+ # Get related topic slugs from map, or default to common foundation topics
+ rel_slugs = RELATED_TOPICS_MAP.get(
+ t_slug, ["core-devops-concepts", "cicd", "docker"]
+ )
+
+ # Find semantically related questions from target topics
+ candidates = []
+ for target_slug in rel_slugs:
+ if target_slug not in topic_to_questions:
+ continue
+
+ target_questions = topic_to_questions[target_slug]
+
+ # Score each target question by semantic similarity
+ for tq in target_questions:
+ if tq.id == q.id:
+ continue
+
+ score = 0
+
+ # Shared tags (highest weight)
+ q_tags_set = set(tag.lower() for tag in q.tags)
+ tq_tags_set = set(tag.lower() for tag in tq.tags)
+ shared_tags = q_tags_set & tq_tags_set
+ score += len(shared_tags) * 3
+
+ # Same category
+ if q.category.lower() == tq.category.lower():
+ score += 2
+
+ # Shared terms in title/body (basic keyword matching)
+ q_terms = set(q.title.lower().split()) | set(q.body.lower().split()[:100])
+ tq_terms = set(tq.title.lower().split()) | set(tq.body.lower().split()[:100])
+ # Filter out common stopwords
+ stopwords = {'the', 'a', 'an', 'in', 'on', 'at', 'to', 'for', 'of', 'and', 'or', 'is', 'are', 'was', 'were', 'what', 'how', 'when', 'where', 'why', 'which', 'do', 'does'}
+ q_terms = {t for t in q_terms if len(t) > 3 and t not in stopwords}
+ tq_terms = {t for t in tq_terms if len(t) > 3 and t not in stopwords}
+ shared_terms = q_terms & tq_terms
+ score += min(len(shared_terms), 5) # Cap term bonus
+
+ if score > 0:
+ candidates.append((score, tq.id))
+
+ # Sort by score (descending) and pick top 3
+ candidates.sort(key=lambda x: x[0], reverse=True)
+ cross_map[q.id] = [cand_id for score, cand_id in candidates[:3]]
+
+ return cross_map
+
+
+def main():
+ topics = load_topics(REPO_ROOT)
+ questions = all_questions(topics)
+
+ # Validate question IDs before building any maps
+ invalid_ids = []
+ duplicate_ids = {}
+ seen_ids = set()
+
+ for q in questions:
+ # Check for missing, non-numeric, or sentinel -1 IDs
+ if q.id is None or q.id == -1:
+ invalid_ids.append(f"{q.path}: ID is {q.id} (missing or sentinel)")
+ elif not isinstance(q.id, int):
+ invalid_ids.append(f"{q.path}: ID is non-integer: {q.id}")
+
+ # Check for duplicate IDs
+ if q.id in seen_ids:
+ duplicate_ids.setdefault(q.id, []).append(q.path)
+ else:
+ seen_ids.add(q.id)
+
+ # Fail loudly if validation errors found
+ if invalid_ids or duplicate_ids:
+ error_msg = "Question ID validation failed:\n"
+ if invalid_ids:
+ error_msg += "\nInvalid IDs:\n"
+ for entry in invalid_ids:
+ error_msg += f" - {entry}\n"
+ if duplicate_ids:
+ error_msg += "\nDuplicate IDs:\n"
+ for qid, paths in duplicate_ids.items():
+ error_msg += f" ID {qid} appears in:\n"
+ for p in paths:
+ error_msg += f" - {p}\n"
+ raise SystemExit(error_msg)
+
+ id_to_question = {q.id: q for q in questions}
+ cross_link_map = build_cross_link_map(topics, questions)
+
+ modified_count = 0
+ for q_id, target_ids in cross_link_map.items():
+ if q_id not in id_to_question:
+ continue
+
+ q = id_to_question[q_id]
+
+ # Build wikilink list items
+ wikilink_items = []
+ for tid in target_ids:
+ if tid in id_to_question:
+ target_q = id_to_question[tid]
+ rel_path = f"../{target_q.path.parent.name}/{target_q.filename}"
+ # Wikilink format [[Title]] + standard markdown link format
+ wikilink_items.append(
+ f"- [[{target_q.title}]] (`#{target_q.id}`): [{target_q.title}]({rel_path})"
+ )
+
+ if not wikilink_items:
+ continue
+
+ content = q.path.read_text(encoding="utf-8")
+
+ # Markers for generated content
+ begin_marker = ""
+ end_marker = ""
+
+ # Build the generated section with markers
+ # Blank lines around the markers keep the block Prettier-clean.
+ generated_block = (
+ f"{begin_marker}\n\n"
+ f"## Related Concepts\n\n"
+ + "\n".join(wikilink_items) + "\n\n"
+ f"{end_marker}"
+ )
+
+ # Check if a marked block already exists (replace it)
+ if begin_marker in content and end_marker in content:
+ # Replace existing marked block
+ pattern = re.compile(
+ re.escape(begin_marker) + r".*?" + re.escape(end_marker),
+ re.DOTALL
+ )
+ new_content = pattern.sub(generated_block, content)
+
+ # Check for unmarked Related Concepts/Questions section (fail)
+ elif "## Related Concepts" in content or "## Related Questions" in content:
+ # Unmarked manual section - fail to avoid overwriting
+ raise SystemExit(
+ f"Error: {q.path} contains an unmarked '## Related Concepts' or '## Related Questions' section.\n"
+ f"Please add markers {begin_marker} / {end_marker} or remove the section."
+ )
+
+ else:
+ # No existing section - insert before footer
+ footer_marker = "---"
+ if footer_marker in content:
+ parts = content.rsplit(footer_marker, 1)
+ new_content = parts[0] + generated_block + "\n\n" + footer_marker + parts[1]
+ else:
+ new_content = content + "\n\n" + generated_block + "\n"
+
+ q.path.write_text(new_content, encoding="utf-8")
+ modified_count += 1
+
+ print(f"Successfully processed {len(cross_link_map)} question mappings (injected into {modified_count} files).")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/scripts/validate_content.py b/scripts/validate_content.py
index bdc5581..f261057 100644
--- a/scripts/validate_content.py
+++ b/scripts/validate_content.py
@@ -151,7 +151,7 @@ def check_indexes(topics, errors: list[str]) -> None:
def check_orphan_files(errors: list[str]) -> None:
"""Catch topic directories that exist on disk but are not registered, and bad filenames."""
registered = set(topic_meta())
- skip = {"scripts", ".git", ".github", "node_modules", "DevOps-Interview-Guide"}
+ skip = {"scripts", "docs", ".git", ".github", "node_modules", "DevOps-Interview-Guide"}
for entry in sorted(p for p in REPO_ROOT.iterdir() if p.is_dir()):
if entry.name in skip or entry.name.startswith("."):
continue
diff --git a/secops/how-do-you-run-a-security-incident-response.md b/secops/how-do-you-run-a-security-incident-response.md
index f1e83e3..c167037 100644
--- a/secops/how-do-you-run-a-security-incident-response.md
+++ b/secops/how-do-you-run-a-security-incident-response.md
@@ -48,6 +48,16 @@ Timeline discipline - every entry timestamped in UTC, source noted
- Mention the 72-hour GDPR notification window and that the legal determination is not engineering's call.
- Expect: "the attacker still has access, do you cut them off now?" - a judgement call between stopping damage and losing visibility, made by the commander with legal input, not unilaterally.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to SecOps and Threat Detection](./README.md) · [All topics](../README.md)
diff --git a/secops/what-does-a-security-operations-center-soc-do.md b/secops/what-does-a-security-operations-center-soc-do.md
index 6508890..ad1ff84 100644
--- a/secops/what-does-a-security-operations-center-soc-do.md
+++ b/secops/what-does-a-security-operations-center-soc-do.md
@@ -31,6 +31,16 @@ tags:
- Naming MTTD/MTTC and detection coverage shows you think about SOC effectiveness, not just staffing.
- Good follow-up to be ready for: "what telemetry would you onboard first?" - identity provider and cloud audit logs, because almost every cloud incident is visible there.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to SecOps and Threat Detection](./README.md) · [All topics](../README.md)
diff --git a/secops/what-is-a-siem-and-how-do-you-make-one-useful.md b/secops/what-is-a-siem-and-how-do-you-make-one-useful.md
index e3778d6..654c90d 100644
--- a/secops/what-is-a-siem-and-how-do-you-make-one-useful.md
+++ b/secops/what-is-a-siem-and-how-do-you-make-one-useful.md
@@ -64,6 +64,16 @@ tags:
- Detection-as-code with ATT&CK tagging and a linked playbook is the practice-level detail interviewers reward.
- Expect a cost question: explain hot/cold tiering and which sources you would route where.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to SecOps and Threat Detection](./README.md) · [All topics](../README.md)
diff --git a/secops/what-is-detection-engineering.md b/secops/what-is-detection-engineering.md
index 2ecc070..cda3281 100644
--- a/secops/what-is-detection-engineering.md
+++ b/secops/what-is-detection-engineering.md
@@ -54,6 +54,16 @@ stratus detonate aws.execution.ec2-user-data
- Naming Atomic Red Team or Stratus Red Team for validation, and per-rule precision tracking, marks real experience.
- Expect: "how do you know what you cannot see?" - ATT&CK coverage mapping, and treating telemetry gaps as platform work.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to SecOps and Threat Detection](./README.md) · [All topics](../README.md)
diff --git a/secops/what-is-edr-and-how-does-it-differ-from-antivirus.md b/secops/what-is-edr-and-how-does-it-differ-from-antivirus.md
index c0b33f5..e2e3555 100644
--- a/secops/what-is-edr-and-how-does-it-differ-from-antivirus.md
+++ b/secops/what-is-edr-and-how-does-it-differ-from-antivirus.md
@@ -37,6 +37,16 @@ tags:
- Mention eBPF sensors and container attribution - it shows you have deployed this on modern infrastructure, not just laptops.
- Expect: "do you need EDR if hosts are immutable and short-lived?" - yes for detection and forensics, but response shifts to rebuild.
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[What is Docker Compose?]] (`#9`): [What is Docker Compose?](../docker/what-is-docker-compose.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+
+
+
---
[⬅ Back to SecOps and Threat Detection](./README.md) · [All topics](../README.md)
diff --git a/secops/what-is-soar-and-what-should-you-automate-first.md b/secops/what-is-soar-and-what-should-you-automate-first.md
index 8440fa0..1ce61b2 100644
--- a/secops/what-is-soar-and-what-should-you-automate-first.md
+++ b/secops/what-is-soar-and-what-should-you-automate-first.md
@@ -63,6 +63,16 @@ steps:
- Raise the false-positive multiplier yourself - it is the risk interviewers want to hear you name.
- Expect: "would you auto-disable a user account?" - only with a precise detection, a reversible action, an audit trail, and a documented unlock path.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to SecOps and Threat Detection](./README.md) · [All topics](../README.md)
diff --git a/secops/what-is-the-mitre-att-and-ck-framework.md b/secops/what-is-the-mitre-att-and-ck-framework.md
index 5a7789e..9601d00 100644
--- a/secops/what-is-the-mitre-att-and-ck-framework.md
+++ b/secops/what-is-the-mitre-att-and-ck-framework.md
@@ -48,6 +48,16 @@ T1530 Data from Cloud Storage Object ← mass GetObject on a data bucke
- Mention the Containers and Identity Provider matrices; it shows you have looked past the generic Enterprise view.
- Be honest about the coverage-percentage trap: weighted, telemetry-aware coverage beats a green heat map.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to SecOps and Threat Detection](./README.md) · [All topics](../README.md)
diff --git a/secops/what-is-threat-hunting.md b/secops/what-is-threat-hunting.md
index ca29bc9..9816c52 100644
--- a/secops/what-is-threat-hunting.md
+++ b/secops/what-is-threat-hunting.md
@@ -47,6 +47,16 @@ ORDER BY calls DESC;
- "A hunt that finds nothing still produces a detection or a telemetry gap" is a strong, mature framing.
- Expect: "how is this different from monitoring?" - monitoring answers known questions automatically; hunting asks new ones and then automates them.
+
+
+## Related Concepts
+
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+
+
+
---
[⬅ Back to SecOps and Threat Detection](./README.md) · [All topics](../README.md)
diff --git a/security-and-compliance/how-do-you-automate-compliance-checks-for-pci-dss-soc-2-hipaa-and-gdpr.md b/security-and-compliance/how-do-you-automate-compliance-checks-for-pci-dss-soc-2-hipaa-and-gdpr.md
index 42342bf..b40d263 100644
--- a/security-and-compliance/how-do-you-automate-compliance-checks-for-pci-dss-soc-2-hipaa-and-gdpr.md
+++ b/security-and-compliance/how-do-you-automate-compliance-checks-for-pci-dss-soc-2-hipaa-and-gdpr.md
@@ -144,6 +144,16 @@ aws s3api put-object-lock-configuration --bucket acme-audit-evidence \
- Mention audit-mode-then-enforce for new policies. Rolling out an enforcing policy across a live estate without an audit pass is a self-inflicted outage.
- Be explicit that risk assessments, vendor agreements, tested incident-response plans, and training records are not automatable. Claiming full automation reads as inexperience. See [what are security best practices in DevOps](./what-are-security-best-practices-in-devops.md).
+
+
+## Related Concepts
+
+- [[How do you manage TLS certificates in production?]] (`#491`): [How do you manage TLS certificates in production?](../network-security/how-do-you-manage-tls-certificates-in-production.md)
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+- [[What does a DevSecOps pipeline look like end to end?]] (`#161`): [What does a DevSecOps pipeline look like end to end?](../devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md)
+
+
+
---
[⬅ Back to Security and Compliance](./README.md) · [All topics](../README.md)
diff --git a/security-and-compliance/what-are-security-best-practices-in-devops.md b/security-and-compliance/what-are-security-best-practices-in-devops.md
index 92b1916..8d5d138 100644
--- a/security-and-compliance/what-are-security-best-practices-in-devops.md
+++ b/security-and-compliance/what-are-security-best-practices-in-devops.md
@@ -50,6 +50,16 @@ steps:
- "Treat CI/CD as production infrastructure" is a strong, senior-sounding point.
- Pair every practice with how you would verify it is actually in place.
+
+
+## Related Concepts
+
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+- [[How do you manage TLS certificates in production?]] (`#491`): [How do you manage TLS certificates in production?](../network-security/how-do-you-manage-tls-certificates-in-production.md)
+- [[What does a DevSecOps pipeline look like end to end?]] (`#161`): [What does a DevSecOps pipeline look like end to end?](../devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md)
+
+
+
---
[⬅ Back to Security and Compliance](./README.md) · [All topics](../README.md)
diff --git a/security-and-compliance/what-is-compliance-as-code.md b/security-and-compliance/what-is-compliance-as-code.md
index 8a45e7a..553b58f 100644
--- a/security-and-compliance/what-is-compliance-as-code.md
+++ b/security-and-compliance/what-is-compliance-as-code.md
@@ -50,6 +50,16 @@ conftest test terraform-plan.json --policy policy/ # gate in CI
- Explain defence in depth: the same rule in CI (fast feedback) and admission control (enforcement).
- Note that auto-remediation needs care; start in audit mode, measure, then enforce.
+
+
+## Related Concepts
+
+- [[How do you manage TLS certificates in production?]] (`#491`): [How do you manage TLS certificates in production?](../network-security/how-do-you-manage-tls-certificates-in-production.md)
+- [[What does a DevSecOps pipeline look like end to end?]] (`#161`): [What does a DevSecOps pipeline look like end to end?](../devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md)
+- [[What is the difference between SAST, DAST, IAST, and SCA?]] (`#162`): [What is the difference between SAST, DAST, IAST, and SCA?](../devsecops/what-is-the-difference-between-sast-dast-iast-and-sca.md)
+
+
+
---
[⬅ Back to Security and Compliance](./README.md) · [All topics](../README.md)
diff --git a/security-and-compliance/what-is-container-security.md b/security-and-compliance/what-is-container-security.md
index 6d17275..62d80e9 100644
--- a/security-and-compliance/what-is-container-security.md
+++ b/security-and-compliance/what-is-container-security.md
@@ -50,6 +50,16 @@ containers:
- Mounting `/var/run/docker.sock` is the classic dangerous pattern - name it.
- Mention supply chain: signing, SBOM, and admission policies that verify signatures.
+
+
+## Related Concepts
+
+- [[How do you manage TLS certificates in production?]] (`#491`): [How do you manage TLS certificates in production?](../network-security/how-do-you-manage-tls-certificates-in-production.md)
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+- [[What does a DevSecOps pipeline look like end to end?]] (`#161`): [What does a DevSecOps pipeline look like end to end?](../devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md)
+
+
+
---
[⬅ Back to Security and Compliance](./README.md) · [All topics](../README.md)
diff --git a/security-and-compliance/what-is-devsecops.md b/security-and-compliance/what-is-devsecops.md
index 7c94353..8d22eeb 100644
--- a/security-and-compliance/what-is-devsecops.md
+++ b/security-and-compliance/what-is-devsecops.md
@@ -53,6 +53,16 @@ security:
- Name the acronyms accurately: SAST, DAST, SCA, IAST, SBOM.
- The cultural answer matters as much as the tooling: security champions in each team, and blameless handling of vulnerabilities.
+
+
+## Related Concepts
+
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+- [[How do you manage TLS certificates in production?]] (`#491`): [How do you manage TLS certificates in production?](../network-security/how-do-you-manage-tls-certificates-in-production.md)
+- [[What does a DevSecOps pipeline look like end to end?]] (`#161`): [What does a DevSecOps pipeline look like end to end?](../devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md)
+
+
+
---
[⬅ Back to Security and Compliance](./README.md) · [All topics](../README.md)
diff --git a/security-and-compliance/what-is-infrastructure-security.md b/security-and-compliance/what-is-infrastructure-security.md
index d746ca6..e0ef6ac 100644
--- a/security-and-compliance/what-is-infrastructure-security.md
+++ b/security-and-compliance/what-is-infrastructure-security.md
@@ -57,6 +57,16 @@ resource "aws_security_group" "app" {
- Defence in depth and blast-radius reduction are the framing concepts.
- Have an opinion on the highest-leverage control: in cloud it is nearly always IAM.
+
+
+## Related Concepts
+
+- [[How do you manage TLS certificates in production?]] (`#491`): [How do you manage TLS certificates in production?](../network-security/how-do-you-manage-tls-certificates-in-production.md)
+- [[How do you rotate secrets without downtime?]] (`#429`): [How do you rotate secrets without downtime?](../devsecops/how-do-you-rotate-secrets-without-downtime.md)
+- [[What does a DevSecOps pipeline look like end to end?]] (`#161`): [What does a DevSecOps pipeline look like end to end?](../devsecops/what-does-a-devsecops-pipeline-look-like-end-to-end.md)
+
+
+
---
[⬅ Back to Security and Compliance](./README.md) · [All topics](../README.md)
diff --git a/serverless-architecture/how-do-you-build-a-ci-cd-pipeline-for-a-serverless-application.md b/serverless-architecture/how-do-you-build-a-ci-cd-pipeline-for-a-serverless-application.md
index b6943e8..f95e827 100644
--- a/serverless-architecture/how-do-you-build-a-ci-cd-pipeline-for-a-serverless-application.md
+++ b/serverless-architecture/how-do-you-build-a-ci-cd-pipeline-for-a-serverless-application.md
@@ -135,6 +135,16 @@ jobs:
- Note the destructive-update trap - renaming a stateful resource can delete it - and that stateful resources often belong in a separate, slower-changing stack.
- Close on what you watch after deploy: errors, throttles, duration, DLQ depth, and alarms wired to the rollback rather than a person on a dashboard. See [what are serverless best practices](./what-are-serverless-best-practices.md).
+
+
+## Related Concepts
+
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[How do you design CI/CD for a microservices architecture?]] (`#400`): [How do you design CI/CD for a microservices architecture?](../cicd/how-do-you-design-ci-cd-for-a-microservices-architecture.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Serverless Architecture](./README.md) · [All topics](../README.md)
diff --git a/serverless-architecture/how-do-you-design-a-serverless-system-for-production.md b/serverless-architecture/how-do-you-design-a-serverless-system-for-production.md
index b7d8969..8489333 100644
--- a/serverless-architecture/how-do-you-design-a-serverless-system-for-production.md
+++ b/serverless-architecture/how-do-you-design-a-serverless-system-for-production.md
@@ -131,6 +131,16 @@ Resources:
- Be measured about cold starts: mitigate on the user-facing path, and be willing to say a container service is the better choice for steady latency-critical traffic.
- Close on cost and blast radius - per-invocation billing, billing alarms, and never letting a function write to the bucket that triggers it. The recursive-trigger story is a well-known failure.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Serverless Architecture](./README.md) · [All topics](../README.md)
diff --git a/serverless-architecture/how-do-you-monitor-and-debug-a-serverless-application.md b/serverless-architecture/how-do-you-monitor-and-debug-a-serverless-application.md
index 4224bf7..66051c7 100644
--- a/serverless-architecture/how-do-you-monitor-and-debug-a-serverless-application.md
+++ b/serverless-architecture/how-do-you-monitor-and-debug-a-serverless-application.md
@@ -144,6 +144,16 @@ CloudWatch Logs Insights - the query you actually run during an incident
- Bring up the downstream connection-limit problem (1,000 concurrent functions, 1,000 database connections) and RDS Proxy plus clients initialised outside the handler.
- Close on cost: log retention and sampling, because serverless observability bills can exceed the compute bill and that is a real engineering decision.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Serverless Architecture](./README.md) · [All topics](../README.md)
diff --git a/serverless-architecture/what-are-serverless-best-practices.md b/serverless-architecture/what-are-serverless-best-practices.md
index 0ac40ae..ac04c0d 100644
--- a/serverless-architecture/what-are-serverless-best-practices.md
+++ b/serverless-architecture/what-are-serverless-best-practices.md
@@ -52,6 +52,16 @@ tags:
- Idempotency is non-negotiable and interviewers listen for it.
- Global-scope initialisation is the single easiest performance win; it is a good concrete detail.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to Serverless Architecture](./README.md) · [All topics](../README.md)
diff --git a/serverless-architecture/what-are-the-benefits-of-serverless.md b/serverless-architecture/what-are-the-benefits-of-serverless.md
index f547f9d..7ee3029 100644
--- a/serverless-architecture/what-are-the-benefits-of-serverless.md
+++ b/serverless-architecture/what-are-the-benefits-of-serverless.md
@@ -46,6 +46,16 @@ tags:
- Per-function IAM roles as practical least privilege is an underrated benefit worth naming.
- Balance the answer with the cost inversion point; unqualified enthusiasm reads as inexperience.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to Serverless Architecture](./README.md) · [All topics](../README.md)
diff --git a/serverless-architecture/what-is-aws-lambda.md b/serverless-architecture/what-is-aws-lambda.md
index 84b2458..294da66 100644
--- a/serverless-architecture/what-is-aws-lambda.md
+++ b/serverless-architecture/what-is-aws-lambda.md
@@ -50,6 +50,16 @@ def handler(event, context):
- Memory tuning affecting CPU (and therefore cost) surprises people; it is a strong detail.
- Idempotency, DLQs, and retry behaviour show you have run Lambda in production, not just deployed a demo.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to Serverless Architecture](./README.md) · [All topics](../README.md)
diff --git a/serverless-architecture/what-is-function-as-a-service-faas.md b/serverless-architecture/what-is-function-as-a-service-faas.md
index 990589c..ee8d75e 100644
--- a/serverless-architecture/what-is-function-as-a-service-faas.md
+++ b/serverless-architecture/what-is-function-as-a-service-faas.md
@@ -39,6 +39,16 @@ tags:
- Cloudflare Workers' isolate model is a good example of how cold starts are being engineered away.
- Knative or OpenFaaS is the answer if asked about FaaS without vendor lock-in.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to Serverless Architecture](./README.md) · [All topics](../README.md)
diff --git a/serverless-architecture/what-is-serverless-computing.md b/serverless-architecture/what-is-serverless-computing.md
index d8c27f6..e66cd05 100644
--- a/serverless-architecture/what-is-serverless-computing.md
+++ b/serverless-architecture/what-is-serverless-computing.md
@@ -39,6 +39,16 @@ tags:
- Cold starts are the guaranteed follow-up; know provisioned concurrency, smaller packages, and lighter runtimes as mitigations.
- Be able to name when serverless is the _wrong_ answer: steady high-volume compute, long-running jobs, and latency-critical paths.
+
+
+## Related Concepts
+
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+- [[How do you promote a release across dev, staging, and production?]] (`#399`): [How do you promote a release across dev, staging, and production?](../cicd/how-do-you-promote-a-release-across-dev-staging-and-production.md)
+- [[What is Docker Compose?]] (`#9`): [What is Docker Compose?](../docker/what-is-docker-compose.md)
+
+
+
---
[⬅ Back to Serverless Architecture](./README.md) · [All topics](../README.md)
diff --git a/site-reliability-engineering/how-do-you-design-alerts-that-page-a-human.md b/site-reliability-engineering/how-do-you-design-alerts-that-page-a-human.md
index e0d2567..3a662d4 100644
--- a/site-reliability-engineering/how-do-you-design-alerts-that-page-a-human.md
+++ b/site-reliability-engineering/how-do-you-design-alerts-that-page-a-human.md
@@ -63,6 +63,16 @@ groups:
- Give a target for pages per shift and say that deleting a non-actionable alert is a valid fix.
- Expect: "what would you do with an alert that fires weekly and is never real?" - delete or retune it, and say so without hedging.
+
+
+## Related Concepts
+
+- [[How do you choose an SLO target?]] (`#177`): [How do you choose an SLO target?](../slo-engineering/how-do-you-choose-an-slo-target.md)
+- [[What is multi-window multi-burn-rate alerting?]] (`#178`): [What is multi-window multi-burn-rate alerting?](../slo-engineering/what-is-multi-window-multi-burn-rate-alerting.md)
+- [[How do you measure a latency SLI correctly?]] (`#179`): [How do you measure a latency SLI correctly?](../slo-engineering/how-do-you-measure-a-latency-sli-correctly.md)
+
+
+
---
[⬅ Back to Site Reliability Engineering (SRE)](./README.md) · [All topics](../README.md)
diff --git a/site-reliability-engineering/how-do-you-do-capacity-planning.md b/site-reliability-engineering/how-do-you-do-capacity-planning.md
index 74f23fc..c92dbde 100644
--- a/site-reliability-engineering/how-do-you-do-capacity-planning.md
+++ b/site-reliability-engineering/how-do-you-do-capacity-planning.md
@@ -59,6 +59,16 @@ Verify: replay 33,800 rps against staging with production-shaped data before the
- "Autoscaling is not capacity planning" plus the quota point are the two things interviewers listen for.
- Expect: "you scaled the app and it got slower" - the bottleneck moved downstream; describe modelling the whole chain.
+
+
+## Related Concepts
+
+- [[How do you choose an SLO target?]] (`#177`): [How do you choose an SLO target?](../slo-engineering/how-do-you-choose-an-slo-target.md)
+- [[How do you measure a latency SLI correctly?]] (`#179`): [How do you measure a latency SLI correctly?](../slo-engineering/how-do-you-measure-a-latency-sli-correctly.md)
+- [[How do you define SLOs for batch and asynchronous workloads?]] (`#181`): [How do you define SLOs for batch and asynchronous workloads?](../slo-engineering/how-do-you-define-slos-for-batch-and-asynchronous-workloads.md)
+
+
+
---
[⬅ Back to Site Reliability Engineering (SRE)](./README.md) · [All topics](../README.md)
diff --git a/site-reliability-engineering/what-are-service-level-indicators-slis.md b/site-reliability-engineering/what-are-service-level-indicators-slis.md
index a40946e..a26e7ee 100644
--- a/site-reliability-engineering/what-are-service-level-indicators-slis.md
+++ b/site-reliability-engineering/what-are-service-level-indicators-slis.md
@@ -44,6 +44,16 @@ sum(rate(http_request_duration_seconds_bucket{le="0.3",job="api"}[5m]))
- Latency as a threshold proportion rather than a percentile is a subtle, high-signal point.
- Be ready to say where you measure and why - closer to the user, always.
+
+
+## Related Concepts
+
+- [[How do you choose an SLO target?]] (`#177`): [How do you choose an SLO target?](../slo-engineering/how-do-you-choose-an-slo-target.md)
+- [[What is multi-window multi-burn-rate alerting?]] (`#178`): [What is multi-window multi-burn-rate alerting?](../slo-engineering/what-is-multi-window-multi-burn-rate-alerting.md)
+- [[How do you measure a latency SLI correctly?]] (`#179`): [How do you measure a latency SLI correctly?](../slo-engineering/how-do-you-measure-a-latency-sli-correctly.md)
+
+
+
---
[⬅ Back to Site Reliability Engineering (SRE)](./README.md) · [All topics](../README.md)
diff --git a/site-reliability-engineering/what-are-service-level-objectives-slos.md b/site-reliability-engineering/what-are-service-level-objectives-slos.md
index 3d4a0de..6c6bc5f 100644
--- a/site-reliability-engineering/what-are-service-level-objectives-slos.md
+++ b/site-reliability-engineering/what-are-service-level-objectives-slos.md
@@ -50,6 +50,16 @@ sum(rate(http_requests_total{job="api",status!~"5.."}[28d]))
- Multi-window burn-rate alerting is the detail that shows you have implemented SLOs, not just read about them.
- Emphasise measuring from the user's perspective; infrastructure-based SLOs are the common mistake.
+
+
+## Related Concepts
+
+- [[How do you choose an SLO target?]] (`#177`): [How do you choose an SLO target?](../slo-engineering/how-do-you-choose-an-slo-target.md)
+- [[What is multi-window multi-burn-rate alerting?]] (`#178`): [What is multi-window multi-burn-rate alerting?](../slo-engineering/what-is-multi-window-multi-burn-rate-alerting.md)
+- [[How do you measure a latency SLI correctly?]] (`#179`): [How do you measure a latency SLI correctly?](../slo-engineering/how-do-you-measure-a-latency-sli-correctly.md)
+
+
+
---
[⬅ Back to Site Reliability Engineering (SRE)](./README.md) · [All topics](../README.md)
diff --git a/site-reliability-engineering/what-is-a-production-readiness-review.md b/site-reliability-engineering/what-is-a-production-readiness-review.md
index 6237883..743b19e 100644
--- a/site-reliability-engineering/what-is-a-production-readiness-review.md
+++ b/site-reliability-engineering/what-is-a-production-readiness-review.md
@@ -65,6 +65,16 @@ degradation for provider timeouts. Re-review in 2 weeks; capacity item tracked f
- "Ask for evidence, not assurances" and automating the mechanical checks are the two strong points.
- Expect: "what if the team refuses?" - tie support and platform features to it, escalate on risk, and never silently accept an unowned service.
+
+
+## Related Concepts
+
+- [[How do you choose an SLO target?]] (`#177`): [How do you choose an SLO target?](../slo-engineering/how-do-you-choose-an-slo-target.md)
+- [[What is multi-window multi-burn-rate alerting?]] (`#178`): [What is multi-window multi-burn-rate alerting?](../slo-engineering/what-is-multi-window-multi-burn-rate-alerting.md)
+- [[How do you define SLOs for batch and asynchronous workloads?]] (`#181`): [How do you define SLOs for batch and asynchronous workloads?](../slo-engineering/how-do-you-define-slos-for-batch-and-asynchronous-workloads.md)
+
+
+
---
[⬅ Back to Site Reliability Engineering (SRE)](./README.md) · [All topics](../README.md)
diff --git a/site-reliability-engineering/what-is-error-budget.md b/site-reliability-engineering/what-is-error-budget.md
index c3c7aee..cfef165 100644
--- a/site-reliability-engineering/what-is-error-budget.md
+++ b/site-reliability-engineering/what-is-error-budget.md
@@ -43,6 +43,16 @@ Without an agreed consequence, the error budget is just a dashboard.
- Multi-window burn-rate alerting is the implementation detail to name.
- "Consistently unspent budget means the target is wrong" is a nuanced point that lands well.
+
+
+## Related Concepts
+
+- [[How do you choose an SLO target?]] (`#177`): [How do you choose an SLO target?](../slo-engineering/how-do-you-choose-an-slo-target.md)
+- [[What is multi-window multi-burn-rate alerting?]] (`#178`): [What is multi-window multi-burn-rate alerting?](../slo-engineering/what-is-multi-window-multi-burn-rate-alerting.md)
+- [[How do you measure a latency SLI correctly?]] (`#179`): [How do you measure a latency SLI correctly?](../slo-engineering/how-do-you-measure-a-latency-sli-correctly.md)
+
+
+
---
[⬅ Back to Site Reliability Engineering (SRE)](./README.md) · [All topics](../README.md)
diff --git a/site-reliability-engineering/what-is-site-reliability-engineering.md b/site-reliability-engineering/what-is-site-reliability-engineering.md
index efd1179..4f7e5eb 100644
--- a/site-reliability-engineering/what-is-site-reliability-engineering.md
+++ b/site-reliability-engineering/what-is-site-reliability-engineering.md
@@ -36,6 +36,16 @@ tags:
- "100% is the wrong reliability target" is a genuinely SRE thing to say, and true: the cost curve is exponential.
- Mention the 50% toil cap; interviewers listen for whether you know SRE has structural rules, not just principles.
+
+
+## Related Concepts
+
+- [[How do you choose an SLO target?]] (`#177`): [How do you choose an SLO target?](../slo-engineering/how-do-you-choose-an-slo-target.md)
+- [[What is multi-window multi-burn-rate alerting?]] (`#178`): [What is multi-window multi-burn-rate alerting?](../slo-engineering/what-is-multi-window-multi-burn-rate-alerting.md)
+- [[How do you measure a latency SLI correctly?]] (`#179`): [How do you measure a latency SLI correctly?](../slo-engineering/how-do-you-measure-a-latency-sli-correctly.md)
+
+
+
---
[⬅ Back to Site Reliability Engineering (SRE)](./README.md) · [All topics](../README.md)
diff --git a/site-reliability-engineering/what-is-the-difference-between-sre-devops-and-platform-engineering.md b/site-reliability-engineering/what-is-the-difference-between-sre-devops-and-platform-engineering.md
index 2fc492a..c8e6979 100644
--- a/site-reliability-engineering/what-is-the-difference-between-sre-devops-and-platform-engineering.md
+++ b/site-reliability-engineering/what-is-the-difference-between-sre-devops-and-platform-engineering.md
@@ -39,6 +39,16 @@ tags:
- Give one artefact per discipline (error budget, golden path, CI/CD pipeline) to make the distinction tangible.
- Expect: "which are you?" - answer with the work you actually do rather than the title, and name the anti-pattern you would fix first.
+
+
+## Related Concepts
+
+- [[How do you choose an SLO target?]] (`#177`): [How do you choose an SLO target?](../slo-engineering/how-do-you-choose-an-slo-target.md)
+- [[What is multi-window multi-burn-rate alerting?]] (`#178`): [What is multi-window multi-burn-rate alerting?](../slo-engineering/what-is-multi-window-multi-burn-rate-alerting.md)
+- [[How do you measure a latency SLI correctly?]] (`#179`): [How do you measure a latency SLI correctly?](../slo-engineering/how-do-you-measure-a-latency-sli-correctly.md)
+
+
+
---
[⬅ Back to Site Reliability Engineering (SRE)](./README.md) · [All topics](../README.md)
diff --git a/site-reliability-engineering/what-is-toil-in-sre.md b/site-reliability-engineering/what-is-toil-in-sre.md
index 7990063..7e83428 100644
--- a/site-reliability-engineering/what-is-toil-in-sre.md
+++ b/site-reliability-engineering/what-is-toil-in-sre.md
@@ -44,6 +44,16 @@ tags:
- "Eliminate, then automate, then delegate to self-service" is a good escalation order.
- Have a concrete example: what toil you measured, what you automated, and how many hours a week it returned.
+
+
+## Related Concepts
+
+- [[How do you choose an SLO target?]] (`#177`): [How do you choose an SLO target?](../slo-engineering/how-do-you-choose-an-slo-target.md)
+- [[How do you measure a latency SLI correctly?]] (`#179`): [How do you measure a latency SLI correctly?](../slo-engineering/how-do-you-measure-a-latency-sli-correctly.md)
+- [[How do you define SLOs for batch and asynchronous workloads?]] (`#181`): [How do you define SLOs for batch and asynchronous workloads?](../slo-engineering/how-do-you-define-slos-for-batch-and-asynchronous-workloads.md)
+
+
+
---
[⬅ Back to Site Reliability Engineering (SRE)](./README.md) · [All topics](../README.md)
diff --git a/sla-management/how-do-service-credits-work.md b/sla-management/how-do-service-credits-work.md
index 39489b9..db39f68 100644
--- a/sla-management/how-do-service-credits-work.md
+++ b/sla-management/how-do-service-credits-work.md
@@ -54,6 +54,16 @@ Unaffected regions: no credit. Being able to prove this saved ~78% of the exposu
- The strongest engineering point: per-tenant/per-region measurement limits exposure, so blast-radius reduction has a direct financial return.
- Expect: "was it a breach if nobody claimed?" - yes, and you should track it internally regardless.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+
+
+
---
[⬅ Back to SLA Management](./README.md) · [All topics](../README.md)
diff --git a/sla-management/how-do-you-calculate-allowed-downtime-for-an-availability-target.md b/sla-management/how-do-you-calculate-allowed-downtime-for-an-availability-target.md
index 8880d4f..e3160ba 100644
--- a/sla-management/how-do-you-calculate-allowed-downtime-for-an-availability-target.md
+++ b/sla-management/how-do-you-calculate-allowed-downtime-for-an-availability-target.md
@@ -55,6 +55,16 @@ budget_minutes(99.99, 365) # 52.56 minutes per year
- Ask which window and which definition (time or request) before answering - that question is itself the signal.
- Expect: "can you offer 99.99% on top of three 99.9% dependencies?" - no, not serially; the answer is redundancy or degradation.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to SLA Management](./README.md) · [All topics](../README.md)
diff --git a/sla-management/how-do-you-calculate-composite-availability-across-dependencies.md b/sla-management/how-do-you-calculate-composite-availability-across-dependencies.md
index c883551..938046b 100644
--- a/sla-management/how-do-you-calculate-composite-availability-across-dependencies.md
+++ b/sla-management/how-do-you-calculate-composite-availability-across-dependencies.md
@@ -54,6 +54,16 @@ serial(0.9999, 0.9999, parallel(0.9995), parallel(0.9995), 0.9999) # ~99.97%
- Volunteer the correlated-failure caveat; that is what separates an engineer from a spreadsheet.
- The strong close: "the cheapest additional nine usually comes from making a dependency optional, not from adding replicas."
+
+
+## Related Concepts
+
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to SLA Management](./README.md) · [All topics](../README.md)
diff --git a/sla-management/how-do-you-report-sla-compliance-to-customers.md b/sla-management/how-do-you-report-sla-compliance-to-customers.md
index 1434827..77770e0 100644
--- a/sla-management/how-do-you-report-sla-compliance-to-customers.md
+++ b/sla-management/how-do-you-report-sla-compliance-to-customers.md
@@ -48,6 +48,16 @@ Excluded: 2026-02-02 01:00-02:00 UTC announced maintenance (notified 2026-01-24)
- Emphasise reporting at contractual granularity - global averages hiding regional outages is the trap.
- Expect: "the customer's numbers disagree with yours" - explain vantage points, keep raw data, and concede when their evidence is sound.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to SLA Management](./README.md) · [All topics](../README.md)
diff --git a/sla-management/what-belongs-in-a-well-written-sla.md b/sla-management/what-belongs-in-a-well-written-sla.md
index 1af4712..3bb45cf 100644
--- a/sla-management/what-belongs-in-a-well-written-sla.md
+++ b/sla-management/what-belongs-in-a-well-written-sla.md
@@ -42,6 +42,16 @@ tags:
- "Promise response times, not resolution times" is a crisp, credible detail.
- Expect: "sales wants 99.99% - what do you say?" Reference measured history, the dependency ceiling, what it would cost to reach, and offer a tiered alternative rather than a flat refusal.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+
+
+
---
[⬅ Back to SLA Management](./README.md) · [All topics](../README.md)
diff --git a/sla-management/what-do-you-do-when-you-breach-an-sla.md b/sla-management/what-do-you-do-when-you-breach-an-sla.md
index 66d8e34..ac1c3d4 100644
--- a/sla-management/what-do-you-do-when-you-breach-an-sla.md
+++ b/sla-management/what-do-you-do-when-you-breach-an-sla.md
@@ -47,6 +47,16 @@ Breach response checklist - run in this order
- Naming the termination-for-cause pattern shows you understand the contractual stakes beyond credits.
- Expect: "the month is already breached - does more downtime matter?" Say yes, explain rolling windows, and name the trust cost.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is CI/CD Pipeline?]] (`#16`): [What is CI/CD Pipeline?](../cicd/what-is-ci-cd-pipeline.md)
+- [[What is Jenkins?]] (`#17`): [What is Jenkins?](../cicd/what-is-jenkins.md)
+
+
+
---
[⬅ Back to SLA Management](./README.md) · [All topics](../README.md)
diff --git a/sla-management/what-is-the-difference-between-an-sla-an-slo-an-sli-and-an-ola.md b/sla-management/what-is-the-difference-between-an-sla-an-slo-an-sli-and-an-ola.md
index 64854bc..85f79b1 100644
--- a/sla-management/what-is-the-difference-between-an-sla-an-slo-an-sli-and-an-ola.md
+++ b/sla-management/what-is-the-difference-between-an-sla-an-slo-an-sli-and-an-ola.md
@@ -50,6 +50,16 @@ OLA platform team: 99.99% Kubernetes API and node capacity
- Volunteer the SLO-stricter-than-SLA buffer; few candidates mention it and it demonstrates real practice.
- Expect: "should internal services have SLAs?" - no, SLOs plus an error budget policy; explain why contracts internally backfire.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Delivery?]] (`#4`): [What is Continuous Delivery?](../core-devops-concepts/what-is-continuous-delivery.md)
+
+
+
---
[⬅ Back to SLA Management](./README.md) · [All topics](../README.md)
diff --git a/slo-engineering/how-do-you-choose-an-slo-target.md b/slo-engineering/how-do-you-choose-an-slo-target.md
index 5bbfb7b..a30e1f6 100644
--- a/slo-engineering/how-do-you-choose-an-slo-target.md
+++ b/slo-engineering/how-do-you-choose-an-slo-target.md
@@ -46,6 +46,16 @@ Result: 99.93% measured, no user complaints in the two worst weeks
- Say explicitly that 100% is the wrong target and explain why - no budget means no ability to ship.
- Strong follow-up to anticipate: "your dependency is 99.9%, can you promise 99.99%?" - not without redundancy or graceful degradation, and the maths should be your reply.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to SLO Engineering](./README.md) · [All topics](../README.md)
diff --git a/slo-engineering/how-do-you-define-slos-for-batch-and-asynchronous-workloads.md b/slo-engineering/how-do-you-define-slos-for-batch-and-asynchronous-workloads.md
index 289215d..d4aeeea 100644
--- a/slo-engineering/how-do-you-define-slos-for-batch-and-asynchronous-workloads.md
+++ b/slo-engineering/how-do-you-define-slos-for-batch-and-asynchronous-workloads.md
@@ -56,6 +56,16 @@ max(kafka_consumergroup_lag_seconds{group="fulfilment"})
- "Consumer lag in seconds, not messages" is a small detail that reliably impresses.
- Expect: "a nightly job failed once - did you breach?" Work the event-count arithmetic out loud; it is the real test.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[How do you use Jenkins shared libraries?]] (`#268`): [How do you use Jenkins shared libraries?](../cicd/how-do-you-use-jenkins-shared-libraries.md)
+
+
+
---
[⬅ Back to SLO Engineering](./README.md) · [All topics](../README.md)
diff --git a/slo-engineering/how-do-you-handle-slos-for-dependencies-you-do-not-own.md b/slo-engineering/how-do-you-handle-slos-for-dependencies-you-do-not-own.md
index 29d99d8..690e6d0 100644
--- a/slo-engineering/how-do-you-handle-slos-for-dependencies-you-do-not-own.md
+++ b/slo-engineering/how-do-you-handle-slos-for-dependencies-you-do-not-own.md
@@ -64,6 +64,16 @@ sum by (dependency) (
- Do the serial-availability multiplication out loud; interviewers use it to test whether targets are grounded.
- Expect: "slow versus down, which is worse?" - slow, and explain the connection-pool exhaustion mechanism.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to SLO Engineering](./README.md) · [All topics](../README.md)
diff --git a/slo-engineering/how-do-you-measure-a-latency-sli-correctly.md b/slo-engineering/how-do-you-measure-a-latency-sli-correctly.md
index f12f26d..1a907f5 100644
--- a/slo-engineering/how-do-you-measure-a-latency-sli-correctly.md
+++ b/slo-engineering/how-do-you-measure-a-latency-sli-correctly.md
@@ -50,6 +50,16 @@ histogram:
- Mention that percentiles cannot be averaged; interviewers use that as a probe.
- Have an opinion on vantage point (client, edge, server) and on excluding failed and streaming requests.
+
+
+## Related Concepts
+
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to SLO Engineering](./README.md) · [All topics](../README.md)
diff --git a/slo-engineering/what-do-you-need-before-you-can-set-your-first-slo.md b/slo-engineering/what-do-you-need-before-you-can-set-your-first-slo.md
index 7bfa0c7..4605993 100644
--- a/slo-engineering/what-do-you-need-before-you-can-set-your-first-slo.md
+++ b/slo-engineering/what-do-you-need-before-you-can-set-your-first-slo.md
@@ -108,6 +108,16 @@ clamp_min(
- Mention excluding health checks, bots, and synthetic traffic from the denominator. It shows you have computed one for real.
- Close on the error budget policy. An SLO without an agreed consequence is just a dashboard, and saying so demonstrates you understand the purpose.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Deployment?]] (`#5`): [What is Continuous Deployment?](../core-devops-concepts/what-is-continuous-deployment.md)
+
+
+
---
[⬅ Back to SLO Engineering](./README.md) · [All topics](../README.md)
diff --git a/slo-engineering/what-is-an-error-budget-policy.md b/slo-engineering/what-is-an-error-budget-policy.md
index 29be27d..23554b3 100644
--- a/slo-engineering/what-is-an-error-budget-policy.md
+++ b/slo-engineering/what-is-an-error-budget-policy.md
@@ -59,6 +59,16 @@ override: VP Engineering, recorded in the incident channel with an expiry date
- Name the override path - a policy with no escape hatch gets ignored the first time it is inconvenient.
- Expect the exclusions question: planned maintenance, third-party outages, and load tests are the classic three.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to SLO Engineering](./README.md) · [All topics](../README.md)
diff --git a/slo-engineering/what-is-multi-window-multi-burn-rate-alerting.md b/slo-engineering/what-is-multi-window-multi-burn-rate-alerting.md
index 9d5dd03..6765502 100644
--- a/slo-engineering/what-is-multi-window-multi-burn-rate-alerting.md
+++ b/slo-engineering/what-is-multi-window-multi-burn-rate-alerting.md
@@ -64,6 +64,16 @@ groups:
- Explain the short window's purpose (fast reset, less flapping) - most candidates only mention the long one.
- Expect: "what about a service with 10 requests a minute?" Say the ratio is too noisy and describe the alternatives.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to SLO Engineering](./README.md) · [All topics](../README.md)
diff --git a/slo-engineering/what-tooling-do-you-use-to-implement-slos.md b/slo-engineering/what-tooling-do-you-use-to-implement-slos.md
index 41adfa7..8f020d5 100644
--- a/slo-engineering/what-tooling-do-you-use-to-implement-slos.md
+++ b/slo-engineering/what-tooling-do-you-use-to-implement-slos.md
@@ -65,6 +65,16 @@ promtool check rules rules/checkout-slo.yaml
- Raise the long-window retention problem - it is the mistake most teams hit at the 28-day mark.
- Expect: "why not just use the vendor's SLO feature?" - fine for reporting, but keep the definition in Git and paging where your on-call already looks.
+
+
+## Related Concepts
+
+- [[What is DevOps?]] (`#1`): [What is DevOps?](../core-devops-concepts/what-is-devops.md)
+- [[What are the benefits of DevOps?]] (`#2`): [What are the benefits of DevOps?](../core-devops-concepts/what-are-the-benefits-of-devops.md)
+- [[What is Continuous Integration?]] (`#3`): [What is Continuous Integration?](../core-devops-concepts/what-is-continuous-integration.md)
+
+
+
---
[⬅ Back to SLO Engineering](./README.md) · [All topics](../README.md)
diff --git a/version-control/how-do-you-recover-from-a-bad-git-history-rewrite.md b/version-control/how-do-you-recover-from-a-bad-git-history-rewrite.md
index 6d77c7c..49df958 100644
--- a/version-control/how-do-you-recover-from-a-bad-git-history-rewrite.md
+++ b/version-control/how-do-you-recover-from-a-bad-git-history-rewrite.md
@@ -112,6 +112,16 @@ git clone --mirror git@github.com:acme/app.git && \
- `--force-with-lease` over `--force` is the prevention answer interviewers want, along with branch protection.
- Add that rewriting history to remove a secret does not un-leak it - rotate the credential. That is the security-aware answer and it consistently scores well.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Version Control](./README.md) · [All topics](../README.md)
diff --git a/version-control/how-do-you-undo-changes-in-git-safely.md b/version-control/how-do-you-undo-changes-in-git-safely.md
index 2613a82..92a935e 100644
--- a/version-control/how-do-you-undo-changes-in-git-safely.md
+++ b/version-control/how-do-you-undo-changes-in-git-safely.md
@@ -84,6 +84,16 @@ git reset --hard HEAD@{3}
- Prefer `git restore`/`git switch` over `git checkout` in your answer - it shows you have kept up since Git 2.23.
- On committed secrets, lead with **rotate the credential**. Candidates who only describe `filter-repo` miss the actual security response.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+
+
+
---
[⬅ Back to Version Control](./README.md) · [All topics](../README.md)
diff --git a/version-control/how-do-you-use-git-hooks-for-automated-linting-testing-and-commit-validation.md b/version-control/how-do-you-use-git-hooks-for-automated-linting-testing-and-commit-validation.md
index a65ec7a..47a3266 100644
--- a/version-control/how-do-you-use-git-hooks-for-automated-linting-testing-and-commit-validation.md
+++ b/version-control/how-do-you-use-git-hooks-for-automated-linting-testing-and-commit-validation.md
@@ -94,6 +94,16 @@ echo "Pre-commit checks passed successfully!"
- Mention `git commit --no-verify`: developers can bypass client-side hooks; therefore, server-side CI/CD pipeline checks are still mandatory as a final enforcement gate.
- Connect Git hooks to DevSecOps: running `gitleaks` or `trufflehog` in a `pre-commit` hook prevents secrets from ever entering `.git` history on developer machines.
+
+
+## Related Concepts
+
+- [[How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?]] (`#455`): [How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?](../cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+
+
+
---
[⬅ Back to Version Control](./README.md) · [All topics](../README.md)
diff --git a/version-control/how-to-handle-merge-conflicts-in-git.md b/version-control/how-to-handle-merge-conflicts-in-git.md
index 74aa203..13763a6 100644
--- a/version-control/how-to-handle-merge-conflicts-in-git.md
+++ b/version-control/how-to-handle-merge-conflicts-in-git.md
@@ -60,6 +60,16 @@ Note that during a _rebase_ the sides are inverted relative to a merge - `HEAD`
- `rerere` is a detail that signals real day-to-day Git experience.
- Frame prevention as the primary answer; conflict resolution is a symptom of long-lived branches.
+
+
+## Related Concepts
+
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?]] (`#455`): [How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?](../cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md)
+
+
+
---
[⬅ Back to Version Control](./README.md) · [All topics](../README.md)
diff --git a/version-control/what-is-git-branching-strategy.md b/version-control/what-is-git-branching-strategy.md
index 8e4cabb..bfae09e 100644
--- a/version-control/what-is-git-branching-strategy.md
+++ b/version-control/what-is-git-branching-strategy.md
@@ -33,6 +33,16 @@ Whatever the model, the practices that matter more than the diagram are: short-l
- Long-lived branches are the real enemy - name merge hell and delayed integration feedback.
- Feature flags are what let trunk-based development work with unfinished features.
+
+
+## Related Concepts
+
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+
+
+
---
[⬅ Back to Version Control](./README.md) · [All topics](../README.md)
diff --git a/version-control/what-is-git-flow.md b/version-control/what-is-git-flow.md
index 72c6488..b08c7a4 100644
--- a/version-control/what-is-git-flow.md
+++ b/version-control/what-is-git-flow.md
@@ -43,6 +43,16 @@ feature ●─────● ●───●
- The honest summary: excellent for versioned releases, poor for continuous deployment.
- If your team uses it and struggles, the usual fix is shortening feature branches, not changing the diagram.
+
+
+## Related Concepts
+
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?]] (`#455`): [How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?](../cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md)
+
+
+
---
[⬅ Back to Version Control](./README.md) · [All topics](../README.md)
diff --git a/version-control/what-is-git.md b/version-control/what-is-git.md
index 34fc22b..459e4ee 100644
--- a/version-control/what-is-git.md
+++ b/version-control/what-is-git.md
@@ -41,6 +41,16 @@ Recovery commands worth knowing cold: `git reflog` (find any commit you "lost"),
- `revert` versus `reset`: revert makes a new commit and is safe on shared history; reset rewrites and is not.
- `git reflog` is the answer to "I destroyed my work" - almost nothing is truly lost for 90 days.
+
+
+## Related Concepts
+
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you troubleshoot a GitOps pipeline that will not sync?]] (`#428`): [How do you troubleshoot a GitOps pipeline that will not sync?](../devops-tools-and-automation/how-do-you-troubleshoot-a-gitops-pipeline-that-will-not-sync.md)
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+
+
+
---
[⬅ Back to Version Control](./README.md) · [All topics](../README.md)
diff --git a/version-control/what-is-the-difference-between-git-fetch-git-pull-and-git-clone.md b/version-control/what-is-the-difference-between-git-fetch-git-pull-and-git-clone.md
index 6892522..c895101 100644
--- a/version-control/what-is-the-difference-between-git-fetch-git-pull-and-git-clone.md
+++ b/version-control/what-is-the-difference-between-git-fetch-git-pull-and-git-clone.md
@@ -159,6 +159,16 @@ git log --since="3 days ago" --author="alice" -- services/api/
- Know `--mirror` for host-to-host migration with full history, and `fetch --prune` for the dead-remote-branch problem.
- Distinguish `A..B` from `A...B` when asked about diffing two commits or reviewing a branch, and use `--force-with-lease` rather than `--force` if force-pushing comes up. See [what is Git](./what-is-git.md), [git merge, rebase, and cherry-pick](./what-is-the-difference-between-git-merge-rebase-and-cherry-pick.md), [how do you undo changes in Git safely](./how-do-you-undo-changes-in-git-safely.md), and [recovering from a bad Git history rewrite](./how-do-you-recover-from-a-bad-git-history-rewrite.md).
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?]] (`#455`): [How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?](../cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Version Control](./README.md) · [All topics](../README.md)
diff --git a/version-control/what-is-the-difference-between-git-merge-rebase-and-cherry-pick.md b/version-control/what-is-the-difference-between-git-merge-rebase-and-cherry-pick.md
index 465b8f2..130fa1d 100644
--- a/version-control/what-is-the-difference-between-git-merge-rebase-and-cherry-pick.md
+++ b/version-control/what-is-the-difference-between-git-merge-rebase-and-cherry-pick.md
@@ -74,6 +74,16 @@ git log --oneline HEAD..origin/main # what is about to arrive
- For cherry-pick, give the concrete use case (hotfix backport) rather than the definition, and mention `-x`.
- If asked "how do you undo a rebase that went wrong" - `git reflog` then `git reset --hard HEAD@{n}`. Knowing the reflog exists is what makes rebasing safe.
+
+
+## Related Concepts
+
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?]] (`#455`): [How do you trigger a pipeline — webhooks, polling, schedules, and upstream jobs?](../cicd/how-do-you-trigger-a-pipeline-webhooks-polling-schedules-and-upstream-jobs.md)
+
+
+
---
[⬅ Back to Version Control](./README.md) · [All topics](../README.md)
diff --git a/version-control/what-is-trunk-based-development.md b/version-control/what-is-trunk-based-development.md
index 1c6a924..8d31923 100644
--- a/version-control/what-is-trunk-based-development.md
+++ b/version-control/what-is-trunk-based-development.md
@@ -45,6 +45,16 @@ return legacyCheckout(cart);
- Flag lifecycle management - removing stale flags - is the practical downside; mention it.
- Contrast with Git Flow in one sentence to show you know both and choose deliberately.
+
+
+## Related Concepts
+
+- [[How do you keep dependencies up to date without breaking the build?]] (`#401`): [How do you keep dependencies up to date without breaking the build?](../cicd/how-do-you-keep-dependencies-up-to-date-without-breaking-the-build.md)
+- [[How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?]] (`#402`): [How do you troubleshoot a Jenkins pipeline that never starts or hangs in the queue?](../cicd/how-do-you-troubleshoot-a-jenkins-pipeline-that-never-starts-or-hangs-in-the-queue.md)
+- [[How do you write an efficient and secure GitHub Actions workflow?]] (`#457`): [How do you write an efficient and secure GitHub Actions workflow?](../cicd/how-do-you-write-an-efficient-and-secure-github-actions-workflow.md)
+
+
+
---
[⬅ Back to Version Control](./README.md) · [All topics](../README.md)