Keeping a Raspberry Pi Cluster Cool
Why temperature thresholds weren't enough, and how topology-aware automation improved thermal management in my cluster.
A technical blog by Abhimanyu Saharan, focused on DevOps, automation, Kubernetes, infrastructure, and real-world software engineering insights.
Why temperature thresholds weren't enough, and how topology-aware automation improved thermal management in my cluster.
Running Kubernetes, backups, media servers, and public services from home exposed the limitations of consumer broadband and why WAN failover alone is not enough
Why most homelabs stay as hardware collections, and what it takes to build real infrastructure around reliability, recovery, observability, and failure.
GitHub cut hosted runner prices but planned fees for self-hosted Actions, triggering backlash. The change was paused. Here’s what happened and what to expect.
Kubernetes 1.34 brings GA features, scheduler speedups, kubelet and networking updates, plus security and performance boosts for production clusters.
Step-by-step guide to RKE2 autoscaler setup with Rancher. Learn cluster autoscaler Helm deployment, scaling benefits, limits & troubleshooting.
When building CI/CD pipelines in GitHub Actions, two powerful tools help reduce duplication and improve maintainability: composite actions and reusable workflows . While they seem similar, they solve different problems. Understanding when to use each can drastically improve the scalability of your pipelines, especially if you manage multiple repositories. 🔹 What Are Composite Actions? A composite…
Learn how to reduce Docker image size and speed up builds with smart caching, cache busting, multi-stage builds, and BuildKit best practices.
Stop waiting for schedules to debug CronJobs. Learn how to trigger them immediately, validate specs, and streamline testing in Kubernetes.
Helm upgrade failed due to Kubernetes managedFields conflict. Learn why spec looked fine, yet patching caused errors, and how to fix it.
Discover how building strong technical foundations first can set you up for lasting success in a DevOps career.
A high-severity CVE exposed eslint-config-prettier to a supply chain attack via a phishing compromise. Learn what happened, who’s affected, and how to fix it.
Replit’s AI deleted a live production DB, and tried to hide it. This blog dives into what went wrong and why vibe coding isn’t safe for serious dev work.
Compare Kubernetes topologies across AWS EKS, Google GKE, and Azure AKS. Learn how to design resilient, production-grade clusters the right way.
Explore PostgreSQL’s architecture with a focus on high availability, data integrity, resilience, and performance; ideal for developers, DBAs, and tech leads.
Learn which Python and React frameworks to master, what projects to build, and how to make your first open source contribution with real project examples.
Learn the difference between SLA, SLO, and SLI with real-world examples. Master key service reliability metrics for uptime, latency, and performance monitoring.
Learn how to optimize Core Web Vitals (LCP, FID, CLS) in Next.js with in-depth strategies, best practices, and testing tools for better SEO and user experience.
Learn the key differences between `removesuffix()` and `rstrip()` in Python. Avoid common pitfalls and choose the right method for precise string manipulation.
Interact with Kubernetes subresources like `status` and `scale` using `kubectl` natively with the new `--subresource` flag, no more raw HTTP calls.
CVE-2025-1767 exposes root-level access on nodes via a deprecated volume plugin; Kubernetes 1.33 will disable it by default
Explore the 10-year journey of CNCF, its major milestones, community growth, and impact on cloud-native technologies in this detailed, analytical post.
Explore OpenAI's major 2025 updates including new GPT models, research breakthroughs, multimodal tools, and how the community is shaping the AI ecosystem.
Enhance Kubernetes pod scheduling with dynamic affinity using matchLabelKeys and mismatchLabelKeys for safer rollouts and tenant isolation.
Pods can now exclude tainted nodes during topology spread calculations, improving placement predictability.
Kubernetes 1.33 ensures PV reclaim policies are honored even if PVs are deleted before PVCs, preventing storage leaks across CSI and in-tree drivers.
A Kubernetes pod takes a fast async path, skipping blocking API calls handled in the background, showing the shift from sync to async preemption.
Kubernetes adds limited swap support for Burstable pods, offering memory flexibility on cgroupsv2 nodes without compromising workload stability.
Explore the top 10 Python trends in 2025, from faster runtimes and type safety to AI, web, data, DevOps, and quantum. Stay ahead in every domain with Python.
Kubernetes now aligns memory-backed emptyDir volumes with pod memory limits for improved portability and consistency across node types.
Kubernetes wasn’t built from scratch. Learn how Google’s secret systems shaped its design, and why that origin still matters for developers today.
Use Pluto to identify deprecated or removed Kubernetes APIs in your manifests and Helm charts before upgrading, ensuring smooth and predictable cluster upgrade.
A new /statusz endpoint is coming to Kubernetes. Find out how it boosts debugging and observability without touching your metrics stack.
Python 3.14 simplifies exception handling with PEP 758, letting you drop parentheses when catching multiple exceptions, cleaner, consistent, and backward-safe.
Explore how CPython evolved from adaptive bytecode in 3.11 to JIT execution in 3.14, boosting performance without rewriting the interpreter.
A critical kubelet bug exposes a DoS risk via the unauthenticated /checkpoint API. Learn how to detect, mitigate, and patch CVE-2025-0426.
Tested Python 3.13's optional GIL. Shared results showing real multithreading gains, install steps, and when it outperforms multiprocessing.
Python 3.14 adds a native Zstandard module under compression.zstd, unifying high-performance zstd support and existing stdlib compressors under one namespace.
Learn how to simplify your Python loops using `zip()` for parallel iteration and `enumerate()` for index tracking. Includes practical, real-world examples.
Python 3.14 adds t"" template strings for structured interpolation, enabling safe rendering, inspection, and transformation before output.
Kubernetes v1.33 lets you configure container stop signals via PodSpec, no more rebuilding images just to change shutdown behavior.
Tested OpenAI Codex on a 6M-line codebase, surprisingly accurate, context-aware, and practical. Not an endorsement, just honest first impressions.
Why is naming so hard in programming? Because names reflect understanding. This post explores the deeper truth behind a classic quote, and why it still matters.
Explore Python 3.10’s match statement for cleaner, more readable conditional logic using pattern matching. A modern alternative to verbose if-elif chains.
10 real-world edge cases in Semantic Versioning that cause confusion, break builds, or violate the spec, essential for anyone managing software releases.
CalVer is a date-based versioning system that aligns software releases with real-world time, improving clarity, predictability, and support tracking.
Learn when to choose SemVer or CalVer based on project type, release cycle, and user needs. Clear pros, cons, and real-world guidance included.
Discover how Kubernetes v1.33 introduces a new /flagz endpoint in Kubelet for runtime introspection of component flags, debug like never before.
Learn how to use Python's := walrus operator to simplify conditions, avoid redundant calls, and write cleaner, more efficient code in Python 3.8+.
Kubernetes 1.33 speeds up recovery with a 1s initial delay and 60s max backoff for restarts, opt-in via feature gate for faster handling of failing containers.