<?xml version="1.0" encoding="UTF-8"?>

<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Kirk Tolleshaug | Blog</title>
  <subtitle>Reliable C#/.NET backend systems, versioned APIs, distributed processing, observability, and performance.</subtitle>
  <link rel="self" type="application/atom+xml" href="https://ktoll.dev/feed.xml"/>
  <link rel="alternate" type="text/html" href="https://ktoll.dev/blog/"/>
  <id>https://ktoll.dev/feed.xml</id>
  <updated>2026-10-03T00:00:00+00:00</updated>
  <author>
    <name>Kirk Tolleshaug</name>
    <uri>https://ktoll.dev</uri>
  </author>
  
    <entry>
      <title>Batching, Pagination, and the Day the Data Got Big</title>
      <link rel="alternate" type="text/html" href="https://ktoll.dev/blog/2026/10/03/batching-pagination-and-large-data-volumes/"/>
      <id>https://ktoll.dev/blog/2026/10/03/batching-pagination-and-large-data-volumes/</id>
      <published>2026-10-03T00:00:00+00:00</published>
      <updated>2026-10-03T00:00:00+00:00</updated>
      
        <category term="engineering-practices"/>
      
      
        <category term="performance"/>
      
        <category term="pagination"/>
      
        <category term="batching"/>
      
        <category term="databases"/>
      
        <category term="scalability"/>
      
      <summary>Code that works on hundreds of records often falls over on millions. Bounded reads, keyset pagination, and deliberate batching keep a system predictable as data grows.</summary>
    </entry>
  
    <entry>
      <title>Documentation Is How Engineers Scale</title>
      <link rel="alternate" type="text/html" href="https://ktoll.dev/blog/2026/09/19/documentation-is-how-engineers-scale/"/>
      <id>https://ktoll.dev/blog/2026/09/19/documentation-is-how-engineers-scale/</id>
      <published>2026-09-19T00:00:00+00:00</published>
      <updated>2026-09-19T00:00:00+00:00</updated>
      
        <category term="engineering-practices"/>
      
      
        <category term="documentation"/>
      
        <category term="scaling-impact"/>
      
        <category term="maintainability"/>
      
        <category term="developer-experience"/>
      
        <category term="ai-assisted-development"/>
      
      <summary>Writing things down turns an answer given once into a reference others can use without you. Kept with the code, maintained like code, and generated where it can be.</summary>
    </entry>
  
    <entry>
      <title>Tabkeeper: Pinned Tabs That Follow the Branch</title>
      <link rel="alternate" type="text/html" href="https://ktoll.dev/blog/2026/09/16/tabkeeper-pinned-tabs-that-follow-the-branch/"/>
      <id>https://ktoll.dev/blog/2026/09/16/tabkeeper-pinned-tabs-that-follow-the-branch/</id>
      <published>2026-09-16T00:00:00+00:00</published>
      <updated>2026-09-16T00:00:00+00:00</updated>
      
        <category term="engineering-practices"/>
      
      
        <category term="developer-experience"/>
      
        <category term="tooling"/>
      
        <category term="visual-studio"/>
      
        <category term="vs-code"/>
      
        <category term="side-projects"/>
      
      <summary>Switching branches shouldn&apos;t mean rebuilding your editor layout from memory. Tabkeeper gives each branch its own set of pinned tabs, in both Visual Studio and VS Code, so context-switching costs go back to being about code, not window management.</summary>
    </entry>
  
    <entry>
      <title>Slow Is Smooth, Smooth Is Fast</title>
      <link rel="alternate" type="text/html" href="https://ktoll.dev/blog/2026/09/05/slow-is-smooth-smooth-is-fast/"/>
      <id>https://ktoll.dev/blog/2026/09/05/slow-is-smooth-smooth-is-fast/</id>
      <published>2026-09-05T00:00:00+00:00</published>
      <updated>2026-09-05T00:00:00+00:00</updated>
      
        <category term="engineering-practices"/>
      
      
        <category term="planning"/>
      
        <category term="collaboration"/>
      
        <category term="software-delivery"/>
      
        <category term="reliability"/>
      
      <summary>Taking time to clarify the work, align the people involved, and surface failure modes makes delivery faster where it matters.</summary>
    </entry>
  
</feed>
