<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Java Coding Notes</title>
  <link>https://sergueyshinder.dev/</link>
  <description>Notes on Java, the JVM and writing software that lasts</description>
  <language>en</language>
  <atom:link href="https://sergueyshinder.dev/feed.xml" rel="self" type="application/rss+xml"/>
  <lastBuildDate>Sat, 19 Sep 2026 08:30:00 +0100</lastBuildDate>
  <item>
    <title>lastmod is the cheapest crawl optimisation you are not doing</title>
    <link>https://sergueyshinder.dev/news/sitemap-lastmod/</link>
    <guid isPermaLink="true">https://sergueyshinder.dev/news/sitemap-lastmod/</guid>
    <pubDate>Sat, 19 Sep 2026 08:30:00 +0100</pubDate>
    <description>One tag per URL, and the crawler stops guessing what changed.</description>
  </item>
  <item>
    <title>How I read a JDK release note in ten minutes</title>
    <link>https://sergueyshinder.dev/news/reading-release-notes/</link>
    <guid isPermaLink="true">https://sergueyshinder.dev/news/reading-release-notes/</guid>
    <pubDate>Fri, 18 Sep 2026 18:40:00 +0100</pubDate>
    <description>A filter for release notes that keeps the two sections that matter.</description>
  </item>
  <item>
    <title>I counted the dependencies in a service I inherited</title>
    <link>https://sergueyshinder.dev/news/dependency-count/</link>
    <guid isPermaLink="true">https://sergueyshinder.dev/news/dependency-count/</guid>
    <pubDate>Thu, 17 Sep 2026 11:30:00 +0100</pubDate>
    <description>Nine direct, four hundred and six transitive. A note on what that costs.</description>
  </item>
  <item>
    <title>Java records are not structs, and the difference will bite you</title>
    <link>https://sergueyshinder.dev/java/records-are-not-structs/</link>
    <guid isPermaLink="true">https://sergueyshinder.dev/java/records-are-not-structs/</guid>
    <pubDate>Wed, 16 Sep 2026 10:20:00 +0100</pubDate>
    <description>Value semantics, mutable components, and the equals() trap.</description>
  </item>
  <item>
    <title>The abstraction you added for the second case is usually wrong</title>
    <link>https://sergueyshinder.dev/ideas/delete-the-abstraction/</link>
    <guid isPermaLink="true">https://sergueyshinder.dev/ideas/delete-the-abstraction/</guid>
    <pubDate>Tue, 15 Sep 2026 16:00:00 +0100</pubDate>
    <description>Two examples is not a pattern. It is two examples.</description>
  </item>
  <item>
    <title>Stack traces got shorter and nobody told the logs</title>
    <link>https://sergueyshinder.dev/news/stack-traces/</link>
    <guid isPermaLink="true">https://sergueyshinder.dev/news/stack-traces/</guid>
    <pubDate>Mon, 14 Sep 2026 08:15:00 +0100</pubDate>
    <description>An older note, kept here to show what falls out of the news window.</description>
  </item>
  <item>
    <title>Virtual threads: the pinning problem and how to find it</title>
    <link>https://sergueyshinder.dev/java/virtual-threads-pinning/</link>
    <guid isPermaLink="true">https://sergueyshinder.dev/java/virtual-threads-pinning/</guid>
    <pubDate>Sat, 12 Sep 2026 09:05:00 +0100</pubDate>
    <description>Why your virtual threads are not scaling, and the flag that tells you.</description>
  </item>
  <item>
    <title>Logs are a product, and your user is you at three in the morning</title>
    <link>https://sergueyshinder.dev/ideas/logs-are-a-product/</link>
    <guid isPermaLink="true">https://sergueyshinder.dev/ideas/logs-are-a-product/</guid>
    <pubDate>Thu, 10 Sep 2026 20:10:00 +0100</pubDate>
    <description>Write the line you will need, not the line that is easy to write.</description>
  </item>
  <item>
    <title>Optional is a return type, not a field type</title>
    <link>https://sergueyshinder.dev/java/optional-is-a-return-type/</link>
    <guid isPermaLink="true">https://sergueyshinder.dev/java/optional-is-a-return-type/</guid>
    <pubDate>Tue, 08 Sep 2026 14:45:00 +0100</pubDate>
    <description>Where Optional earns its cost, and the three places it does not.</description>
  </item>
</channel>
</rss>