
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
      <title>Ryan Todd</title>
      <link>https://ryantodd.dev/blog</link>
      <description>Notes on AI, operational automation, cloud infrastructure, and platform engineering.</description>
      <language>en-us</language>
      <managingEditor>rmtodd618@gmail.com (Ryan Todd)</managingEditor>
      <webMaster>rmtodd618@gmail.com (Ryan Todd)</webMaster>
      <lastBuildDate>Fri, 29 May 2026 00:00:00 GMT</lastBuildDate>
      <atom:link href="https://ryantodd.dev/tags/azure-devops/feed.xml" rel="self" type="application/rss+xml"/>
      
  <item>
    <guid>https://ryantodd.dev/blog/why-i-centralized-azure-pipeline-logic</guid>
    <title>Why I Centralized Azure DevOps Pipeline Logic</title>
    <link>https://ryantodd.dev/blog/why-i-centralized-azure-pipeline-logic</link>
    <description>A common pattern gives every repository its own complete pipeline definition. It feels self-contained until you are the person maintaining all of them — and you realize you are maintaining copies of the same release process. This is why I rebuilt our pipelines as a platform using extends templates, and the trade-off that came with it.</description>
    <pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate>
    <author>rmtodd618@gmail.com (Ryan Todd)</author>
    <category>ci-cd</category><category>azure-devops</category><category>platform-engineering</category><category>release-engineering</category><category>pipelines</category>
  </item>

    </channel>
  </rss>
