<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Nate Schmoll</title>
    <link>https://nat.sh/</link>
    <description>Recent content on Nate Schmoll</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>Nate Schmoll</copyright>
    <lastBuildDate>Wed, 04 Mar 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://nat.sh/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>SCRU128: my new favorite way to do IDs</title>
      <link>https://nat.sh/thoughts/scru128/</link>
      <pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://nat.sh/thoughts/scru128/</guid>
      <description>&lt;p&gt;I’ve recently switched a bunch of my projects over to SCRU128 (Sortable, Clock and Random number-based Unique identifier), replacing UUIDv4 and earlier experiments with ULID and KSUID, and it’s been one of those small changes that quietly improves everything.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading&#34; id=&#34;rationale&#34;&gt;&#xA;  Rationale&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#rationale&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Traditional UUIDv4 provides strong uniqueness but lacks temporal ordering, leading to index fragmentation and poor locality for time-based database queries. There are alternatives like ULID which offer millisecond timestamps and basic monotonicity, but their 80-bit randomness can result in non-strict ordering under high-frequency generation. KSUID, originally authored in 2017 by Segment, provides 128 random bits but uses 160 bits altogether, has relatively poor timestamp resolution, and is longer with its 27-character strings.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New projects on GitHub</title>
      <link>https://nat.sh/thoughts/new-projects-on-github/</link>
      <pubDate>Thu, 19 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://nat.sh/thoughts/new-projects-on-github/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve spent some time on personal coding projects lately and have finally&#xA;brought a few items to some level of completion. Here are some CLI-based&#xA;tools that are now in a &amp;ldquo;1.0&amp;rdquo; state, so I&amp;rsquo;m releasing them on GitHub.&lt;/p&gt;&#xA;&lt;p&gt;Each project provides binary releases for multiple popular operating systems&#xA;with &lt;code&gt;amd64&lt;/code&gt; and &lt;code&gt;arm64&lt;/code&gt; architectures. Everything is written in&#xA;&lt;a href=&#34;https://go.dev&#34;&gt;Go&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;PRs welcome! Here are the projects&amp;hellip;&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading&#34; id=&#34;nateratorlambda-deploy-log-compare&#34;&gt;&#xA;  &lt;a href=&#34;https://github.com/naterator/lambda-deploy-log-compare&#34;&gt;naterator/lambda-deploy-log-compare&lt;/a&gt;&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#nateratorlambda-deploy-log-compare&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Tool for taking snapshots of AWS Lambda logs and comparing them across&#xA;deployments.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Explaining generative AI accuracy</title>
      <link>https://nat.sh/thoughts/explaining-generative-ai-accuracy/</link>
      <pubDate>Sun, 17 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://nat.sh/thoughts/explaining-generative-ai-accuracy/</guid>
      <description>&lt;p&gt;Explaining Generative AI (GAI) to people and how it &amp;ldquo;magically&amp;rdquo; produces content/output is sometimes difficult to do in a concise, understandable way, but the best way I&amp;rsquo;ve figured out how to do it is to communicate that &lt;em&gt;everything&lt;/em&gt; produced by GAI is &amp;ldquo;made up&amp;rdquo;. Here&amp;rsquo;s a quick example of how I explain it.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading&#34; id=&#34;hallucinating&#34;&gt;&#xA;  Hallucinating&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#hallucinating&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;GAI, like large language models (LLMs), often produces outputs that may seem true at first glance, but can be completely made up. This is known as &amp;ldquo;hallucinating&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AirPods observation</title>
      <link>https://nat.sh/thoughts/airpods-observation/</link>
      <pubDate>Mon, 12 May 2025 00:00:00 +0000</pubDate>
      <guid>https://nat.sh/thoughts/airpods-observation/</guid>
      <description>&lt;p&gt;I have a theory about why one AirPod&amp;rsquo;s battery seems to consistently drain&#xA;slightly faster in a given pair of #AirPods. This is in the case of listening&#xA;to music, where the audio processing and output would be fairly balanced&#xA;(ie, unlike a case where only one AirPod is being used for a phone call).&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading&#34; id=&#34;here-it-goes&#34;&gt;&#xA;  Here it goes&amp;hellip;&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#here-it-goes&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Each AirPod is an independent Bluetooth device working in coordination and&#xA;presenting themselves to the source as a single device (MAC address). This&#xA;means that only one of them (&amp;ldquo;primary&amp;rdquo;) is actually transmitting data to and&#xA;from the source device, and is then passing data over to the &amp;ldquo;secondary&amp;rdquo;&#xA;AirPod. This extra overhead means one drains slightly faster than the other.&lt;/p&gt;</description>
    </item>
    <item>
      <title>First thought</title>
      <link>https://nat.sh/thoughts/first-thought/</link>
      <pubDate>Thu, 03 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://nat.sh/thoughts/first-thought/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Welcome to my new web site&amp;hellip; for the 20th time!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Greetings! I&amp;rsquo;ve gone through dozens of revisions on my web site over the&#xA;years, and this is the latest-yet-greatest one! It uses&#xA;&lt;a href=&#34;https://gohugo.io&#34;&gt;Hugo&lt;/a&gt;, &lt;a href=&#34;https://www.markdownguide.org&#34;&gt;Markdown&lt;/a&gt;, and is&#xA;very easy to maintain, which I&amp;rsquo;m excited about. That is because the&#xA;aforementioned means my web site will be&amp;hellip; &lt;strong&gt;updated regularly&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll see how this goes&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://nat.sh/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://nat.sh/about/</guid>
      <description>&lt;p&gt;Greetings! I&amp;rsquo;m Nate and also:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a dad&lt;/li&gt;&#xA;&lt;li&gt;a husband&lt;/li&gt;&#xA;&lt;li&gt;a Christian&lt;/li&gt;&#xA;&lt;li&gt;a Site Reliability Engineer&lt;/li&gt;&#xA;&lt;li&gt;an aspiring music producer&lt;/li&gt;&#xA;&lt;li&gt;an entrepreneur&lt;/li&gt;&#xA;&lt;li&gt;a big-time breakfast fiend&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;When I&amp;rsquo;m not busy being one or more of the above, I like to:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;read&lt;/li&gt;&#xA;&lt;li&gt;find good, new music&lt;/li&gt;&#xA;&lt;li&gt;study financial markets&lt;/li&gt;&#xA;&lt;li&gt;learn about the latest tax code changes&lt;/li&gt;&#xA;&lt;li&gt;catch up on news&lt;/li&gt;&#xA;&lt;li&gt;play golf&lt;/li&gt;&#xA;&lt;li&gt;shoot guns&lt;/li&gt;&#xA;&lt;li&gt;contemplate the nature of the world&lt;/li&gt;&#xA;&lt;li&gt;learn more about people&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>E-Mail</title>
      <link>https://nat.sh/email/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://nat.sh/email/</guid>
      <description>&lt;p&gt;To get in touch, please e-mail me at:&lt;/p&gt;&#xA;&lt;h3&gt;&lt;script type=&#34;text/javascript&#34;&gt;&lt;!--&#xA;for(var ilsnlf=[&#34;YQ&#34;,&#34;PA&#34;,&#34;cg&#34;,&#34;dA&#34;,&#34;bQ&#34;,&#34;bw&#34;,&#34;YQ&#34;,&#34;Zg&#34;,&#34;ZQ&#34;,&#34;Pg&#34;,&#34;bA&#34;,&#34;PQ&#34;,&#34;bg&#34;,&#34;ZQ&#34;,&#34;Lg&#34;,&#34;dA&#34;,&#34;bQ&#34;,&#34;Ig&#34;,&#34;Lg&#34;,&#34;dA&#34;,&#34;YQ&#34;,&#34;ZQ&#34;,&#34;aA&#34;,&#34;cw&#34;,&#34;Ig&#34;,&#34;PA&#34;,&#34;QA&#34;,&#34;bg&#34;,&#34;aA&#34;,&#34;cw&#34;,&#34;aQ&#34;,&#34;Pg&#34;,&#34;aA&#34;,&#34;YQ&#34;,&#34;YQ&#34;,&#34;IA&#34;,&#34;Og&#34;,&#34;QA&#34;,&#34;Lw&#34;,&#34;bQ&#34;],vkhqbq=[31,36,4,13,9,14,38,6,28,39,12,7,19,17,22,32,16,8,33,21,1,5,3,34,25,0,29,30,35,23,11,26,24,20,10,2,15,18,37,27],wvhnor=new Array,i=0;i&lt;vkhqbq.length;i++)wvhnor[vkhqbq[i]]=ilsnlf[i];for(var i=0;i&lt;wvhnor.length;i++)document.write(atob(wvhnor[i]+&#34;==&#34;));&#xA;// --&gt;&lt;/script&gt;&lt;noscript&gt;**Enable JavaScript to view e-mail address.**&lt;/noscript&gt;&lt;/h3&gt;&#xA;&lt;p&gt;I read every e-mail received.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Resume</title>
      <link>https://nat.sh/resumehtml/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://nat.sh/resumehtml/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://nat.sh/resume&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; style=&#34;margin-top: -3.5em; float: right;&#34;&gt;Available in PDF format &lt;span style=&#34;white-space: nowrap;&#34;&gt;&lt;svg width=&#34;.7em&#34; height=&#34;.7em&#34; viewBox=&#34;0 0 21 21&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;&lt;path d=&#34;m13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z&#34; fill=&#34;currentColor&#34;/&gt;&lt;path d=&#34;M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z&#34; fill=&#34;currentColor&#34;&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Infrastructure, Production, DevOps, Site Reliability, and Cloud Security Engineer&lt;/em&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 class=&#34;heading&#34; id=&#34;overview&#34;&gt;&#xA;  Overview&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#overview&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Versatile engineer with over 15 years of relevant experience optimizing secure, scalable, and cloud-native infrastructure. Expert in coding for software and infrastructure deployment using modern AI tooling, on-the-fly incident troubleshooting across network, system, and application layers, and mentoring team members to drive operational excellence. Proven success automating deployments for FedRAMP and PCI-DSS compliant environments, reducing mean time to resolution (MTTR), and fostering cross-functional collaboration to deliver robust systems.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
