<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Chris Kocel</title>
    <description>The latest articles on Forem by Chris Kocel (@0xkkocel).</description>
    <link>https://forem.com/0xkkocel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F308099%2Fcacbf697-bf41-4a52-a24e-3cbd7dc59f06.jpeg</url>
      <title>Forem: Chris Kocel</title>
      <link>https://forem.com/0xkkocel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/0xkkocel"/>
    <language>en</language>
    <item>
      <title>Wednesday Links - Edition 2026-04-01</title>
      <dc:creator>Chris Kocel</dc:creator>
      <pubDate>Wed, 01 Apr 2026 15:42:36 +0000</pubDate>
      <link>https://forem.com/0xkkocel/wednesday-links-edition-2026-04-01-2hmh</link>
      <guid>https://forem.com/0xkkocel/wednesday-links-edition-2026-04-01-2hmh</guid>
      <description>&lt;p&gt;Java Is Fast. Your Code Might Not Be. (12 min)🐢&lt;br&gt;
&lt;a href="https://jvogel.me/posts/2026/java-is-fast-your-code-might-not-be/" rel="noopener noreferrer"&gt;https://jvogel.me/posts/2026/java-is-fast-your-code-might-not-be/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JDK 26 Security Enhancements (14 min)🛡️&lt;br&gt;
&lt;a href="https://seanjmullan.org/blog/2026/03/16/jdk26" rel="noopener noreferrer"&gt;https://seanjmullan.org/blog/2026/03/16/jdk26&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Measuring the Startup Memory Cost for Lazy Iteration Patterns in Java (5 min)💰&lt;br&gt;
&lt;a href="https://donraab.medium.com/measuring-the-startup-memory-cost-for-lazy-iteration-patterns-in-java-be24f4dd5b64" rel="noopener noreferrer"&gt;https://donraab.medium.com/measuring-the-startup-memory-cost-for-lazy-iteration-patterns-in-java-be24f4dd5b64&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One tip for successful OpenTelemetry projects (2 min)💡&lt;br&gt;
&lt;a href="https://blog.frankel.ch/tip-opentelemetry-projects/" rel="noopener noreferrer"&gt;https://blog.frankel.ch/tip-opentelemetry-projects/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Static code analysis in Kotlin — tools overview (16 min)👀&lt;br&gt;
&lt;a href="https://blog.allegro.tech/2026/03/static-code-analysis-kotlin.html" rel="noopener noreferrer"&gt;https://blog.allegro.tech/2026/03/static-code-analysis-kotlin.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>jvm</category>
      <category>security</category>
      <category>kotlin</category>
    </item>
    <item>
      <title>Wednesday Links - Edition 2026-03-25</title>
      <dc:creator>Chris Kocel</dc:creator>
      <pubDate>Wed, 25 Mar 2026 16:43:12 +0000</pubDate>
      <link>https://forem.com/0xkkocel/wednesday-links-edition-2026-03-25-35me</link>
      <guid>https://forem.com/0xkkocel/wednesday-links-edition-2026-03-25-35me</guid>
      <description>&lt;p&gt;The Curious Case of Enum and Map Serialization (5 min)🧐&lt;br&gt;
&lt;a href="https://4comprehension.com/enum-map-serialization/" rel="noopener noreferrer"&gt;https://4comprehension.com/enum-map-serialization/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some Benefits of Enabling Compact Object Headers in Java 25 for Streams (3 min)👜&lt;br&gt;
&lt;a href="https://donraab.medium.com/some-benefits-of-enabling-compact-object-headers-in-java-25-for-streams-8df8b2037e05" rel="noopener noreferrer"&gt;https://donraab.medium.com/some-benefits-of-enabling-compact-object-headers-in-java-25-for-streams-8df8b2037e05&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JavaScript (No, Not That One): Modern Automation with Java (12 min)🦾&lt;br&gt;
&lt;a href="https://lomagnette.github.io/posts/javascript-no-not-that-one-modern-automation-with-java/" rel="noopener noreferrer"&gt;https://lomagnette.github.io/posts/javascript-no-not-that-one-modern-automation-with-java/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Actions for Gradle v6: What's Changing and Why (3 min)🎬&lt;br&gt;
&lt;a href="https://blog.gradle.org/github-actions-for-gradle-v6" rel="noopener noreferrer"&gt;https://blog.gradle.org/github-actions-for-gradle-v6&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Writing an agent skill (2 min)🕵️‍♂️&lt;br&gt;
&lt;a href="https://blog.frankel.ch/writing-agent-skill/" rel="noopener noreferrer"&gt;https://blog.frankel.ch/writing-agent-skill/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Will you go to prison for an AI? (2 min)⚖️&lt;br&gt;
&lt;a href="https://blog.ploeh.dk/2026/03/23/will-you-go-to-prison-for-an-ai/" rel="noopener noreferrer"&gt;https://blog.ploeh.dk/2026/03/23/will-you-go-to-prison-for-an-ai/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Claude Code Template for Spring Boot (13 min)📄&lt;br&gt;
&lt;a href="https://piotrminkowski.com/2026/03/24/claude-code-template-for-spring-boot/" rel="noopener noreferrer"&gt;https://piotrminkowski.com/2026/03/24/claude-code-template-for-spring-boot/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Maybe version ranges are a good idea after all? (6 min)📏&lt;br&gt;
&lt;a href="https://neilmadden.blog/2026/03/19/maybe-version-ranges-are-a-good-idea-after-all/" rel="noopener noreferrer"&gt;https://neilmadden.blog/2026/03/19/maybe-version-ranges-are-a-good-idea-after-all/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>jvm</category>
      <category>gradle</category>
      <category>github</category>
    </item>
    <item>
      <title>Wednesday Links - Edition 2026-03-18</title>
      <dc:creator>Chris Kocel</dc:creator>
      <pubDate>Wed, 18 Mar 2026 16:49:21 +0000</pubDate>
      <link>https://forem.com/0xkkocel/wednesday-links-edition-2026-03-18-470f</link>
      <guid>https://forem.com/0xkkocel/wednesday-links-edition-2026-03-18-470f</guid>
      <description>&lt;p&gt;Java 26 Is Here, And With It a Solid Foundation for the Future (40 min)🏗️&lt;br&gt;
&lt;a href="https://hanno.codes/2026/03/17/java-26-is-here/" rel="noopener noreferrer"&gt;https://hanno.codes/2026/03/17/java-26-is-here/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Java 26 is boring, and that’s a good thing (19 min)😴&lt;br&gt;
&lt;a href="https://mostlynerdless.de/blog/2026/03/17/java-26-is-boring-and-thats-a-good-thing/" rel="noopener noreferrer"&gt;https://mostlynerdless.de/blog/2026/03/17/java-26-is-boring-and-thats-a-good-thing/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JVM Workhorses - Stubs and Intrinsics (10 min)🐴&lt;br&gt;
&lt;a href="https://softwaremill.com/jvm-workhorses-stubs-and-intrinsics/" rel="noopener noreferrer"&gt;https://softwaremill.com/jvm-workhorses-stubs-and-intrinsics/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kubernetes CPU limits - When JVM sees more than it should (9 min)👀&lt;br&gt;
&lt;a href="https://mikemybytes.com/2026/03/12/kubernetes-cpu-limits-when-jvm-sees-more-than-it-should/" rel="noopener noreferrer"&gt;https://mikemybytes.com/2026/03/12/kubernetes-cpu-limits-when-jvm-sees-more-than-it-should/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;tdocker: A Terminal UI for Everyday Docker Commands (3 min)🖥️&lt;br&gt;
&lt;a href="https://4comprehension.com/tdocker-tui/" rel="noopener noreferrer"&gt;https://4comprehension.com/tdocker-tui/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>jvm</category>
      <category>docker</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Wednesday Links - Edition 2026-03-11</title>
      <dc:creator>Chris Kocel</dc:creator>
      <pubDate>Wed, 11 Mar 2026 16:28:27 +0000</pubDate>
      <link>https://forem.com/0xkkocel/wednesday-links-edition-2026-03-11-37bb</link>
      <guid>https://forem.com/0xkkocel/wednesday-links-edition-2026-03-11-37bb</guid>
      <description>&lt;p&gt;Java 26 for DevOps (2 min)☕&lt;br&gt;
&lt;a href="https://inside.java/2026/03/02/jdk-26-rn-ops/" rel="noopener noreferrer"&gt;https://inside.java/2026/03/02/jdk-26-rn-ops/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;HTTP Client Updates in Java 26 (2 min)🌐&lt;br&gt;
&lt;a href="https://inside.java/2026/03/04/jdk-26-http-client/" rel="noopener noreferrer"&gt;https://inside.java/2026/03/04/jdk-26-http-client/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Things I miss about Spring Boot after switching to Go (5 min)🍂&lt;br&gt;
&lt;a href="https://sushantdhiman.dev/things-i-miss-about-spring-boot-after-switching-to-go/" rel="noopener noreferrer"&gt;https://sushantdhiman.dev/things-i-miss-about-spring-boot-after-switching-to-go/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Performance of Lazy and Eager Iteration Patterns on Small Lists in Java (8 min)📈&lt;br&gt;
&lt;a href="https://donraab.medium.com/performance-of-lazy-and-eager-iteration-patterns-on-small-lists-in-java-f4234bef50a5" rel="noopener noreferrer"&gt;https://donraab.medium.com/performance-of-lazy-and-eager-iteration-patterns-on-small-lists-in-java-f4234bef50a5&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Empty Should be Empty (6 min)🔲&lt;br&gt;
&lt;a href="https://donraab.medium.com/empty-should-be-empty-c09e21edc205" rel="noopener noreferrer"&gt;https://donraab.medium.com/empty-should-be-empty-c09e21edc205&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DPoP: What It Is, How It Works, and Why Bearer Tokens Aren’t Enough (8 min)🛡️&lt;br&gt;
&lt;a href="https://foojay.io/today/dpop-what-it-is-how-it-works-and-why-bearer-tokens-arent-enough/" rel="noopener noreferrer"&gt;https://foojay.io/today/dpop-what-it-is-how-it-works-and-why-bearer-tokens-arent-enough/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Quarkus has great performance – and we have new evidence (10 min)🚀&lt;br&gt;
&lt;a href="https://quarkus.io/blog/new-benchmarks/" rel="noopener noreferrer"&gt;https://quarkus.io/blog/new-benchmarks/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You Just Need Postgres (3 min)🐘&lt;br&gt;
&lt;a href="https://youjustneedpostgres.com/" rel="noopener noreferrer"&gt;https://youjustneedpostgres.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Shortcuts (4 min)⌨️&lt;br&gt;
&lt;a href="https://www.andreinc.net/2026/03/09/shortcuts/" rel="noopener noreferrer"&gt;https://www.andreinc.net/2026/03/09/shortcuts/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What Claude Code Actually Chooses (2 min)🤔&lt;br&gt;
&lt;a href="https://amplifying.ai/research/claude-code-picks" rel="noopener noreferrer"&gt;https://amplifying.ai/research/claude-code-picks&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>jvm</category>
      <category>http</category>
      <category>springboot</category>
    </item>
    <item>
      <title>Wednesday Links - Edition 2026-03-04</title>
      <dc:creator>Chris Kocel</dc:creator>
      <pubDate>Wed, 04 Mar 2026 09:30:40 +0000</pubDate>
      <link>https://forem.com/0xkkocel/wednesday-links-edition-2026-03-04-279p</link>
      <guid>https://forem.com/0xkkocel/wednesday-links-edition-2026-03-04-279p</guid>
      <description>&lt;p&gt;JDK 26 G1/Parallel/Serial GC changes (10 min)🗑️&lt;br&gt;
&lt;a href="https://tschatzl.github.io/2026/02/26/jdk26-g1-serial-parallel-gc-changes.html" rel="noopener noreferrer"&gt;https://tschatzl.github.io/2026/02/26/jdk26-g1-serial-parallel-gc-changes.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Moving beyond Strings in Spring Data (8 min)🧵&lt;br&gt;
&lt;a href="https://spring.io/blog/2026/02/27/moving-beyond-strings-in-spring-data" rel="noopener noreferrer"&gt;https://spring.io/blog/2026/02/27/moving-beyond-strings-in-spring-data&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Optimizations in Spring MVC (5 min)🚀&lt;br&gt;
&lt;a href="https://spring.io/blog/2026/02/25/optimizing-spring-mvc" rel="noopener noreferrer"&gt;https://spring.io/blog/2026/02/25/optimizing-spring-mvc&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Surprising += Cast (Rerun) (9 min)😲&lt;br&gt;
&lt;a href="https://www.javaspecialists.eu/archive/Issue333-Surprising--Cast-Rerun.html" rel="noopener noreferrer"&gt;https://www.javaspecialists.eu/archive/Issue333-Surprising--Cast-Rerun.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Avoiding the Next Supply Chain Disaster with GitHub and Gradle (12 min)📦&lt;br&gt;
&lt;a href="https://blog.gradle.org/avoid-supply-chain-disaster-with-github-gradle" rel="noopener noreferrer"&gt;https://blog.gradle.org/avoid-supply-chain-disaster-with-github-gradle&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cipher Downgrade: How a Tomcat Update Could Weaken Your TLS Configuration (3 min)⬇️&lt;br&gt;
&lt;a href="https://foojay.io/today/tomcat-tlsv13-cipher-configuration-spring-boot/" rel="noopener noreferrer"&gt;https://foojay.io/today/tomcat-tlsv13-cipher-configuration-spring-boot/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In defence of correctness (11 min)🛡️&lt;br&gt;
&lt;a href="https://blog.ploeh.dk/2026/03/03/in-defence-of-correctness/" rel="noopener noreferrer"&gt;https://blog.ploeh.dk/2026/03/03/in-defence-of-correctness/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>jvm</category>
      <category>gradle</category>
      <category>spring</category>
    </item>
    <item>
      <title>Wednesday Links - Edition 2026-02-25</title>
      <dc:creator>Chris Kocel</dc:creator>
      <pubDate>Wed, 25 Feb 2026 16:47:04 +0000</pubDate>
      <link>https://forem.com/0xkkocel/wednesday-links-edition-2026-02-25-1lp0</link>
      <guid>https://forem.com/0xkkocel/wednesday-links-edition-2026-02-25-1lp0</guid>
      <description>&lt;p&gt;Dissecting the CPU-Memory Relationship in Garbage Collection (15 min)🗑️&lt;br&gt;
&lt;a href="https://norlinder.nu/posts/GC-Cost-CPU-vs-Memory/" rel="noopener noreferrer"&gt;https://norlinder.nu/posts/GC-Cost-CPU-vs-Memory/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Redacting Data from Heap Dumps via hprof-redact (8 min)🗂️&lt;br&gt;
&lt;a href="https://mostlynerdless.de/blog/2026/02/24/redacting-data-from-heap-dumps-via-hprof-redact/" rel="noopener noreferrer"&gt;https://mostlynerdless.de/blog/2026/02/24/redacting-data-from-heap-dumps-via-hprof-redact/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Quality Outreach Heads-up - JDK 26: DecimalFormat Uses the Double.toString(double) Algorithm (1 min)🔢&lt;br&gt;
&lt;a href="https://inside.java/2026/02/09/quality-heads-up/" rel="noopener noreferrer"&gt;https://inside.java/2026/02/09/quality-heads-up/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JDK 26 Release Notes (3 min)📄&lt;br&gt;
&lt;a href="https://jdk.java.net/26/release-notes" rel="noopener noreferrer"&gt;https://jdk.java.net/26/release-notes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Implementing a PID Controller in Java (6 min)⚙️&lt;br&gt;
&lt;a href="https://4comprehension.com/java-pid-controller/" rel="noopener noreferrer"&gt;https://4comprehension.com/java-pid-controller/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How I estimate work as a staff software engineer (12 min)📊&lt;br&gt;
&lt;a href="https://www.seangoedecke.com/how-i-estimate-work/" rel="noopener noreferrer"&gt;https://www.seangoedecke.com/how-i-estimate-work/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>jvm</category>
      <category>pid</category>
      <category>estimating</category>
    </item>
    <item>
      <title>Wednesday Links - Edition 2026-02-18</title>
      <dc:creator>Chris Kocel</dc:creator>
      <pubDate>Wed, 18 Feb 2026 16:33:14 +0000</pubDate>
      <link>https://forem.com/0xkkocel/wednesday-links-edition-2026-02-18-pod</link>
      <guid>https://forem.com/0xkkocel/wednesday-links-edition-2026-02-18-pod</guid>
      <description>&lt;p&gt;Writing JDK8-Compatible Libraries with Java Platform Module System Support (4 min)🤝&lt;br&gt;
&lt;a href="https://4comprehension.com/jdk8-with-jpms-support/" rel="noopener noreferrer"&gt;https://4comprehension.com/jdk8-with-jpms-support/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What if the add and remove methods in java.util.Collection had fluent counterparts? (4 min)💬&lt;br&gt;
&lt;a href="https://donraab.medium.com/what-if-the-add-and-remove-methods-in-java-util-collection-had-fluent-counterparts-ff2c104a8ca3" rel="noopener noreferrer"&gt;https://donraab.medium.com/what-if-the-add-and-remove-methods-in-java-util-collection-had-fluent-counterparts-ff2c104a8ca3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How to stub external services in integration tests (7 min)🔖&lt;br&gt;
&lt;a href="https://blog.allegro.tech/2026/02/how-to-stub-external-services.html" rel="noopener noreferrer"&gt;https://blog.allegro.tech/2026/02/how-to-stub-external-services.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Announcing TamboUI (3 min)👩‍🍳&lt;br&gt;
&lt;a href="https://melix.github.io/blog//2026/02/17-announcing-tamboui.html" rel="noopener noreferrer"&gt;https://melix.github.io/blog//2026/02/17-announcing-tamboui.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Post-Quantum Hybrid Key Exchange for TLS 1.3 (3 min)🗝️&lt;br&gt;
&lt;a href="https://inside.java/2026/02/17/tls-post-quantum-hybrid-key-exchange/" rel="noopener noreferrer"&gt;https://inside.java/2026/02/17/tls-post-quantum-hybrid-key-exchange/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enabling AI Agents to Use a Real Debugger Instead of Logging (5 min)🐛&lt;br&gt;
&lt;a href="https://foojay.io/today/enabling-ai-agents-to-use-a-real-debugger-instead-of-logging/" rel="noopener noreferrer"&gt;https://foojay.io/today/enabling-ai-agents-to-use-a-real-debugger-instead-of-logging/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Optimizing the MongoDB Java Driver: How minor optimizations led to macro gains (14 min)📈&lt;br&gt;
&lt;a href="https://foojay.io/today/optimizing-the-mongodb-java-driver-how-minor-optimizations-led-to-macro-gains/" rel="noopener noreferrer"&gt;https://foojay.io/today/optimizing-the-mongodb-java-driver-how-minor-optimizations-led-to-macro-gains/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;TIL: Docker log rotation (3 min)🔄&lt;br&gt;
&lt;a href="https://ntietz.com/blog/til-docker-log-rotation" rel="noopener noreferrer"&gt;https://ntietz.com/blog/til-docker-log-rotation&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>jvm</category>
      <category>docker</category>
      <category>mongodb</category>
    </item>
    <item>
      <title>Wednesday Links - Edition 2026-02-11</title>
      <dc:creator>Chris Kocel</dc:creator>
      <pubDate>Wed, 11 Feb 2026 13:49:41 +0000</pubDate>
      <link>https://forem.com/0xkkocel/wednesday-links-edition-2026-02-11-306l</link>
      <guid>https://forem.com/0xkkocel/wednesday-links-edition-2026-02-11-306l</guid>
      <description>&lt;p&gt;LazyConstants in JDK 26 - Inside Java Newscast #106 (10 min)🦥&lt;br&gt;
&lt;a href="https://nipafx.dev/inside-java-newscast-106/" rel="noopener noreferrer"&gt;https://nipafx.dev/inside-java-newscast-106/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;10 Modern Java Features Senior Developers Use to Write 50% Less Code (6 min)✨&lt;br&gt;
&lt;a href="https://medium.com/@martinastaberger/10-modern-java-features-senior-developers-use-to-write-50-less-code-e2bab5d8d410" rel="noopener noreferrer"&gt;https://medium.com/@martinastaberger/10-modern-java-features-senior-developers-use-to-write-50-less-code-e2bab5d8d410&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Java Explores Carrier Classes to Extend Data-Oriented Programming beyond Records (3 min)📮&lt;br&gt;
&lt;a href="https://www.infoq.com/news/2026/02/java-beyond-records/" rel="noopener noreferrer"&gt;https://www.infoq.com/news/2026/02/java-beyond-records/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bootstrapping a Java File System (8 min)🗂️&lt;br&gt;
&lt;a href="https://foojay.io/today/bootstrapping-a-java-file-system/" rel="noopener noreferrer"&gt;https://foojay.io/today/bootstrapping-a-java-file-system/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JEP draft: Code reflection (Incubator) (1 min)🪞&lt;br&gt;
&lt;a href="https://openjdk.org/jeps/8361105" rel="noopener noreferrer"&gt;https://openjdk.org/jeps/8361105&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Testing Emails with Testcontainers and Mailpit (3 min)📧&lt;br&gt;
&lt;a href="https://foojay.io/today/testing-emails-with-testcontainers-and-mailpit/" rel="noopener noreferrer"&gt;https://foojay.io/today/testing-emails-with-testcontainers-and-mailpit/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In Praise of –dry-run (4 min)🪣&lt;br&gt;
&lt;a href="https://henrikwarne.com/2026/01/31/in-praise-of-dry-run/" rel="noopener noreferrer"&gt;https://henrikwarne.com/2026/01/31/in-praise-of-dry-run/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Git Fork Pattern: Full Checkouts Without the Bloat (5 min)🍴 &lt;br&gt;
&lt;a href="https://jonnyzzz.com/blog/2026/02/02/git-fork-pattern/" rel="noopener noreferrer"&gt;https://jonnyzzz.com/blog/2026/02/02/git-fork-pattern/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>jvm</category>
      <category>git</category>
      <category>testcontainers</category>
    </item>
    <item>
      <title>Wednesday Links - Edition 2026-02-04</title>
      <dc:creator>Chris Kocel</dc:creator>
      <pubDate>Wed, 04 Feb 2026 16:50:07 +0000</pubDate>
      <link>https://forem.com/0xkkocel/wednesday-links-edition-2026-02-04-49cl</link>
      <guid>https://forem.com/0xkkocel/wednesday-links-edition-2026-02-04-49cl</guid>
      <description>&lt;p&gt;Project Leyden &amp;amp; JDK 26: Bringing AOT Caching to ZGC (3 min)🪶&lt;br&gt;
&lt;a href="https://softwaremill.com/project-leyden-and-jdk-26-bringing-aot-caching-to-zgc/" rel="noopener noreferrer"&gt;https://softwaremill.com/project-leyden-and-jdk-26-bringing-aot-caching-to-zgc/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ForkJoinPool.asyncCommonPool() (12 min)🏖️&lt;br&gt;
&lt;a href="https://www.javaspecialists.eu/archive/Issue332-ForkJoinPool.asyncCommonPool.html" rel="noopener noreferrer"&gt;https://www.javaspecialists.eu/archive/Issue332-ForkJoinPool.asyncCommonPool.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback on checked exceptions and lambdas (4 min)⚠️&lt;br&gt;
&lt;a href="https://blog.frankel.ch/feedback-checked-exceptions-lambdas/" rel="noopener noreferrer"&gt;https://blog.frankel.ch/feedback-checked-exceptions-lambdas/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Implementing Efficient Last Stream Elements Gatherer in Java (4 min)⛓️&lt;br&gt;
&lt;a href="https://4comprehension.com/java-last-gatherer/" rel="noopener noreferrer"&gt;https://4comprehension.com/java-last-gatherer/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reproducing a Tricky Bug in Minutes With a Custom Linux Scheduler Written in Java (10 min)🐛&lt;br&gt;
&lt;a href="https://mostlynerdless.de/blog/2026/01/26/reproducing-a-tricky-bug-in-minutes-with-a-custom-linux-scheduler-written-in-java/" rel="noopener noreferrer"&gt;https://mostlynerdless.de/blog/2026/01/26/reproducing-a-tricky-bug-in-minutes-with-a-custom-linux-scheduler-written-in-java/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A new way to call C from Java: how fast is it? (11 min)🏃‍♂️&lt;br&gt;
&lt;a href="https://lemire.me/blog/2026/01/17/a-new-way-to-call-c-from-java-how-fast-is-it/" rel="noopener noreferrer"&gt;https://lemire.me/blog/2026/01/17/a-new-way-to-call-c-from-java-how-fast-is-it/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kotlin DSLs in 2026: Patterns That Stood the Test of Time (3 min)⏳&lt;br&gt;
&lt;a href="https://jonnyzzz.com/blog/2026/01/19/kotlin-dsl-2026/" rel="noopener noreferrer"&gt;https://jonnyzzz.com/blog/2026/01/19/kotlin-dsl-2026/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;TechDebt - track and visualize technical debt directly in the codebase (1 min)📉&lt;br&gt;
&lt;a href="https://github.com/igorescodro/tech-debt" rel="noopener noreferrer"&gt;https://github.com/igorescodro/tech-debt&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some Thoughts on the Open Web (8 min)🌐&lt;br&gt;
&lt;a href="https://www.mnot.net/blog/2026/01/20/open_web" rel="noopener noreferrer"&gt;https://www.mnot.net/blog/2026/01/20/open_web&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Software engineers should be a little bit cynical (10 min)😒&lt;br&gt;
&lt;a href="https://www.seangoedecke.com/a-little-bit-cynical" rel="noopener noreferrer"&gt;https://www.seangoedecke.com/a-little-bit-cynical&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>jvm</category>
      <category>kotlin</category>
      <category>web</category>
    </item>
    <item>
      <title>Wednesday Links - Edition 2026-01-21</title>
      <dc:creator>Chris Kocel</dc:creator>
      <pubDate>Wed, 21 Jan 2026 13:57:04 +0000</pubDate>
      <link>https://forem.com/0xkkocel/wednesday-links-edition-2026-01-21-39eg</link>
      <guid>https://forem.com/0xkkocel/wednesday-links-edition-2026-01-21-39eg</guid>
      <description>&lt;p&gt;Pointer Arithmetic in Modern Java (5 min)🔢&lt;br&gt;
&lt;a href="https://davidvlijmincx.com/posts/pointer-arithmetic-in-java/" rel="noopener noreferrer"&gt;https://davidvlijmincx.com/posts/pointer-arithmetic-in-java/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Command completion: IntelliJ IDEA with less shortcuts (6 min)⌨️&lt;br&gt;
&lt;a href="https://maritvandijk.com/command-completion/" rel="noopener noreferrer"&gt;https://maritvandijk.com/command-completion/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm changing my mind about serverless (4 min)☁️&lt;br&gt;
&lt;a href="https://advancedweb.hu/shorts/im-changing-my-mind-about-serverless/" rel="noopener noreferrer"&gt;https://advancedweb.hu/shorts/im-changing-my-mind-about-serverless/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>jvm</category>
      <category>serverless</category>
      <category>intellij</category>
    </item>
    <item>
      <title>Wednesday Links - Edition 2026-01-14</title>
      <dc:creator>Chris Kocel</dc:creator>
      <pubDate>Wed, 14 Jan 2026 12:13:13 +0000</pubDate>
      <link>https://forem.com/0xkkocel/wednesday-links-edition-2026-01-14-5c8j</link>
      <guid>https://forem.com/0xkkocel/wednesday-links-edition-2026-01-14-5c8j</guid>
      <description>&lt;p&gt;One Giant Leap: 95% Less Sampling Cost (13 min)🏃&lt;br&gt;
&lt;a href="https://norlinder.nu/posts/User-CPU-Time-JVM/" rel="noopener noreferrer"&gt;https://norlinder.nu/posts/User-CPU-Time-JVM/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How a 40-Line Fix Eliminated a 400x Performance Gap (17 min)🏃&lt;br&gt;
&lt;a href="https://questdb.com/blog/jvm-current-thread-user-time/" rel="noopener noreferrer"&gt;https://questdb.com/blog/jvm-current-thread-user-time/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run Into the New Year with Java’s Ahead-of-Time Cache Optimizations (8 min)💾&lt;br&gt;
&lt;a href="https://inside.java/2026/01/09/run-aot-cache/" rel="noopener noreferrer"&gt;https://inside.java/2026/01/09/run-aot-cache/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Two regimes of Git (6 min)🏛️&lt;br&gt;
&lt;a href="https://blog.ploeh.dk/2026/01/12/two-regimes-of-git/" rel="noopener noreferrer"&gt;https://blog.ploeh.dk/2026/01/12/two-regimes-of-git/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Week Year: Java Date Formatting With YYYY Instead of yyyy (4 min)📅&lt;br&gt;
&lt;a href="https://todd.ginsberg.com/post/java/beware-of-week-year/" rel="noopener noreferrer"&gt;https://todd.ginsberg.com/post/java/beware-of-week-year/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Fastest Way to get the Version of a Java Installation (5 min)🏎️&lt;br&gt;
&lt;a href="https://mostlynerdless.de/blog/2026/01/12/the-fastest-way-to-get-the-version-of-a-java-installation/" rel="noopener noreferrer"&gt;https://mostlynerdless.de/blog/2026/01/12/the-fastest-way-to-get-the-version-of-a-java-installation/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;OpenJDK is faster than GraalVM Java* (2 min)🏎️&lt;br&gt;
&lt;a href="https://mostlynerdless.de/blog/2026/01/09/openjdk-is-faster-than-graalvm-java/" rel="noopener noreferrer"&gt;https://mostlynerdless.de/blog/2026/01/09/openjdk-is-faster-than-graalvm-java/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Java's Plans for 2026 - Inside Java Newscast #104 (9 min)🔮&lt;br&gt;
&lt;a href="https://nipafx.dev/inside-java-newscast-104/" rel="noopener noreferrer"&gt;https://nipafx.dev/inside-java-newscast-104/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>jvm</category>
      <category>performance</category>
      <category>git</category>
    </item>
    <item>
      <title>Wednesday Links - Edition 2026-01-07</title>
      <dc:creator>Chris Kocel</dc:creator>
      <pubDate>Wed, 07 Jan 2026 21:05:11 +0000</pubDate>
      <link>https://forem.com/0xkkocel/wednesday-links-edition-2026-01-07-7fk</link>
      <guid>https://forem.com/0xkkocel/wednesday-links-edition-2026-01-07-7fk</guid>
      <description>&lt;p&gt;Avoiding Fake Drift in Unit Tests (6 min)⛵&lt;br&gt;
&lt;a href="https://4comprehension.com/avoiding-fake-drift/" rel="noopener noreferrer"&gt;https://4comprehension.com/avoiding-fake-drift/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Virtual Thread States (12 min)🔄&lt;br&gt;
&lt;a href="https://www.javaspecialists.eu/archive/Issue331-Virtual-Thread-States.html" rel="noopener noreferrer"&gt;https://www.javaspecialists.eu/archive/Issue331-Virtual-Thread-States.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>jvm</category>
      <category>junit</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
