<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>Engineering Blog</title><description>Practical engineering write-ups on infrastructure, containers, and distributed systems. Every post comes from a real setup — no theory without execution.</description><link>https://blog.ibtisam-iq.com/</link><atom:link href="https://blog.ibtisam-iq.com/feed_rss_created.xml" rel="self" type="application/rss+xml" /> <managingEditor>Muhammad Ibtisam</managingEditor><language>en</language> <pubDate>Fri, 10 Apr 2026 09:54:01 -0000</pubDate> <lastBuildDate>Fri, 10 Apr 2026 09:54:01 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.17.9</generator> <image> <url>None</url> <title>Engineering Blog</title> <link>https://blog.ibtisam-iq.com/</link> </image> <item> <title>MkDocs CI Build Fails Locally It Works: The Pygments 2.19 NoneType Trap</title> <author>Muhammad Ibtisam</author> <category>CI/CD</category> <category>Debugging</category> <category>Documentation</category> <category>GitHub Actions</category> <category>MkDocs</category> <category>MkDocs Material</category> <category>Platform Engineering</category> <category>PyMdown Extensions</category> <category>Pygments</category> <category>Python</category> <description>&lt;h1&gt;MkDocs CI Build Fails, Locally It Works: The Pygments 2.19 NoneType Trap&lt;/h1&gt; &lt;p&gt;Everything was green for months. One new folder added, one push made — and CI started crashing with &lt;code&gt;AttributeError: &#39;NoneType&#39; object has no attribute &#39;replace&#39;&lt;/code&gt;. Local builds: perfectly fine. GitHub Actions: dead.&lt;/p&gt; &lt;p&gt;This is the full root cause analysis and fix.&lt;/p&gt;</description> <link>https://blog.ibtisam-iq.com/mkdocs-ci-build-fails-pygments-nonetype-crash/</link> <pubDate>Sun, 29 Mar 2026 00:00:00 +0000</pubDate> <source url="https://blog.ibtisam-iq.com/feed_rss_created.xml">Engineering Blog</source><guid isPermaLink="true">https://blog.ibtisam-iq.com/mkdocs-ci-build-fails-pygments-nonetype-crash/</guid> <enclosure url="https://blog.ibtisam-iq.com/assets/images/social/mkdocs-ci-build-fails-pygments-nonetype-crash.png" type="image/png" length="70690" /> </item> <item> <title>My Self-Hosted CI/CD Lab: Jenkins, SonarQube, and Nexus on Custom Domains with SSL</title> <author>Muhammad Ibtisam</author> <category>Cloudflare Tunnel</category> <category>Docker</category> <category>Jenkins</category> <category>Nexus</category> <category>Platform Engineering</category> <category>Platform Engineering</category> <category>Self-Hosted</category> <category>SonarQube</category> <description>&lt;h1&gt;My Self-Hosted CI/CD Lab: Jenkins, SonarQube, and Nexus on Custom Domains with SSL&lt;/h1&gt; &lt;p&gt;A four-node CI/CD lab — each service on its own server, its own subdomain, its own SSL cert — reproduced from a single command. No public IP. No manual setup.&lt;/p&gt;</description> <link>https://blog.ibtisam-iq.com/self-hosted-cicd-lab-jenkins-sonarqube-nexus/</link> <pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate> <source url="https://blog.ibtisam-iq.com/feed_rss_created.xml">Engineering Blog</source><guid isPermaLink="true">https://blog.ibtisam-iq.com/self-hosted-cicd-lab-jenkins-sonarqube-nexus/</guid> <enclosure url="https://blog.ibtisam-iq.com/assets/images/social/self-hosted-cicd-lab-jenkins-sonarqube-nexus.png" type="image/png" length="78439" /> </item> <item> <title>How I Debugged a Kubernetes DNS Failure</title> <author>Muhammad Ibtisam</author> <category>Containers & Orchestration</category> <category>Kubernetes</category> <category>Networking</category> <description>&lt;h1&gt;How I Debugged a Kubernetes DNS Failure&lt;/h1&gt; &lt;p&gt;One-line summary of what this post solves.&lt;/p&gt;</description> <link>https://blog.ibtisam-iq.com/k8s-dns-failure-debug/</link> <pubDate>Sat, 21 Feb 2026 00:00:00 +0000</pubDate> <source url="https://blog.ibtisam-iq.com/feed_rss_created.xml">Engineering Blog</source><guid isPermaLink="true">https://blog.ibtisam-iq.com/k8s-dns-failure-debug/</guid> <enclosure url="https://blog.ibtisam-iq.com/assets/images/social/k8s-dns-failure-debug.png" type="image/png" length="67936" /> </item> </channel> </rss>