<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>AI Wisdom — Engineering Intelligent Systems</title>
    <link>https://www.aiwisdom.dev</link>
    <description>Architecture, models, and practical AI engineering insights for developers building real-world systems.</description>
    <language>en-us</language>
    <atom:link href="https://www.aiwisdom.dev/rss.xml" rel="self" type="application/rss+xml" />
    <managingEditor>connect@aiwisdom.dev (Amit Upadhyay)</managingEditor>
    <webMaster>connect@aiwisdom.dev (Amit Upadhyay)</webMaster>
    <copyright>Copyright 2026 Amit Upadhyay and AI Wisdom</copyright>
    <image>
      <url>https://www.aiwisdom.dev/images/aiwisdom_icon.png</url>
      <title>AI Wisdom</title>
      <link>https://www.aiwisdom.dev</link>
    </image>
    <ttl>60</ttl>
    <lastBuildDate>Thu, 09 Jul 2026 02:17:02 GMT</lastBuildDate>
    <item>
      <title><![CDATA[Chain-of-Thought Prompting: Making LLMs Show Their Work]]></title>
      <link>https://www.aiwisdom.dev/articles/prompt-engineering/chain-of-thought</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/prompt-engineering/chain-of-thought</guid>
      <pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Zero-shot CoT, few-shot CoT, self-consistency, and when reasoning traces hurt as much as they help — the technique that unlocked multi-step reasoning in LLMs.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/prompt-engineering/chain-of-thought/opengraph-image" alt="Chain-of-Thought Prompting: Making LLMs Show Their Work" /></p>
        <p><em>11 min · intermediate · Prompt Engineering</em></p>
        <p>Zero-shot CoT, few-shot CoT, self-consistency, and when reasoning traces hurt as much as they help — the technique that unlocked multi-step reasoning in LLMs.</p>
        <p><strong>Topics covered</strong></p><ul><li>chain-of-thought</li><li>CoT</li><li>reasoning</li><li>self-consistency</li><li>prompt-engineering</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/prompt-engineering/chain-of-thought">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/prompt-engineering/chain-of-thought">https://www.aiwisdom.dev/articles/prompt-engineering/chain-of-thought</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/prompt-engineering/chain-of-thought/opengraph-image" medium="image" />
      <category><![CDATA[promptengineering]]></category>
      <category><![CDATA[chainofthought]]></category>
      <category><![CDATA[cot]]></category>
      <category><![CDATA[reasoning]]></category>
    </item>
  <item>
      <title><![CDATA[Next.js 16 App Router: Layouts, Cache Components, and the New Mental Model]]></title>
      <link>https://www.aiwisdom.dev/articles/frontend-react/app-router</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/frontend-react/app-router</guid>
      <pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[File conventions (page, layout, loading, error), async params, route groups, parallel and intercepting routes, Cache Components with use cache, and Proxy.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/frontend-react/app-router/opengraph-image" alt="Next.js 16 App Router: Layouts, Cache Components, and the New Mental Model" /></p>
        <p><em>15 min · intermediate · Frontend (React)</em></p>
        <p>File conventions (page, layout, loading, error), async params, route groups, parallel and intercepting routes, Cache Components with use cache, and Proxy.</p>
        <p><strong>Topics covered</strong></p><ul><li>nextjs-16</li><li>app-router</li><li>cache-components</li><li>react-server-components</li><li>frontend</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/frontend-react/app-router">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/frontend-react/app-router">https://www.aiwisdom.dev/articles/frontend-react/app-router</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/frontend-react/app-router/opengraph-image" medium="image" />
      <category><![CDATA[frontendreact]]></category>
      <category><![CDATA[nextjs16]]></category>
      <category><![CDATA[approuter]]></category>
      <category><![CDATA[cachecomponents]]></category>
    </item>
  <item>
      <title><![CDATA[ReAct Prompting: Reasoning and Acting in LLM Agents]]></title>
      <link>https://www.aiwisdom.dev/articles/prompt-engineering/react-prompting</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/prompt-engineering/react-prompting</guid>
      <pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[The Thought → Action → Observation loop that lets LLMs use tools, verify intermediate steps, and self-correct — the pattern behind most modern AI agents.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/prompt-engineering/react-prompting/opengraph-image" alt="ReAct Prompting: Reasoning and Acting in LLM Agents" /></p>
        <p><em>11 min · intermediate · Prompt Engineering</em></p>
        <p>The Thought → Action → Observation loop that lets LLMs use tools, verify intermediate steps, and self-correct — the pattern behind most modern AI agents.</p>
        <p><strong>Topics covered</strong></p><ul><li>ReAct</li><li>reasoning</li><li>agents</li><li>tool-use</li><li>chain-of-thought</li><li>prompt-engineering</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/prompt-engineering/react-prompting">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/prompt-engineering/react-prompting">https://www.aiwisdom.dev/articles/prompt-engineering/react-prompting</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/prompt-engineering/react-prompting/opengraph-image" medium="image" />
      <category><![CDATA[promptengineering]]></category>
      <category><![CDATA[react]]></category>
      <category><![CDATA[reasoning]]></category>
      <category><![CDATA[agents]]></category>
    </item>
  <item>
      <title><![CDATA[TanStack Query v5: Server-Cache State Done Right]]></title>
      <link>https://www.aiwisdom.dev/articles/frontend-react/react-query</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/frontend-react/react-query</guid>
      <pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Query keys, staleTime vs gcTime, useSuspenseQuery, optimistic updates with rollback, and how to compose React Query with Next.js 16 Server Components.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/frontend-react/react-query/opengraph-image" alt="TanStack Query v5: Server-Cache State Done Right" /></p>
        <p><em>13 min · intermediate · Frontend (React)</em></p>
        <p>Query keys, staleTime vs gcTime, useSuspenseQuery, optimistic updates with rollback, and how to compose React Query with Next.js 16 Server Components.</p>
        <p><strong>Topics covered</strong></p><ul><li>react</li><li>tanstack-query</li><li>react-query</li><li>data-fetching</li><li>frontend</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/frontend-react/react-query">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/frontend-react/react-query">https://www.aiwisdom.dev/articles/frontend-react/react-query</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/frontend-react/react-query/opengraph-image" medium="image" />
      <category><![CDATA[frontendreact]]></category>
      <category><![CDATA[react]]></category>
      <category><![CDATA[tanstackquery]]></category>
      <category><![CDATA[reactquery]]></category>
    </item>
  <item>
      <title><![CDATA[Prompt Injection: Attack Vectors and Defence in Production]]></title>
      <link>https://www.aiwisdom.dev/articles/prompt-engineering/prompt-injection</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/prompt-engineering/prompt-injection</guid>
      <pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Direct injection, indirect injection via retrieved content, jailbreaks, and the defence-in-depth architecture that keeps LLM applications secure.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/prompt-engineering/prompt-injection/opengraph-image" alt="Prompt Injection: Attack Vectors and Defence in Production" /></p>
        <p><em>13 min · intermediate · Prompt Engineering</em></p>
        <p>Direct injection, indirect injection via retrieved content, jailbreaks, and the defence-in-depth architecture that keeps LLM applications secure.</p>
        <p><strong>Topics covered</strong></p><ul><li>prompt-injection</li><li>security</li><li>jailbreak</li><li>LLM-security</li><li>red-teaming</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/prompt-engineering/prompt-injection">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/prompt-engineering/prompt-injection">https://www.aiwisdom.dev/articles/prompt-engineering/prompt-injection</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/prompt-engineering/prompt-injection/opengraph-image" medium="image" />
      <category><![CDATA[promptengineering]]></category>
      <category><![CDATA[promptinjection]]></category>
      <category><![CDATA[security]]></category>
      <category><![CDATA[jailbreak]]></category>
    </item>
  <item>
      <title><![CDATA[React State Management in 2026: A Decision Tree, Not a Religion]]></title>
      <link>https://www.aiwisdom.dev/articles/frontend-react/state-management</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/frontend-react/state-management</guid>
      <pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Server data, URL state, local state, and global stores — when to use Zustand vs Jotai vs Context vs Redux, and why most state belongs nowhere near a global store.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/frontend-react/state-management/opengraph-image" alt="React State Management in 2026: A Decision Tree, Not a Religion" /></p>
        <p><em>12 min · intermediate · Frontend (React)</em></p>
        <p>Server data, URL state, local state, and global stores — when to use Zustand vs Jotai vs Context vs Redux, and why most state belongs nowhere near a global store.</p>
        <p><strong>Topics covered</strong></p><ul><li>react</li><li>state-management</li><li>zustand</li><li>jotai</li><li>context</li><li>frontend</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/frontend-react/state-management">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/frontend-react/state-management">https://www.aiwisdom.dev/articles/frontend-react/state-management</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/frontend-react/state-management/opengraph-image" medium="image" />
      <category><![CDATA[frontendreact]]></category>
      <category><![CDATA[react]]></category>
      <category><![CDATA[statemanagement]]></category>
      <category><![CDATA[zustand]]></category>
    </item>
  <item>
      <title><![CDATA[Function Calling and Tool Use: Structured Outputs from LLMs]]></title>
      <link>https://www.aiwisdom.dev/articles/prompt-engineering/function-calling</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/prompt-engineering/function-calling</guid>
      <pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[JSON mode, tool schemas, parallel tool calls, and the architecture patterns that let LLMs interact reliably with external APIs and databases.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/prompt-engineering/function-calling/opengraph-image" alt="Function Calling and Tool Use: Structured Outputs from LLMs" /></p>
        <p><em>12 min · intermediate · Prompt Engineering</em></p>
        <p>JSON mode, tool schemas, parallel tool calls, and the architecture patterns that let LLMs interact reliably with external APIs and databases.</p>
        <p><strong>Topics covered</strong></p><ul><li>function-calling</li><li>tool-use</li><li>structured-output</li><li>JSON-mode</li><li>agents</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/prompt-engineering/function-calling">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/prompt-engineering/function-calling">https://www.aiwisdom.dev/articles/prompt-engineering/function-calling</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/prompt-engineering/function-calling/opengraph-image" medium="image" />
      <category><![CDATA[promptengineering]]></category>
      <category><![CDATA[functioncalling]]></category>
      <category><![CDATA[tooluse]]></category>
      <category><![CDATA[structuredoutput]]></category>
    </item>
  <item>
      <title><![CDATA[React Server Components in Next.js 16: The Boundary Mental Model]]></title>
      <link>https://www.aiwisdom.dev/articles/frontend-react/server-components</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/frontend-react/server-components</guid>
      <pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Server Components vs Client Components vs SSR — what runs where, how the boundary works, and the React 19 + Next.js 16 patterns for forms, mutations, and streaming.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/frontend-react/server-components/opengraph-image" alt="React Server Components in Next.js 16: The Boundary Mental Model" /></p>
        <p><em>14 min · intermediate · Frontend (React)</em></p>
        <p>Server Components vs Client Components vs SSR — what runs where, how the boundary works, and the React 19 + Next.js 16 patterns for forms, mutations, and streaming.</p>
        <p><strong>Topics covered</strong></p><ul><li>react</li><li>react-server-components</li><li>nextjs-16</li><li>server-actions</li><li>frontend</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/frontend-react/server-components">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/frontend-react/server-components">https://www.aiwisdom.dev/articles/frontend-react/server-components</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/frontend-react/server-components/opengraph-image" medium="image" />
      <category><![CDATA[frontendreact]]></category>
      <category><![CDATA[react]]></category>
      <category><![CDATA[reactservercomponents]]></category>
      <category><![CDATA[nextjs16]]></category>
    </item>
  <item>
      <title><![CDATA[Zero-Shot Prompting: What LLMs Know Without Examples]]></title>
      <link>https://www.aiwisdom.dev/articles/prompt-engineering/zero-shot</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/prompt-engineering/zero-shot</guid>
      <pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Clear task framing, persona, output format, and constraints — how to get accurate results from a single well-crafted prompt with no examples.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/prompt-engineering/zero-shot/opengraph-image" alt="Zero-Shot Prompting: What LLMs Know Without Examples" /></p>
        <p><em>9 min · foundational · Prompt Engineering</em></p>
        <p>Clear task framing, persona, output format, and constraints — how to get accurate results from a single well-crafted prompt with no examples.</p>
        <p><strong>Topics covered</strong></p><ul><li>zero-shot</li><li>prompt-engineering</li><li>task-framing</li><li>output-format</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/prompt-engineering/zero-shot">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/prompt-engineering/zero-shot">https://www.aiwisdom.dev/articles/prompt-engineering/zero-shot</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/prompt-engineering/zero-shot/opengraph-image" medium="image" />
      <category><![CDATA[promptengineering]]></category>
      <category><![CDATA[zeroshot]]></category>
      <category><![CDATA[taskframing]]></category>
      <category><![CDATA[outputformat]]></category>
    </item>
  <item>
      <title><![CDATA[React Fiber Explained: Lanes, Phases, and Why Your Renders Behave That Way]]></title>
      <link>https://www.aiwisdom.dev/articles/frontend-react/fiber</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/frontend-react/fiber</guid>
      <pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[A working mental model for React Fiber — render vs commit phase, the Lane priority model, automatic batching, useTransition, and useDeferredValue.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/frontend-react/fiber/opengraph-image" alt="React Fiber Explained: Lanes, Phases, and Why Your Renders Behave That Way" /></p>
        <p><em>12 min · advanced · Frontend (React)</em></p>
        <p>A working mental model for React Fiber — render vs commit phase, the Lane priority model, automatic batching, useTransition, and useDeferredValue.</p>
        <p><strong>Topics covered</strong></p><ul><li>react</li><li>fiber</li><li>concurrent-rendering</li><li>performance</li><li>react-internals</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/frontend-react/fiber">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/frontend-react/fiber">https://www.aiwisdom.dev/articles/frontend-react/fiber</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/frontend-react/fiber/opengraph-image" medium="image" />
      <category><![CDATA[frontendreact]]></category>
      <category><![CDATA[react]]></category>
      <category><![CDATA[fiber]]></category>
      <category><![CDATA[concurrentrendering]]></category>
    </item>
  <item>
      <title><![CDATA[Few-Shot Prompting: Teaching LLMs by Example]]></title>
      <link>https://www.aiwisdom.dev/articles/prompt-engineering/few-shot</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/prompt-engineering/few-shot</guid>
      <pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Selecting, ordering, and structuring input-output examples to reliably steer model behaviour — the most effective prompting technique for consistent formatted output.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/prompt-engineering/few-shot/opengraph-image" alt="Few-Shot Prompting: Teaching LLMs by Example" /></p>
        <p><em>10 min · foundational · Prompt Engineering</em></p>
        <p>Selecting, ordering, and structuring input-output examples to reliably steer model behaviour — the most effective prompting technique for consistent formatted output.</p>
        <p><strong>Topics covered</strong></p><ul><li>few-shot</li><li>in-context-learning</li><li>prompt-engineering</li><li>examples</li><li>ICL</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/prompt-engineering/few-shot">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/prompt-engineering/few-shot">https://www.aiwisdom.dev/articles/prompt-engineering/few-shot</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/prompt-engineering/few-shot/opengraph-image" medium="image" />
      <category><![CDATA[promptengineering]]></category>
      <category><![CDATA[fewshot]]></category>
      <category><![CDATA[incontextlearning]]></category>
      <category><![CDATA[examples]]></category>
    </item>
  <item>
      <title><![CDATA[React 19 Hooks: The Modern Mental Model in the Compiler Era]]></title>
      <link>https://www.aiwisdom.dev/articles/frontend-react/hooks</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/frontend-react/hooks</guid>
      <pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[A 2026 hooks refresher under React 19 and the React Compiler — what to write, what to delete, and the use(), useActionState, and useFormStatus APIs that change everything.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/frontend-react/hooks/opengraph-image" alt="React 19 Hooks: The Modern Mental Model in the Compiler Era" /></p>
        <p><em>13 min · foundational · Frontend (React)</em></p>
        <p>A 2026 hooks refresher under React 19 and the React Compiler — what to write, what to delete, and the use(), useActionState, and useFormStatus APIs that change everything.</p>
        <p><strong>Topics covered</strong></p><ul><li>react</li><li>hooks</li><li>react-19</li><li>react-compiler</li><li>frontend</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/frontend-react/hooks">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/frontend-react/hooks">https://www.aiwisdom.dev/articles/frontend-react/hooks</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/frontend-react/hooks/opengraph-image" medium="image" />
      <category><![CDATA[frontendreact]]></category>
      <category><![CDATA[react]]></category>
      <category><![CDATA[hooks]]></category>
      <category><![CDATA[react19]]></category>
    </item>
  <item>
      <title><![CDATA[Production Monitoring: The Four Golden Signals and the SLO Stack]]></title>
      <link>https://www.aiwisdom.dev/articles/devops-cicd/monitoring</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/devops-cicd/monitoring</guid>
      <pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Latency, traffic, errors, and saturation — the four golden signals — plus SLIs, SLOs, error budgets, and the alerting philosophy that prevents alert fatigue.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/devops-cicd/monitoring/opengraph-image" alt="Production Monitoring: The Four Golden Signals and the SLO Stack" /></p>
        <p><em>12 min · intermediate · DevOps & CI/CD</em></p>
        <p>Latency, traffic, errors, and saturation — the four golden signals — plus SLIs, SLOs, error budgets, and the alerting philosophy that prevents alert fatigue.</p>
        <p><strong>Topics covered</strong></p><ul><li>monitoring</li><li>observability</li><li>SLO</li><li>SLI</li><li>golden-signals</li><li>alerting</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/devops-cicd/monitoring">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/devops-cicd/monitoring">https://www.aiwisdom.dev/articles/devops-cicd/monitoring</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/devops-cicd/monitoring/opengraph-image" medium="image" />
      <category><![CDATA[devopscicd]]></category>
      <category><![CDATA[monitoring]]></category>
      <category><![CDATA[observability]]></category>
      <category><![CDATA[slo]]></category>
    </item>
  <item>
      <title><![CDATA[Branching Strategies: Trunk-Based Development vs GitFlow in 2026]]></title>
      <link>https://www.aiwisdom.dev/articles/devops-cicd/branching-strategies</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/devops-cicd/branching-strategies</guid>
      <pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Trunk-based development, feature flags, short-lived branches, GitFlow trade-offs, and why high-performing teams converge on committing to main.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/devops-cicd/branching-strategies/opengraph-image" alt="Branching Strategies: Trunk-Based Development vs GitFlow in 2026" /></p>
        <p><em>11 min · foundational · DevOps & CI/CD</em></p>
        <p>Trunk-based development, feature flags, short-lived branches, GitFlow trade-offs, and why high-performing teams converge on committing to main.</p>
        <p><strong>Topics covered</strong></p><ul><li>git</li><li>branching</li><li>trunk-based</li><li>GitFlow</li><li>feature-flags</li><li>release-management</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/devops-cicd/branching-strategies">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/devops-cicd/branching-strategies">https://www.aiwisdom.dev/articles/devops-cicd/branching-strategies</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/devops-cicd/branching-strategies/opengraph-image" medium="image" />
      <category><![CDATA[devopscicd]]></category>
      <category><![CDATA[git]]></category>
      <category><![CDATA[branching]]></category>
      <category><![CDATA[trunkbased]]></category>
    </item>
  <item>
      <title><![CDATA[Minimal APIs in .NET 9: Typed Results, Route Groups, and Endpoint Filters Done Right]]></title>
      <link>https://www.aiwisdom.dev/articles/backend-dotnet/minimal-apis</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/backend-dotnet/minimal-apis</guid>
      <pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Production-shaped Minimal APIs with typed Results<T>, route groups, endpoint filters, [FromKeyedServices], and the new built-in OpenAPI replacing Swashbuckle.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/backend-dotnet/minimal-apis/opengraph-image" alt="Minimal APIs in .NET 9: Typed Results, Route Groups, and Endpoint Filters Done Right" /></p>
        <p><em>13 min · intermediate · Backend (.NET / C#)</em></p>
        <p>Production-shaped Minimal APIs with typed Results<T>, route groups, endpoint filters, [FromKeyedServices], and the new built-in OpenAPI replacing Swashbuckle.</p>
        <p><strong>Topics covered</strong></p><ul><li>csharp</li><li>aspnet-core</li><li>minimal-apis</li><li>dotnet-9</li><li>web-api</li><li>openapi</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/backend-dotnet/minimal-apis">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/backend-dotnet/minimal-apis">https://www.aiwisdom.dev/articles/backend-dotnet/minimal-apis</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/backend-dotnet/minimal-apis/opengraph-image" medium="image" />
      <category><![CDATA[backenddotnet]]></category>
      <category><![CDATA[csharp]]></category>
      <category><![CDATA[aspnetcore]]></category>
      <category><![CDATA[minimalapis]]></category>
    </item>
  <item>
      <title><![CDATA[CI/CD Pipeline Design: Fast Feedback, Quality Gates, and DORA Metrics]]></title>
      <link>https://www.aiwisdom.dev/articles/devops-cicd/pipeline-design</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/devops-cicd/pipeline-design</guid>
      <pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Trunk-based development, parallel testing, deployment gates, feature flags, and designing pipelines that keep deployment frequency high and failure rate low.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/devops-cicd/pipeline-design/opengraph-image" alt="CI/CD Pipeline Design: Fast Feedback, Quality Gates, and DORA Metrics" /></p>
        <p><em>13 min · intermediate · DevOps & CI/CD</em></p>
        <p>Trunk-based development, parallel testing, deployment gates, feature flags, and designing pipelines that keep deployment frequency high and failure rate low.</p>
        <p><strong>Topics covered</strong></p><ul><li>ci-cd</li><li>pipeline</li><li>DORA</li><li>quality-gates</li><li>feature-flags</li><li>trunk-based</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/devops-cicd/pipeline-design">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/devops-cicd/pipeline-design">https://www.aiwisdom.dev/articles/devops-cicd/pipeline-design</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/devops-cicd/pipeline-design/opengraph-image" medium="image" />
      <category><![CDATA[devopscicd]]></category>
      <category><![CDATA[cicd]]></category>
      <category><![CDATA[pipeline]]></category>
      <category><![CDATA[dora]]></category>
    </item>
  <item>
      <title><![CDATA[Clean Architecture in .NET 9: One Rule, Four Layers, and When to Skip the Whole Thing]]></title>
      <link>https://www.aiwisdom.dev/articles/backend-dotnet/clean-architecture</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/backend-dotnet/clean-architecture</guid>
      <pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[The dependency rule applied pragmatically — solution layout, port-and-adapter wiring, NetArchTest enforcement, and when Vertical Slice Architecture is the better fit.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/backend-dotnet/clean-architecture/opengraph-image" alt="Clean Architecture in .NET 9: One Rule, Four Layers, and When to Skip the Whole Thing" /></p>
        <p><em>14 min · advanced · Backend (.NET / C#)</em></p>
        <p>The dependency rule applied pragmatically — solution layout, port-and-adapter wiring, NetArchTest enforcement, and when Vertical Slice Architecture is the better fit.</p>
        <p><strong>Topics covered</strong></p><ul><li>csharp</li><li>architecture</li><li>clean-architecture</li><li>ddd</li><li>design-patterns</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/backend-dotnet/clean-architecture">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/backend-dotnet/clean-architecture">https://www.aiwisdom.dev/articles/backend-dotnet/clean-architecture</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/backend-dotnet/clean-architecture/opengraph-image" medium="image" />
      <category><![CDATA[backenddotnet]]></category>
      <category><![CDATA[csharp]]></category>
      <category><![CDATA[architecture]]></category>
      <category><![CDATA[cleanarchitecture]]></category>
    </item>
  <item>
      <title><![CDATA[Kubernetes Deployments: Rolling Updates, Resource Limits, and HPA]]></title>
      <link>https://www.aiwisdom.dev/articles/devops-cicd/k8s-deployments</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/devops-cicd/k8s-deployments</guid>
      <pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Deployment strategies, readiness and liveness probes, resource requests and limits, Horizontal Pod Autoscaler, and PodDisruptionBudgets for zero-downtime releases.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/devops-cicd/k8s-deployments/opengraph-image" alt="Kubernetes Deployments: Rolling Updates, Resource Limits, and HPA" /></p>
        <p><em>14 min · intermediate · DevOps & CI/CD</em></p>
        <p>Deployment strategies, readiness and liveness probes, resource requests and limits, Horizontal Pod Autoscaler, and PodDisruptionBudgets for zero-downtime releases.</p>
        <p><strong>Topics covered</strong></p><ul><li>kubernetes</li><li>k8s</li><li>deployments</li><li>HPA</li><li>rolling-updates</li><li>resource-limits</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/devops-cicd/k8s-deployments">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/devops-cicd/k8s-deployments">https://www.aiwisdom.dev/articles/devops-cicd/k8s-deployments</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/devops-cicd/k8s-deployments/opengraph-image" medium="image" />
      <category><![CDATA[devopscicd]]></category>
      <category><![CDATA[kubernetes]]></category>
      <category><![CDATA[k8s]]></category>
      <category><![CDATA[deployments]]></category>
    </item>
  <item>
      <title><![CDATA[Docker for Production: Multi-Stage Builds, Security, and Compose]]></title>
      <link>https://www.aiwisdom.dev/articles/devops-cicd/docker</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/devops-cicd/docker</guid>
      <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Multi-stage builds that cut image size by 80%, non-root users, read-only filesystems, health checks, and Compose patterns for local development parity.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/devops-cicd/docker/opengraph-image" alt="Docker for Production: Multi-Stage Builds, Security, and Compose" /></p>
        <p><em>12 min · intermediate · DevOps & CI/CD</em></p>
        <p>Multi-stage builds that cut image size by 80%, non-root users, read-only filesystems, health checks, and Compose patterns for local development parity.</p>
        <p><strong>Topics covered</strong></p><ul><li>docker</li><li>containers</li><li>multi-stage-builds</li><li>compose</li><li>security</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/devops-cicd/docker">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/devops-cicd/docker">https://www.aiwisdom.dev/articles/devops-cicd/docker</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/devops-cicd/docker/opengraph-image" medium="image" />
      <category><![CDATA[devopscicd]]></category>
      <category><![CDATA[docker]]></category>
      <category><![CDATA[containers]]></category>
      <category><![CDATA[multistagebuilds]]></category>
    </item>
  <item>
      <title><![CDATA[CQRS in .NET Without the Cargo Cult: A Practical Guide for 2026]]></title>
      <link>https://www.aiwisdom.dev/articles/backend-dotnet/cqrs</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/backend-dotnet/cqrs</guid>
      <pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[CQRS as a folder discipline, command/query handlers without MediatR, vertical slice architecture, and when eventual consistency is overkill.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/backend-dotnet/cqrs/opengraph-image" alt="CQRS in .NET Without the Cargo Cult: A Practical Guide for 2026" /></p>
        <p><em>15 min · advanced · Backend (.NET / C#)</em></p>
        <p>CQRS as a folder discipline, command/query handlers without MediatR, vertical slice architecture, and when eventual consistency is overkill.</p>
        <p><strong>Topics covered</strong></p><ul><li>csharp</li><li>architecture</li><li>cqrs</li><li>ddd</li><li>design-patterns</li><li>dotnet-9</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/backend-dotnet/cqrs">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/backend-dotnet/cqrs">https://www.aiwisdom.dev/articles/backend-dotnet/cqrs</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/backend-dotnet/cqrs/opengraph-image" medium="image" />
      <category><![CDATA[backenddotnet]]></category>
      <category><![CDATA[csharp]]></category>
      <category><![CDATA[architecture]]></category>
      <category><![CDATA[cqrs]]></category>
    </item>
  <item>
      <title><![CDATA[GitHub Actions in Production: Workflows, OIDC, and Reusable Patterns]]></title>
      <link>https://www.aiwisdom.dev/articles/devops-cicd/github-actions</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/devops-cicd/github-actions</guid>
      <pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Triggers, matrix builds, reusable workflows, composite actions, OIDC cloud authentication, and the patterns that keep CI pipelines fast and secure.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/devops-cicd/github-actions/opengraph-image" alt="GitHub Actions in Production: Workflows, OIDC, and Reusable Patterns" /></p>
        <p><em>13 min · intermediate · DevOps & CI/CD</em></p>
        <p>Triggers, matrix builds, reusable workflows, composite actions, OIDC cloud authentication, and the patterns that keep CI pipelines fast and secure.</p>
        <p><strong>Topics covered</strong></p><ul><li>github-actions</li><li>ci-cd</li><li>OIDC</li><li>reusable-workflows</li><li>automation</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/devops-cicd/github-actions">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/devops-cicd/github-actions">https://www.aiwisdom.dev/articles/devops-cicd/github-actions</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/devops-cicd/github-actions/opengraph-image" medium="image" />
      <category><![CDATA[devopscicd]]></category>
      <category><![CDATA[githubactions]]></category>
      <category><![CDATA[cicd]]></category>
      <category><![CDATA[oidc]]></category>
    </item>
  <item>
      <title><![CDATA[TypeScript Mapped Types and Template Literals: Transforming Shapes at the Type Level]]></title>
      <link>https://www.aiwisdom.dev/articles/typescript/mapped-types</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/typescript/mapped-types</guid>
      <pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Mapped types, key remapping, template literal types, and combining them with conditional types to build transformation layers with zero runtime cost.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/typescript/mapped-types/opengraph-image" alt="TypeScript Mapped Types and Template Literals: Transforming Shapes at the Type Level" /></p>
        <p><em>12 min · advanced · TypeScript Deep Dive</em></p>
        <p>Mapped types, key remapping, template literal types, and combining them with conditional types to build transformation layers with zero runtime cost.</p>
        <p><strong>Topics covered</strong></p><ul><li>typescript</li><li>mapped-types</li><li>template-literals</li><li>key-remapping</li><li>type-transforms</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/typescript/mapped-types">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/typescript/mapped-types">https://www.aiwisdom.dev/articles/typescript/mapped-types</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/typescript/mapped-types/opengraph-image" medium="image" />
      <category><![CDATA[typescript]]></category>
      <category><![CDATA[mappedtypes]]></category>
      <category><![CDATA[templateliterals]]></category>
      <category><![CDATA[keyremapping]]></category>
    </item>
  <item>
      <title><![CDATA[The Repository Pattern in .NET: When It Helps, When It Hurts, and What to Use Instead]]></title>
      <link>https://www.aiwisdom.dev/articles/backend-dotnet/repository-pattern</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/backend-dotnet/repository-pattern</guid>
      <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Why generic IRepository<T> over EF Core is usually an anti-pattern, when domain repositories earn their keep, and the specification pattern as a cleaner alternative.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/backend-dotnet/repository-pattern/opengraph-image" alt="The Repository Pattern in .NET: When It Helps, When It Hurts, and What to Use Instead" /></p>
        <p><em>12 min · intermediate · Backend (.NET / C#)</em></p>
        <p>Why generic IRepository<T> over EF Core is usually an anti-pattern, when domain repositories earn their keep, and the specification pattern as a cleaner alternative.</p>
        <p><strong>Topics covered</strong></p><ul><li>csharp</li><li>architecture</li><li>ef-core</li><li>design-patterns</li><li>ddd</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/backend-dotnet/repository-pattern">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/backend-dotnet/repository-pattern">https://www.aiwisdom.dev/articles/backend-dotnet/repository-pattern</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/backend-dotnet/repository-pattern/opengraph-image" medium="image" />
      <category><![CDATA[backenddotnet]]></category>
      <category><![CDATA[csharp]]></category>
      <category><![CDATA[architecture]]></category>
      <category><![CDATA[efcore]]></category>
    </item>
  <item>
      <title><![CDATA[TypeScript Conditional Types: Type-Level Logic That Scales]]></title>
      <link>https://www.aiwisdom.dev/articles/typescript/conditional-types</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/typescript/conditional-types</guid>
      <pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Conditional types, the infer keyword, distributive behaviour, and recursive types — the foundation of every advanced TypeScript utility.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/typescript/conditional-types/opengraph-image" alt="TypeScript Conditional Types: Type-Level Logic That Scales" /></p>
        <p><em>13 min · advanced · TypeScript Deep Dive</em></p>
        <p>Conditional types, the infer keyword, distributive behaviour, and recursive types — the foundation of every advanced TypeScript utility.</p>
        <p><strong>Topics covered</strong></p><ul><li>typescript</li><li>conditional-types</li><li>infer</li><li>distributive</li><li>recursive-types</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/typescript/conditional-types">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/typescript/conditional-types">https://www.aiwisdom.dev/articles/typescript/conditional-types</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/typescript/conditional-types/opengraph-image" medium="image" />
      <category><![CDATA[typescript]]></category>
      <category><![CDATA[conditionaltypes]]></category>
      <category><![CDATA[infer]]></category>
      <category><![CDATA[distributive]]></category>
    </item>
  <item>
      <title><![CDATA[EF Core 9 in Production: Tracking, Projections, and the Performance Levers That Matter]]></title>
      <link>https://www.aiwisdom.dev/articles/backend-dotnet/ef-core</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/backend-dotnet/ef-core</guid>
      <pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Bulk updates with ExecuteUpdateAsync, projection over Include, AsSplitQuery for cartesian explosion, auto-compiled models, and IDbContextFactory for parallel work.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/backend-dotnet/ef-core/opengraph-image" alt="EF Core 9 in Production: Tracking, Projections, and the Performance Levers That Matter" /></p>
        <p><em>14 min · intermediate · Backend (.NET / C#)</em></p>
        <p>Bulk updates with ExecuteUpdateAsync, projection over Include, AsSplitQuery for cartesian explosion, auto-compiled models, and IDbContextFactory for parallel work.</p>
        <p><strong>Topics covered</strong></p><ul><li>ef-core</li><li>ef-core-9</li><li>csharp</li><li>aspnet-core</li><li>performance</li><li>sql</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/backend-dotnet/ef-core">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/backend-dotnet/ef-core">https://www.aiwisdom.dev/articles/backend-dotnet/ef-core</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/backend-dotnet/ef-core/opengraph-image" medium="image" />
      <category><![CDATA[backenddotnet]]></category>
      <category><![CDATA[efcore]]></category>
      <category><![CDATA[efcore9]]></category>
      <category><![CDATA[csharp]]></category>
    </item>
  <item>
      <title><![CDATA[Zod: Schema-First Validation That Earns Its Type Safety]]></title>
      <link>https://www.aiwisdom.dev/articles/typescript/zod</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/typescript/zod</guid>
      <pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Parse API responses, form inputs, and env variables with Zod schemas that double as TypeScript types — no more manual type assertions at system boundaries.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/typescript/zod/opengraph-image" alt="Zod: Schema-First Validation That Earns Its Type Safety" /></p>
        <p><em>12 min · intermediate · TypeScript Deep Dive</em></p>
        <p>Parse API responses, form inputs, and env variables with Zod schemas that double as TypeScript types — no more manual type assertions at system boundaries.</p>
        <p><strong>Topics covered</strong></p><ul><li>typescript</li><li>zod</li><li>validation</li><li>schema</li><li>parsing</li><li>runtime-safety</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/typescript/zod">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/typescript/zod">https://www.aiwisdom.dev/articles/typescript/zod</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/typescript/zod/opengraph-image" medium="image" />
      <category><![CDATA[typescript]]></category>
      <category><![CDATA[zod]]></category>
      <category><![CDATA[validation]]></category>
      <category><![CDATA[schema]]></category>
    </item>
  <item>
      <title><![CDATA[TypeScript Type Guards: Narrowing Without the Noise]]></title>
      <link>https://www.aiwisdom.dev/articles/typescript/type-guards</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/typescript/type-guards</guid>
      <pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[typeof, instanceof, in, discriminated unions, custom type predicates, and assertion functions — the narrowing toolkit that keeps runtime errors out of production.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/typescript/type-guards/opengraph-image" alt="TypeScript Type Guards: Narrowing Without the Noise" /></p>
        <p><em>10 min · intermediate · TypeScript Deep Dive</em></p>
        <p>typeof, instanceof, in, discriminated unions, custom type predicates, and assertion functions — the narrowing toolkit that keeps runtime errors out of production.</p>
        <p><strong>Topics covered</strong></p><ul><li>typescript</li><li>type-guards</li><li>narrowing</li><li>discriminated-unions</li><li>type-predicates</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/typescript/type-guards">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/typescript/type-guards">https://www.aiwisdom.dev/articles/typescript/type-guards</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/typescript/type-guards/opengraph-image" medium="image" />
      <category><![CDATA[typescript]]></category>
      <category><![CDATA[typeguards]]></category>
      <category><![CDATA[narrowing]]></category>
      <category><![CDATA[discriminatedunions]]></category>
    </item>
  <item>
      <title><![CDATA[Dependency Injection in .NET 9: Lifetimes, Keyed Services, and the Scope Pattern]]></title>
      <link>https://www.aiwisdom.dev/articles/backend-dotnet/dependency-injection</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/backend-dotnet/dependency-injection</guid>
      <pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Lifetime selection, keyed services (.NET 8+), the BackgroundService scope pattern, and the four DI anti-patterns that cause production bugs.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/backend-dotnet/dependency-injection/opengraph-image" alt="Dependency Injection in .NET 9: Lifetimes, Keyed Services, and the Scope Pattern" /></p>
        <p><em>12 min · foundational · Backend (.NET / C#)</em></p>
        <p>Lifetime selection, keyed services (.NET 8+), the BackgroundService scope pattern, and the four DI anti-patterns that cause production bugs.</p>
        <p><strong>Topics covered</strong></p><ul><li>csharp</li><li>dependency-injection</li><li>aspnet-core</li><li>dotnet-9</li><li>architecture</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/backend-dotnet/dependency-injection">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/backend-dotnet/dependency-injection">https://www.aiwisdom.dev/articles/backend-dotnet/dependency-injection</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/backend-dotnet/dependency-injection/opengraph-image" medium="image" />
      <category><![CDATA[backenddotnet]]></category>
      <category><![CDATA[csharp]]></category>
      <category><![CDATA[dependencyinjection]]></category>
      <category><![CDATA[aspnetcore]]></category>
    </item>
  <item>
      <title><![CDATA[TypeScript Utility Types: The Production Toolkit]]></title>
      <link>https://www.aiwisdom.dev/articles/typescript/utility-types</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/typescript/utility-types</guid>
      <pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Partial, Required, Pick, Omit, Record, Extract, Exclude, ReturnType — when to use each and how to compose them for real-world type transformations.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/typescript/utility-types/opengraph-image" alt="TypeScript Utility Types: The Production Toolkit" /></p>
        <p><em>11 min · intermediate · TypeScript Deep Dive</em></p>
        <p>Partial, Required, Pick, Omit, Record, Extract, Exclude, ReturnType — when to use each and how to compose them for real-world type transformations.</p>
        <p><strong>Topics covered</strong></p><ul><li>typescript</li><li>utility-types</li><li>Partial</li><li>Pick</li><li>Omit</li><li>Record</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/typescript/utility-types">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/typescript/utility-types">https://www.aiwisdom.dev/articles/typescript/utility-types</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/typescript/utility-types/opengraph-image" medium="image" />
      <category><![CDATA[typescript]]></category>
      <category><![CDATA[utilitytypes]]></category>
      <category><![CDATA[partial]]></category>
      <category><![CDATA[pick]]></category>
    </item>
  <item>
      <title><![CDATA[Async/Await in .NET 9: ConfigureAwaitOptions, Task.WhenEach, and Bounded Concurrency]]></title>
      <link>https://www.aiwisdom.dev/articles/backend-dotnet/async-await</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/backend-dotnet/async-await</guid>
      <pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Modern async patterns for ASP.NET Core — context capture, the .NET 8 ConfigureAwaitOptions enum, .NET 9 Task.WhenEach, and the anti-patterns that cause production incidents.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/backend-dotnet/async-await/opengraph-image" alt="Async/Await in .NET 9: ConfigureAwaitOptions, Task.WhenEach, and Bounded Concurrency" /></p>
        <p><em>14 min · intermediate · Backend (.NET / C#)</em></p>
        <p>Modern async patterns for ASP.NET Core — context capture, the .NET 8 ConfigureAwaitOptions enum, .NET 9 Task.WhenEach, and the anti-patterns that cause production incidents.</p>
        <p><strong>Topics covered</strong></p><ul><li>csharp</li><li>async</li><li>concurrency</li><li>dotnet-9</li><li>performance</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/backend-dotnet/async-await">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/backend-dotnet/async-await">https://www.aiwisdom.dev/articles/backend-dotnet/async-await</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/backend-dotnet/async-await/opengraph-image" medium="image" />
      <category><![CDATA[backenddotnet]]></category>
      <category><![CDATA[csharp]]></category>
      <category><![CDATA[async]]></category>
      <category><![CDATA[concurrency]]></category>
    </item>
  <item>
      <title><![CDATA[TypeScript Generics: Constraints, Variance, and Inference]]></title>
      <link>https://www.aiwisdom.dev/articles/typescript/generics-ts</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/typescript/generics-ts</guid>
      <pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Type parameters, constraints, conditional inference, and the patterns that make generics actually useful in production TypeScript.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/typescript/generics-ts/opengraph-image" alt="TypeScript Generics: Constraints, Variance, and Inference" /></p>
        <p><em>12 min · intermediate · TypeScript Deep Dive</em></p>
        <p>Type parameters, constraints, conditional inference, and the patterns that make generics actually useful in production TypeScript.</p>
        <p><strong>Topics covered</strong></p><ul><li>typescript</li><li>generics</li><li>type-system</li><li>constraints</li><li>inference</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/typescript/generics-ts">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/typescript/generics-ts">https://www.aiwisdom.dev/articles/typescript/generics-ts</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/typescript/generics-ts/opengraph-image" medium="image" />
      <category><![CDATA[typescript]]></category>
      <category><![CDATA[generics]]></category>
      <category><![CDATA[typesystem]]></category>
      <category><![CDATA[constraints]]></category>
    </item>
  <item>
      <title><![CDATA[LINQ in .NET 9: Deferred Execution, IQueryable, and the New Operators]]></title>
      <link>https://www.aiwisdom.dev/articles/backend-dotnet/linq</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/backend-dotnet/linq</guid>
      <pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Practical LINQ for backend engineers — IEnumerable vs IQueryable, the .NET 9 CountBy/AggregateBy/Index additions, and EF Core translation pitfalls.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/backend-dotnet/linq/opengraph-image" alt="LINQ in .NET 9: Deferred Execution, IQueryable, and the New Operators" /></p>
        <p><em>13 min · intermediate · Backend (.NET / C#)</em></p>
        <p>Practical LINQ for backend engineers — IEnumerable vs IQueryable, the .NET 9 CountBy/AggregateBy/Index additions, and EF Core translation pitfalls.</p>
        <p><strong>Topics covered</strong></p><ul><li>csharp</li><li>linq</li><li>dotnet-9</li><li>ef-core</li><li>performance</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/backend-dotnet/linq">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/backend-dotnet/linq">https://www.aiwisdom.dev/articles/backend-dotnet/linq</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/backend-dotnet/linq/opengraph-image" medium="image" />
      <category><![CDATA[backenddotnet]]></category>
      <category><![CDATA[csharp]]></category>
      <category><![CDATA[linq]]></category>
      <category><![CDATA[dotnet9]]></category>
    </item>
  <item>
      <title><![CDATA[Mocking Patterns: Stubs, Spies, Fakes, and When Not to Mock]]></title>
      <link>https://www.aiwisdom.dev/articles/testing-engineering/mocking-patterns-guide</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/testing-engineering/mocking-patterns-guide</guid>
      <pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Master test double patterns — distinguish stubs from mocks, use Vitest module mocking, implement MSW for HTTP, and avoid over-mocking that hides real bugs.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/testing-engineering/mocking-patterns-guide/opengraph-image" alt="Mocking Patterns: Stubs, Spies, Fakes, and When Not to Mock" /></p>
        <p><em>13 min · intermediate · Testing Engineering</em></p>
        <p>Master test double patterns — distinguish stubs from mocks, use Vitest module mocking, implement MSW for HTTP, and avoid over-mocking that hides real bugs.</p>
        <p><strong>Topics covered</strong></p><ul><li>mocking</li><li>stubs</li><li>spies</li><li>test-doubles</li><li>msw</li><li>vitest</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/testing-engineering/mocking-patterns-guide">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/testing-engineering/mocking-patterns-guide">https://www.aiwisdom.dev/articles/testing-engineering/mocking-patterns-guide</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/testing-engineering/mocking-patterns-guide/opengraph-image" medium="image" />
      <category><![CDATA[testingengineering]]></category>
      <category><![CDATA[mocking]]></category>
      <category><![CDATA[stubs]]></category>
      <category><![CDATA[spies]]></category>
    </item>
  <item>
      <title><![CDATA[C# Generics Mastery: Constraints, Variance, and Generic Math in .NET 9]]></title>
      <link>https://www.aiwisdom.dev/articles/backend-dotnet/generics</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/backend-dotnet/generics</guid>
      <pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Type-safe abstractions without overhead — constraints, covariance/contravariance, INumber<T>, and the .NET 9 "allows ref struct" anti-constraint.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/backend-dotnet/generics/opengraph-image" alt="C# Generics Mastery: Constraints, Variance, and Generic Math in .NET 9" /></p>
        <p><em>12 min · intermediate · Backend (.NET / C#)</em></p>
        <p>Type-safe abstractions without overhead — constraints, covariance/contravariance, INumber<T>, and the .NET 9 "allows ref struct" anti-constraint.</p>
        <p><strong>Topics covered</strong></p><ul><li>csharp</li><li>generics</li><li>dotnet-9</li><li>language</li><li>type-system</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/backend-dotnet/generics">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/backend-dotnet/generics">https://www.aiwisdom.dev/articles/backend-dotnet/generics</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/backend-dotnet/generics/opengraph-image" medium="image" />
      <category><![CDATA[backenddotnet]]></category>
      <category><![CDATA[csharp]]></category>
      <category><![CDATA[generics]]></category>
      <category><![CDATA[dotnet9]]></category>
    </item>
  <item>
      <title><![CDATA[Test Architecture Strategy: Pyramid, Trophy, and CI Optimization]]></title>
      <link>https://www.aiwisdom.dev/articles/testing-engineering/test-architecture-strategy</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/testing-engineering/test-architecture-strategy</guid>
      <pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Design a scalable test architecture — apply the test pyramid and testing trophy, set meaningful coverage thresholds, and optimise CI pipeline execution time.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/testing-engineering/test-architecture-strategy/opengraph-image" alt="Test Architecture Strategy: Pyramid, Trophy, and CI Optimization" /></p>
        <p><em>14 min · intermediate · Testing Engineering</em></p>
        <p>Design a scalable test architecture — apply the test pyramid and testing trophy, set meaningful coverage thresholds, and optimise CI pipeline execution time.</p>
        <p><strong>Topics covered</strong></p><ul><li>test-architecture</li><li>test-pyramid</li><li>coverage</li><li>ci-optimization</li><li>testing-strategy</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/testing-engineering/test-architecture-strategy">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/testing-engineering/test-architecture-strategy">https://www.aiwisdom.dev/articles/testing-engineering/test-architecture-strategy</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/testing-engineering/test-architecture-strategy/opengraph-image" medium="image" />
      <category><![CDATA[testingengineering]]></category>
      <category><![CDATA[testarchitecture]]></category>
      <category><![CDATA[testpyramid]]></category>
      <category><![CDATA[coverage]]></category>
    </item>
  <item>
      <title><![CDATA[Snapshot Testing: When and How to Use toMatchSnapshot]]></title>
      <link>https://www.aiwisdom.dev/articles/testing-engineering/snapshot-testing-guide</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/testing-engineering/snapshot-testing-guide</guid>
      <pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Use snapshot testing effectively — understand inline vs file snapshots, handle dynamic values, avoid snapshot bloat, and know when snapshots add real value.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/testing-engineering/snapshot-testing-guide/opengraph-image" alt="Snapshot Testing: When and How to Use toMatchSnapshot" /></p>
        <p><em>11 min · foundational · Testing Engineering</em></p>
        <p>Use snapshot testing effectively — understand inline vs file snapshots, handle dynamic values, avoid snapshot bloat, and know when snapshots add real value.</p>
        <p><strong>Topics covered</strong></p><ul><li>snapshot-testing</li><li>jest</li><li>vitest</li><li>visual-regression</li><li>testing-patterns</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/testing-engineering/snapshot-testing-guide">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/testing-engineering/snapshot-testing-guide">https://www.aiwisdom.dev/articles/testing-engineering/snapshot-testing-guide</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/testing-engineering/snapshot-testing-guide/opengraph-image" medium="image" />
      <category><![CDATA[testingengineering]]></category>
      <category><![CDATA[snapshottesting]]></category>
      <category><![CDATA[jest]]></category>
      <category><![CDATA[vitest]]></category>
    </item>
  <item>
      <title><![CDATA[Contract Testing with Pact: Consumer-Driven Contracts for Microservices]]></title>
      <link>https://www.aiwisdom.dev/articles/testing-engineering/contract-testing-pact</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/testing-engineering/contract-testing-pact</guid>
      <pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Implement consumer-driven contract testing with Pact and PactFlow — learn pact files, provider verification, can-i-deploy, and bidirectional contracts.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/testing-engineering/contract-testing-pact/opengraph-image" alt="Contract Testing with Pact: Consumer-Driven Contracts for Microservices" /></p>
        <p><em>15 min · intermediate · Testing Engineering</em></p>
        <p>Implement consumer-driven contract testing with Pact and PactFlow — learn pact files, provider verification, can-i-deploy, and bidirectional contracts.</p>
        <p><strong>Topics covered</strong></p><ul><li>contract-testing</li><li>pact</li><li>microservices</li><li>consumer-driven</li><li>pactflow</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/testing-engineering/contract-testing-pact">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/testing-engineering/contract-testing-pact">https://www.aiwisdom.dev/articles/testing-engineering/contract-testing-pact</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/testing-engineering/contract-testing-pact/opengraph-image" medium="image" />
      <category><![CDATA[testingengineering]]></category>
      <category><![CDATA[contracttesting]]></category>
      <category><![CDATA[pact]]></category>
      <category><![CDATA[microservices]]></category>
    </item>
  <item>
      <title><![CDATA[Test-Driven Development: Red-Green-Refactor in Practice]]></title>
      <link>https://www.aiwisdom.dev/articles/testing-engineering/test-driven-development-guide</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/testing-engineering/test-driven-development-guide</guid>
      <pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Apply the TDD cycle — Red-Green-Refactor — to drive better software design. Covers triangulation, outside-in TDD, BDD, and working with legacy code.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/testing-engineering/test-driven-development-guide/opengraph-image" alt="Test-Driven Development: Red-Green-Refactor in Practice" /></p>
        <p><em>14 min · intermediate · Testing Engineering</em></p>
        <p>Apply the TDD cycle — Red-Green-Refactor — to drive better software design. Covers triangulation, outside-in TDD, BDD, and working with legacy code.</p>
        <p><strong>Topics covered</strong></p><ul><li>tdd</li><li>red-green-refactor</li><li>bdd</li><li>software-design</li><li>legacy-code</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/testing-engineering/test-driven-development-guide">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/testing-engineering/test-driven-development-guide">https://www.aiwisdom.dev/articles/testing-engineering/test-driven-development-guide</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/testing-engineering/test-driven-development-guide/opengraph-image" medium="image" />
      <category><![CDATA[testingengineering]]></category>
      <category><![CDATA[tdd]]></category>
      <category><![CDATA[redgreenrefactor]]></category>
      <category><![CDATA[bdd]]></category>
    </item>
  <item>
      <title><![CDATA[E2E Testing with Playwright: Auto-Waiting, Page Objects, and Network Interception]]></title>
      <link>https://www.aiwisdom.dev/articles/testing-engineering/e2e-testing-playwright</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/testing-engineering/e2e-testing-playwright</guid>
      <pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Write reliable end-to-end tests with Playwright — leverage auto-waiting, build Page Object Models, intercept network requests, and eliminate flakiness.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/testing-engineering/e2e-testing-playwright/opengraph-image" alt="E2E Testing with Playwright: Auto-Waiting, Page Objects, and Network Interception" /></p>
        <p><em>15 min · intermediate · Testing Engineering</em></p>
        <p>Write reliable end-to-end tests with Playwright — leverage auto-waiting, build Page Object Models, intercept network requests, and eliminate flakiness.</p>
        <p><strong>Topics covered</strong></p><ul><li>e2e-testing</li><li>playwright</li><li>cypress</li><li>page-objects</li><li>flaky-tests</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/testing-engineering/e2e-testing-playwright">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/testing-engineering/e2e-testing-playwright">https://www.aiwisdom.dev/articles/testing-engineering/e2e-testing-playwright</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/testing-engineering/e2e-testing-playwright/opengraph-image" medium="image" />
      <category><![CDATA[testingengineering]]></category>
      <category><![CDATA[e2etesting]]></category>
      <category><![CDATA[playwright]]></category>
      <category><![CDATA[cypress]]></category>
    </item>
  <item>
      <title><![CDATA[Integration Testing with Testcontainers and WebApplicationFactory]]></title>
      <link>https://www.aiwisdom.dev/articles/testing-engineering/integration-testing-guide</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/testing-engineering/integration-testing-guide</guid>
      <pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Build reliable integration tests using Testcontainers for real databases, WebApplicationFactory for ASP.NET Core, and supertest for Node.js APIs.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/testing-engineering/integration-testing-guide/opengraph-image" alt="Integration Testing with Testcontainers and WebApplicationFactory" /></p>
        <p><em>14 min · intermediate · Testing Engineering</em></p>
        <p>Build reliable integration tests using Testcontainers for real databases, WebApplicationFactory for ASP.NET Core, and supertest for Node.js APIs.</p>
        <p><strong>Topics covered</strong></p><ul><li>integration-testing</li><li>testcontainers</li><li>supertest</li><li>wiremock</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/testing-engineering/integration-testing-guide">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/testing-engineering/integration-testing-guide">https://www.aiwisdom.dev/articles/testing-engineering/integration-testing-guide</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/testing-engineering/integration-testing-guide/opengraph-image" medium="image" />
      <category><![CDATA[testingengineering]]></category>
      <category><![CDATA[integrationtesting]]></category>
      <category><![CDATA[testcontainers]]></category>
      <category><![CDATA[supertest]]></category>
    </item>
  <item>
      <title><![CDATA[Unit Testing Principles: AAA, Isolation, and Test Doubles]]></title>
      <link>https://www.aiwisdom.dev/articles/testing-engineering/unit-testing-principles</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/testing-engineering/unit-testing-principles</guid>
      <pubDate>Sat, 21 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Master the foundational principles of unit testing — Arrange-Act-Assert, test isolation, deterministic tests, and test doubles with Vitest and xUnit.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/testing-engineering/unit-testing-principles/opengraph-image" alt="Unit Testing Principles: AAA, Isolation, and Test Doubles" /></p>
        <p><em>12 min · foundational · Testing Engineering</em></p>
        <p>Master the foundational principles of unit testing — Arrange-Act-Assert, test isolation, deterministic tests, and test doubles with Vitest and xUnit.</p>
        <p><strong>Topics covered</strong></p><ul><li>unit-testing</li><li>vitest</li><li>jest</li><li>xunit</li><li>test-doubles</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/testing-engineering/unit-testing-principles">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/testing-engineering/unit-testing-principles">https://www.aiwisdom.dev/articles/testing-engineering/unit-testing-principles</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/testing-engineering/unit-testing-principles/opengraph-image" medium="image" />
      <category><![CDATA[testingengineering]]></category>
      <category><![CDATA[unittesting]]></category>
      <category><![CDATA[vitest]]></category>
      <category><![CDATA[jest]]></category>
    </item>
  <item>
      <title><![CDATA[Threat Modeling for Developers: STRIDE, DREAD & Beyond]]></title>
      <link>https://www.aiwisdom.dev/articles/security-engineering/threat-modeling-for-developers</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/security-engineering/threat-modeling-for-developers</guid>
      <pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[STRIDE threat categories, data flow diagrams, trust boundaries, attack trees, DREAD scoring, PASTA methodology, and integrating threat modeling into the SDLC.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/security-engineering/threat-modeling-for-developers/opengraph-image" alt="Threat Modeling for Developers: STRIDE, DREAD & Beyond" /></p>
        <p><em>14 min · intermediate · Security Engineering</em></p>
        <p>STRIDE threat categories, data flow diagrams, trust boundaries, attack trees, DREAD scoring, PASTA methodology, and integrating threat modeling into the SDLC.</p>
        <p><strong>Topics covered</strong></p><ul><li>threat-modeling</li><li>stride</li><li>security</li><li>appsec</li><li>sdlc</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/security-engineering/threat-modeling-for-developers">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/security-engineering/threat-modeling-for-developers">https://www.aiwisdom.dev/articles/security-engineering/threat-modeling-for-developers</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/security-engineering/threat-modeling-for-developers/opengraph-image" medium="image" />
      <category><![CDATA[securityengineering]]></category>
      <category><![CDATA[threatmodeling]]></category>
      <category><![CDATA[stride]]></category>
      <category><![CDATA[security]]></category>
    </item>
  <item>
      <title><![CDATA[Secrets Management: Keeping Credentials Out of Code]]></title>
      <link>https://www.aiwisdom.dev/articles/security-engineering/secrets-management-best-practices</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/security-engineering/secrets-management-best-practices</guid>
      <pubDate>Tue, 17 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Vault patterns, dynamic secrets, automated rotation, git secret scanning, HashiCorp Vault, Azure Key Vault, envelope encryption, and incident response for leaked secrets.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/security-engineering/secrets-management-best-practices/opengraph-image" alt="Secrets Management: Keeping Credentials Out of Code" /></p>
        <p><em>13 min · intermediate · Security Engineering</em></p>
        <p>Vault patterns, dynamic secrets, automated rotation, git secret scanning, HashiCorp Vault, Azure Key Vault, envelope encryption, and incident response for leaked secrets.</p>
        <p><strong>Topics covered</strong></p><ul><li>secrets-management</li><li>vault</li><li>security</li><li>key-vault</li><li>devops</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/security-engineering/secrets-management-best-practices">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/security-engineering/secrets-management-best-practices">https://www.aiwisdom.dev/articles/security-engineering/secrets-management-best-practices</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/security-engineering/secrets-management-best-practices/opengraph-image" medium="image" />
      <category><![CDATA[securityengineering]]></category>
      <category><![CDATA[secretsmanagement]]></category>
      <category><![CDATA[vault]]></category>
      <category><![CDATA[security]]></category>
    </item>
  <item>
      <title><![CDATA[Dependency Scanning: Securing Your Software Supply Chain]]></title>
      <link>https://www.aiwisdom.dev/articles/security-engineering/dependency-scanning-supply-chain</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/security-engineering/dependency-scanning-supply-chain</guid>
      <pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Supply chain attacks, CVE scoring, SBOMs, transitive vulnerabilities, lockfile integrity, dependency confusion, Sigstore, and tools like Snyk and Dependabot.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/security-engineering/dependency-scanning-supply-chain/opengraph-image" alt="Dependency Scanning: Securing Your Software Supply Chain" /></p>
        <p><em>13 min · intermediate · Security Engineering</em></p>
        <p>Supply chain attacks, CVE scoring, SBOMs, transitive vulnerabilities, lockfile integrity, dependency confusion, Sigstore, and tools like Snyk and Dependabot.</p>
        <p><strong>Topics covered</strong></p><ul><li>dependency-scanning</li><li>supply-chain</li><li>sbom</li><li>cve</li><li>security</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/security-engineering/dependency-scanning-supply-chain">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/security-engineering/dependency-scanning-supply-chain">https://www.aiwisdom.dev/articles/security-engineering/dependency-scanning-supply-chain</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/security-engineering/dependency-scanning-supply-chain/opengraph-image" medium="image" />
      <category><![CDATA[securityengineering]]></category>
      <category><![CDATA[dependencyscanning]]></category>
      <category><![CDATA[supplychain]]></category>
      <category><![CDATA[sbom]]></category>
    </item>
  <item>
      <title><![CDATA[SAST & DAST: Automated Security Testing in CI/CD]]></title>
      <link>https://www.aiwisdom.dev/articles/security-engineering/sast-dast-security-testing</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/security-engineering/sast-dast-security-testing</guid>
      <pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Static vs dynamic security testing, taint analysis, OWASP ZAP, Semgrep, integrating security gates into pull requests, and measuring programme effectiveness.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/security-engineering/sast-dast-security-testing/opengraph-image" alt="SAST & DAST: Automated Security Testing in CI/CD" /></p>
        <p><em>12 min · intermediate · Security Engineering</em></p>
        <p>Static vs dynamic security testing, taint analysis, OWASP ZAP, Semgrep, integrating security gates into pull requests, and measuring programme effectiveness.</p>
        <p><strong>Topics covered</strong></p><ul><li>sast</li><li>dast</li><li>security-testing</li><li>cicd</li><li>appsec</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/security-engineering/sast-dast-security-testing">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/security-engineering/sast-dast-security-testing">https://www.aiwisdom.dev/articles/security-engineering/sast-dast-security-testing</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/security-engineering/sast-dast-security-testing/opengraph-image" medium="image" />
      <category><![CDATA[securityengineering]]></category>
      <category><![CDATA[sast]]></category>
      <category><![CDATA[dast]]></category>
      <category><![CDATA[securitytesting]]></category>
    </item>
  <item>
      <title><![CDATA[Zero Trust Architecture: Never Trust, Always Verify]]></title>
      <link>https://www.aiwisdom.dev/articles/security-engineering/zero-trust-architecture</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/security-engineering/zero-trust-architecture</guid>
      <pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Core principles of Zero Trust, microsegmentation, identity-centric security, BeyondCorp, continuous verification, and implementing Zero Trust in cloud environments.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/security-engineering/zero-trust-architecture/opengraph-image" alt="Zero Trust Architecture: Never Trust, Always Verify" /></p>
        <p><em>13 min · intermediate · Security Engineering</em></p>
        <p>Core principles of Zero Trust, microsegmentation, identity-centric security, BeyondCorp, continuous verification, and implementing Zero Trust in cloud environments.</p>
        <p><strong>Topics covered</strong></p><ul><li>zero-trust</li><li>security</li><li>network-security</li><li>identity</li><li>cloud-security</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/security-engineering/zero-trust-architecture">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/security-engineering/zero-trust-architecture">https://www.aiwisdom.dev/articles/security-engineering/zero-trust-architecture</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/security-engineering/zero-trust-architecture/opengraph-image" medium="image" />
      <category><![CDATA[securityengineering]]></category>
      <category><![CDATA[zerotrust]]></category>
      <category><![CDATA[security]]></category>
      <category><![CDATA[networksecurity]]></category>
    </item>
  <item>
      <title><![CDATA[OAuth 2.0 & OIDC: Authorization and Identity Explained]]></title>
      <link>https://www.aiwisdom.dev/articles/security-engineering/oauth2-oidc-complete-guide</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/security-engineering/oauth2-oidc-complete-guide</guid>
      <pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[OAuth 2.0 grant types, PKCE, OpenID Connect layers, access vs ID tokens, token introspection, and securing SPAs and APIs with modern auth flows.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/security-engineering/oauth2-oidc-complete-guide/opengraph-image" alt="OAuth 2.0 & OIDC: Authorization and Identity Explained" /></p>
        <p><em>15 min · intermediate · Security Engineering</em></p>
        <p>OAuth 2.0 grant types, PKCE, OpenID Connect layers, access vs ID tokens, token introspection, and securing SPAs and APIs with modern auth flows.</p>
        <p><strong>Topics covered</strong></p><ul><li>oauth2</li><li>oidc</li><li>authentication</li><li>authorization</li><li>security</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/security-engineering/oauth2-oidc-complete-guide">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/security-engineering/oauth2-oidc-complete-guide">https://www.aiwisdom.dev/articles/security-engineering/oauth2-oidc-complete-guide</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/security-engineering/oauth2-oidc-complete-guide/opengraph-image" medium="image" />
      <category><![CDATA[securityengineering]]></category>
      <category><![CDATA[oauth2]]></category>
      <category><![CDATA[oidc]]></category>
      <category><![CDATA[authentication]]></category>
    </item>
  <item>
      <title><![CDATA[JWT Authentication: From Basics to Best Practices]]></title>
      <link>https://www.aiwisdom.dev/articles/security-engineering/jwt-authentication-deep-dive</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/security-engineering/jwt-authentication-deep-dive</guid>
      <pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[How JSON Web Tokens work, signing algorithms (HS256 vs RS256), common vulnerabilities (algorithm confusion, none attack), token storage, and refresh token patterns.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/security-engineering/jwt-authentication-deep-dive/opengraph-image" alt="JWT Authentication: From Basics to Best Practices" /></p>
        <p><em>13 min · intermediate · Security Engineering</em></p>
        <p>How JSON Web Tokens work, signing algorithms (HS256 vs RS256), common vulnerabilities (algorithm confusion, none attack), token storage, and refresh token patterns.</p>
        <p><strong>Topics covered</strong></p><ul><li>jwt</li><li>authentication</li><li>security</li><li>tokens</li><li>oauth</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/security-engineering/jwt-authentication-deep-dive">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/security-engineering/jwt-authentication-deep-dive">https://www.aiwisdom.dev/articles/security-engineering/jwt-authentication-deep-dive</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/security-engineering/jwt-authentication-deep-dive/opengraph-image" medium="image" />
      <category><![CDATA[securityengineering]]></category>
      <category><![CDATA[jwt]]></category>
      <category><![CDATA[authentication]]></category>
      <category><![CDATA[security]]></category>
    </item>
  <item>
      <title><![CDATA[OWASP Top 10: The Developer's Security Checklist]]></title>
      <link>https://www.aiwisdom.dev/articles/security-engineering/owasp-top-10-guide</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/security-engineering/owasp-top-10-guide</guid>
      <pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[A practical guide to the OWASP Top 10 — injection, broken authentication, XSS, IDOR, security misconfigurations, and how to prevent each vulnerability class.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/security-engineering/owasp-top-10-guide/opengraph-image" alt="OWASP Top 10: The Developer's Security Checklist" /></p>
        <p><em>14 min · foundational · Security Engineering</em></p>
        <p>A practical guide to the OWASP Top 10 — injection, broken authentication, XSS, IDOR, security misconfigurations, and how to prevent each vulnerability class.</p>
        <p><strong>Topics covered</strong></p><ul><li>owasp</li><li>security</li><li>web-security</li><li>vulnerabilities</li><li>appsec</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/security-engineering/owasp-top-10-guide">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/security-engineering/owasp-top-10-guide">https://www.aiwisdom.dev/articles/security-engineering/owasp-top-10-guide</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/security-engineering/owasp-top-10-guide/opengraph-image" medium="image" />
      <category><![CDATA[securityengineering]]></category>
      <category><![CDATA[owasp]]></category>
      <category><![CDATA[security]]></category>
      <category><![CDATA[websecurity]]></category>
    </item>
  <item>
      <title><![CDATA[Terraform Workspaces: Multi-Environment Infrastructure]]></title>
      <link>https://www.aiwisdom.dev/articles/infrastructure-as-code/terraform-workspaces</link>
      <guid isPermaLink="true">https://www.aiwisdom.dev/articles/infrastructure-as-code/terraform-workspaces</guid>
      <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Upadhyay]]></dc:creator>
      <description><![CDATA[Terraform workspaces vs separate state files, workspace-based environment promotion, and when to use workspaces vs directory-per-env.]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.aiwisdom.dev/articles/infrastructure-as-code/terraform-workspaces/opengraph-image" alt="Terraform Workspaces: Multi-Environment Infrastructure" /></p>
        <p><em>11 min · intermediate · Infrastructure as Code</em></p>
        <p>Terraform workspaces vs separate state files, workspace-based environment promotion, and when to use workspaces vs directory-per-env.</p>
        <p><strong>Topics covered</strong></p><ul><li>terraform</li><li>workspaces</li><li>iac</li><li>environments</li><li>infrastructure</li></ul>
        <p>👉 <a href="https://www.aiwisdom.dev/articles/infrastructure-as-code/terraform-workspaces">Read the full article on AI Wisdom →</a></p>
        <p><em>Originally published at <a href="https://www.aiwisdom.dev/articles/infrastructure-as-code/terraform-workspaces">https://www.aiwisdom.dev/articles/infrastructure-as-code/terraform-workspaces</a></em></p>]]></content:encoded>
      <media:content url="https://www.aiwisdom.dev/articles/infrastructure-as-code/terraform-workspaces/opengraph-image" medium="image" />
      <category><![CDATA[infrastructureascode]]></category>
      <category><![CDATA[terraform]]></category>
      <category><![CDATA[workspaces]]></category>
      <category><![CDATA[iac]]></category>
    </item>
  </channel>
</rss>