

<feed xmlns="http://www.w3.org/2005/Atom">
  <id>/</id>
  <title>Neil's NIPO R&amp;D</title>
  <subtitle>Notes from my R&amp;D days.</subtitle>
  <updated>2026-07-09T13:09:16+02:00</updated>
  <author>
    <name>Neil Boyd</name>
    <uri>/</uri>
  </author>
  <link rel="self" type="application/atom+xml" href="/feed.xml"/>
  <link rel="alternate" type="text/html" hreflang="en"
    href="/"/>
  <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator>
  <rights> © 2026 Neil Boyd </rights>
  <icon>/assets/img/favicons/favicon.ico</icon>
  <logo>/assets/img/favicons/favicon-96x96.png</logo>


  
  <entry>
    <title>8 July 2026</title>
    <link href="/posts/2026-07-08/" rel="alternate" type="text/html" title="8 July 2026" />
    <published>2026-07-08T00:00:00+02:00</published>
  
    <updated>2026-07-08T00:00:00+02:00</updated>
  
    <id>/posts/2026-07-08/</id>
    <content type="text/html" src="/posts/2026-07-08/" />
    <author>
      <name>Neil Boyd</name>
    </author>

  
    
  

  <summary>When Agentic Coding Breaks Code Review  A couple of very familiar phenomena.  CORS: What is it protecting?  Explaining that CORS is a browser security measure, in case you didn’t already know that.  EF Core in Clean Architecture the Pragmatic Way  Making the case for using EF Core DbContext directly instead of adding a repository extraction, because EF Core is already an abstraction.  Spec-driv...</summary>

  </entry>

  
  <entry>
    <title>27 May 2026</title>
    <link href="/posts/2026-05-27/" rel="alternate" type="text/html" title="27 May 2026" />
    <published>2026-05-27T00:00:00+02:00</published>
  
    <updated>2026-05-27T00:00:00+02:00</updated>
  
    <id>/posts/2026-05-27/</id>
    <content type="text/html" src="/posts/2026-05-27/" />
    <author>
      <name>Neil Boyd</name>
    </author>

  
    
  

  <summary>Functional Programming in C# 15: Union Types and the ApiResult Monad     A union type is a type that holds exactly one of several named cases at a time.   Think of a monad as a smart wrapper around a value that lets you chain operations without checking for errors at every step. The wrapper carries the result or the failure through the pipeline — you only inspect the outcome at the end.   We ca...</summary>

  </entry>

  
  <entry>
    <title>2 April 2026</title>
    <link href="/posts/2026-04-02/" rel="alternate" type="text/html" title="2 April 2026" />
    <published>2026-04-02T00:00:00+02:00</published>
  
    <updated>2026-04-02T00:00:00+02:00</updated>
  
    <id>/posts/2026-04-02/</id>
    <content type="text/html" src="/posts/2026-04-02/" />
    <author>
      <name>Neil Boyd</name>
    </author>

  
    
  

  <summary>Solving the Distributed Cache Invalidation Problem with Redis and HybridCache  How to use Redis pub/sub to invalidate the cache across multiple instances of an application using HybridCache.  They also mention that you could use FusionCache to do it all for you.  Cleaner switch expressions with pattern matching in C#  Example: return environment.ToLower() switch {     "dev"            =&amp;gt; dev...</summary>

  </entry>

  
  <entry>
    <title>23 February 2026</title>
    <link href="/posts/2026-02-23/" rel="alternate" type="text/html" title="23 February 2026" />
    <published>2026-02-23T00:00:00+01:00</published>
  
    <updated>2026-02-23T00:00:00+01:00</updated>
  
    <id>/posts/2026-02-23/</id>
    <content type="text/html" src="/posts/2026-02-23/" />
    <author>
      <name>Neil Boyd</name>
    </author>

  
    
  

  <summary>Web Components Are the Comeback Nobody Saw Coming  When Web Components were first introduced, browser support was a bit spotty, and developers were keen to use the latest framework. Now, developers are getting tired of the complexity of frameworks, and Web Components are fully supported in all major browsers, so they are making a comeback.  Why Developers Are Ditching Frameworks for Vanilla Jav...</summary>

  </entry>

  
  <entry>
    <title>23 December 2025</title>
    <link href="/posts/2025-12-23/" rel="alternate" type="text/html" title="23 December 2025" />
    <published>2025-12-23T00:00:00+01:00</published>
  
    <updated>2025-12-23T00:00:00+01:00</updated>
  
    <id>/posts/2025-12-23/</id>
    <content type="text/html" src="/posts/2025-12-23/" />
    <author>
      <name>Neil Boyd</name>
    </author>

  
    
  

  <summary>No More Mocking ILogger  Instead of mocking ILogger use the FakeLogger class from the Microsoft.Extensions.Diagnostics.Testing package. It doesn’t help us, sadly, because we use Serilog.  GitHub MCP Registry Offers a Central Hub for Discovering and Deploying MCP Servers  Lots of MCP models to plug in to wherever you use them.  Mistakes I see engineers making in their code reviews     Don’t just...</summary>

  </entry>

</feed>


