<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Open Source on Coderrob</title><link>https://coderrob.com/tags/open-source/</link><description>Recent content in Open Source on Coderrob</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Thu, 02 Apr 2026 10:00:00 -0500</lastBuildDate><atom:link href="https://coderrob.com/tags/open-source/index.xml" rel="self" type="application/rss+xml"/><item><title>Announcing TypeScript Type Guards</title><link>https://coderrob.com/posts/announcing-typescript-type-guards/</link><pubDate>Thu, 02 Apr 2026 10:00:00 -0500</pubDate><guid>https://coderrob.com/posts/announcing-typescript-type-guards/</guid><description>&lt;p&gt;TypeScript is excellent at telling you what you &lt;em&gt;meant&lt;/em&gt; to pass around.&lt;/p&gt;
&lt;p&gt;Runtime is excellent at reminding you that expectations are not a security boundary.&lt;/p&gt;
&lt;p&gt;I published &lt;strong&gt;TypeScript Type Guards&lt;/strong&gt; as a small utility package for narrowing &lt;code&gt;unknown&lt;/code&gt; values without rewriting the same little checks in every project.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;npm: &lt;a href="https://www.npmjs.com/package/@coderrob/typescript-type-guards"&gt;https://www.npmjs.com/package/@coderrob/typescript-type-guards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/Coderrob/typescript-type-guards"&gt;https://github.com/Coderrob/typescript-type-guards&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="why-this-exists"&gt;Why This Exists&lt;/h2&gt;
&lt;p&gt;This sits in the same general trust-and-guardrails bucket as my &lt;a href="https://coderrob.com/posts/announcing-eslint-zero-tolerance-ai-anti-slop-rules/"&gt;ESLint Zero-Tolerance AI anti-slop rules&lt;/a&gt;, but at a different layer.&lt;/p&gt;</description></item><item><title>Contributing to the .NET Runtime</title><link>https://coderrob.com/posts/contributing-to-the-dotnet-runtime/</link><pubDate>Fri, 16 Apr 2021 18:25:55 -0500</pubDate><guid>https://coderrob.com/posts/contributing-to-the-dotnet-runtime/</guid><description>&lt;h2 id="my-first-net-contribution"&gt;My First .Net Contribution&lt;/h2&gt;
&lt;p&gt;Today a feature enhancement I proposed and implemented was merged into the .Net runtime main branch for .Net 6 release!&lt;/p&gt;
&lt;h3 id="the-background"&gt;The Background&lt;/h3&gt;
&lt;p&gt;At the time I was working for a company called, &lt;code&gt;WatchGuard Video&lt;/code&gt;. WatchGuard built body cameras and the evidence management software for them. I was hired originally to come in to help launch &lt;a href="https://support.watchguardvideo.com/hc/en-us/categories/115001623947-Evidence-Library-EL"&gt;Evidence Library&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The site, when I started, was several independent SPA sites in a mono-repository. Myself and the other engineers were working on upgrading ASP.Net Framework to .Net Core. One of the biggest concerns, beyond authentication, was configuration.&lt;/p&gt;</description></item></channel></rss>