<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Chris Pietschmann</title>
    <description>I&apos;m a Practice Leader, App Innovation specialist, solution architect, developer, SRE, trainer, and author with 25+ years of experience helping enterprises turn AI, app modernization, cloud architecture, and DevOps into real business outcomes.
</description>
    <link>https://www.pietschsoft.com/</link>
    <atom:link href="https://www.pietschsoft.com/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Mon, 08 Jun 2026 10:03:27 -0500</pubDate>
    <lastBuildDate>Mon, 08 Jun 2026 10:03:27 -0500</lastBuildDate>
    <generator>Jekyll v4.2.2</generator>
    
      <item>
        <title>C#: Should This Service Be Singleton, Scoped, or Transient?</title>
        <description>&lt;p&gt;One of the most common ASP.NET Core dependency injection questions sounds simple:&lt;/p&gt;
</description>
        <pubDate>Sun, 24 May 2026 16:10:00 -0500</pubDate>
        <link>https://www.pietschsoft.com/post/2026/05/24/csharp-should-this-service-be-singleton-scoped-or-transient</link>
        <guid isPermaLink="true">https://www.pietschsoft.com/post/2026/05/24/csharp-should-this-service-be-singleton-scoped-or-transient</guid>
        
        <category>C#</category>
        
        <category>.NET</category>
        
        <category>ASP.NET Core</category>
        
        <category>Developer</category>
        
        
        <category>C#</category>
        
        <category>.NET</category>
        
      </item>
    
      <item>
        <title>In C#, When Should You Use Exceptions, Result Objects, or Validation Errors?</title>
        <description>&lt;p&gt;Every C# developer eventually runs into this design question, usually right after a perfectly reasonable method starts returning chaos.&lt;/p&gt;
</description>
        <pubDate>Sun, 24 May 2026 13:45:00 -0500</pubDate>
        <link>https://www.pietschsoft.com/post/2026/05/24/csharp-when-should-you-use-exceptions-result-objects-validation-errors</link>
        <guid isPermaLink="true">https://www.pietschsoft.com/post/2026/05/24/csharp-when-should-you-use-exceptions-result-objects-validation-errors</guid>
        
        <category>Developer</category>
        
        
        <category>.NET</category>
        
        <category>C#</category>
        
      </item>
    
      <item>
        <title>Disposable Software Is the Future: Why Composable Architecture Beats Monoliths and Overbuilt Microservices</title>
        <description>&lt;p&gt;Most software systems do not fail because they were poorly written on day one. They fail because they become too expensive to change on day one thousand.&lt;/p&gt;
</description>
        <pubDate>Wed, 20 May 2026 23:00:00 -0500</pubDate>
        <link>https://www.pietschsoft.com/post/2026/05/20/disposable-software-is-the-future-why-composable-architecture-beats-monoliths-and-overbuilt-microservices</link>
        <guid isPermaLink="true">https://www.pietschsoft.com/post/2026/05/20/disposable-software-is-the-future-why-composable-architecture-beats-monoliths-and-overbuilt-microservices</guid>
        
        <category>Developer</category>
        
        
        <category>Architecture</category>
        
        <category>Design Patterns</category>
        
      </item>
    
      <item>
        <title>C#: How to Refactor Legacy Code Safely</title>
        <description>&lt;p&gt;Legacy C# code is usually not dangerous because it is old. It is dangerous because you do not fully know which parts are stable, which parts are accidentally correct, and which parts are one small change away from breaking production.&lt;/p&gt;
</description>
        <pubDate>Mon, 11 May 2026 06:00:00 -0500</pubDate>
        <link>https://www.pietschsoft.com/post/2026/05/11/csharp-how-to-refactor-legacy-code-safely</link>
        <guid isPermaLink="true">https://www.pietschsoft.com/post/2026/05/11/csharp-how-to-refactor-legacy-code-safely</guid>
        
        <category>C#</category>
        
        <category>.NET</category>
        
        <category>Software Architecture</category>
        
        <category>Developer</category>
        
        
        <category>C#</category>
        
        <category>.NET</category>
        
      </item>
    
      <item>
        <title>C#: Inheritance vs Composition — When to Use Each and Why AI Can&apos;t Decide for You</title>
        <description>&lt;p&gt;Every C# developer eventually hits this question: &lt;em&gt;should I use inheritance or composition here?&lt;/em&gt; And if you ask an AI — or search for articles online — you’ll get the standard answer: “favor composition over inheritance.” That advice isn’t wrong. But it isn’t enough, either.&lt;/p&gt;
</description>
        <pubDate>Fri, 08 May 2026 06:00:00 -0500</pubDate>
        <link>https://www.pietschsoft.com/post/2026/05/08/csharp-inheritance-vs-composition-when-to-use-each</link>
        <guid isPermaLink="true">https://www.pietschsoft.com/post/2026/05/08/csharp-inheritance-vs-composition-when-to-use-each</guid>
        
        <category>.NET</category>
        
        <category>Software Development</category>
        
        <category>Coding</category>
        
        <category>AI</category>
        
        <category>Architecture</category>
        
        
        <category>C#</category>
        
        <category>Design Patterns</category>
        
      </item>
    
      <item>
        <title>C#: Should This Be a Class, Record, Struct, or Interface?</title>
        <description>&lt;p&gt;Every time you add a new type to a C# codebase, you face the same quiet decision: &lt;em&gt;class, record, struct, or interface?&lt;/em&gt; And once you pick &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;class&lt;/code&gt;, a second wave of questions arrives — should it be abstract? sealed? static?&lt;/p&gt;
</description>
        <pubDate>Thu, 07 May 2026 08:00:00 -0500</pubDate>
        <link>https://www.pietschsoft.com/post/2026/05/07/csharp-class-record-struct-or-interface-how-to-choose</link>
        <guid isPermaLink="true">https://www.pietschsoft.com/post/2026/05/07/csharp-class-record-struct-or-interface-how-to-choose</guid>
        
        <category>.NET</category>
        
        <category>C#</category>
        
        <category>Developer</category>
        
        
        <category>C#</category>
        
      </item>
    
      <item>
        <title>Remembering Planet Source Code: Sharing Code Before GitHub Made It Easy</title>
        <description>&lt;p&gt;Every once in a while, something from the early days of my software development journey resurfaces and brings with it a flood of memories. Recently, I came across a &lt;a href=&quot;https://github.com/Planet-Source-Code/PSCIndex/blob/master/ByAuthor/chris-pietschmann.md&quot;&gt;PlanetSourceCode.com archived GitHub page&lt;/a&gt; that lists some old code submissions I contributed more than 20 years ago.&lt;/p&gt;
</description>
        <pubDate>Tue, 05 May 2026 19:20:00 -0500</pubDate>
        <link>https://www.pietschsoft.com/post/2026/05/05/remembering-planet-source-code-sharing-code-before-github-made-it-easy</link>
        <guid isPermaLink="true">https://www.pietschsoft.com/post/2026/05/05/remembering-planet-source-code-sharing-code-before-github-made-it-easy</guid>
        
        
        <category>Community</category>
        
      </item>
    
      <item>
        <title>8 AI Productivity Tips That Took Me Years to Learn (So You Don&apos;t Have To)</title>
        <description>&lt;p&gt;If you work in IT, you should be automating repetitive work. That has always been true. But in today’s landscape of agentic AI tools, it is easier than ever to do it well. Tools like &lt;a href=&quot;https://github.com/features/copilot&quot;&gt;GitHub Copilot&lt;/a&gt; and &lt;a href=&quot;https://docs.anthropic.com/en/docs/claude-code&quot;&gt;Claude Code&lt;/a&gt; are helping tremendously, and even conversational tools like ChatGPT can accelerate your workflow when used deliberately.&lt;/p&gt;
</description>
        <pubDate>Sat, 02 May 2026 08:45:00 -0500</pubDate>
        <link>https://www.pietschsoft.com/post/2026/05/02/ai-productivity-tips-that-took-me-years-to-learn-so-you-dont-have-to</link>
        <guid isPermaLink="true">https://www.pietschsoft.com/post/2026/05/02/ai-productivity-tips-that-took-me-years-to-learn-so-you-dont-have-to</guid>
        
        <category>AI</category>
        
        <category>GitHub Copilot</category>
        
        <category>Productivity</category>
        
        <category>Automation</category>
        
        <category>Career</category>
        
        <category>Developer</category>
        
        
        <category>AI</category>
        
        <category>Career</category>
        
      </item>
    
      <item>
        <title>Agentic AI Tools Are Orchestrators, Not Magic</title>
        <description>&lt;p&gt;&lt;em&gt;The LLM is not doing everything. It is the last 5% of a much larger system.&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 01 May 2026 08:15:00 -0500</pubDate>
        <link>https://www.pietschsoft.com/post/2026/05/01/agentic-ai-tools-are-orchestrators-not-magic</link>
        <guid isPermaLink="true">https://www.pietschsoft.com/post/2026/05/01/agentic-ai-tools-are-orchestrators-not-magic</guid>
        
        <category>AI</category>
        
        <category>GitHub Copilot</category>
        
        <category>LLM</category>
        
        <category>Software Architecture</category>
        
        <category>Developer</category>
        
        
        <category>AI</category>
        
      </item>
    
      <item>
        <title>C# / .NET: The Cleanest Way to Introduce a New Cross-Cutting Concern</title>
        <description>&lt;p&gt;Logging, validation, caching, retries, authorization, telemetry, auditing. Every non-trivial .NET application accumulates cross-cutting concerns — behavior that applies broadly but doesn’t belong in the core business logic of any single feature.&lt;/p&gt;
</description>
        <pubDate>Fri, 01 May 2026 08:00:00 -0500</pubDate>
        <link>https://www.pietschsoft.com/post/2026/05/01/csharp-dotnet-cleanest-way-to-add-cross-cutting-concerns</link>
        <guid isPermaLink="true">https://www.pietschsoft.com/post/2026/05/01/csharp-dotnet-cleanest-way-to-add-cross-cutting-concerns</guid>
        
        <category>C#</category>
        
        <category>.NET</category>
        
        <category>ASP.NET Core</category>
        
        <category>Software Architecture</category>
        
        <category>Design Patterns</category>
        
        
        <category>C#</category>
        
        <category>.NET</category>
        
      </item>
    
  </channel>
</rss>
