<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[High-Level Developer]]></title><description><![CDATA[Here you will find some articles related to software development best practices and key concepts, to help you become a High-Level programmer, fully confident in your abilities, and unlock the next level in your career]]></description><link>https://devjava.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!E170!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1afba9fe-52a1-423b-b5a1-05f3da32b2ba_1024x1024.png</url><title>High-Level Developer</title><link>https://devjava.substack.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 22 Aug 2026 10:04:39 GMT</lastBuildDate><atom:link href="https://devjava.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Thiago Bomfim]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[devjava@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[devjava@substack.com]]></itunes:email><itunes:name><![CDATA[Thiago Bomfim]]></itunes:name></itunes:owner><itunes:author><![CDATA[Thiago Bomfim]]></itunes:author><googleplay:owner><![CDATA[devjava@substack.com]]></googleplay:owner><googleplay:email><![CDATA[devjava@substack.com]]></googleplay:email><googleplay:author><![CDATA[Thiago Bomfim]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The HTTP QUERY Method: A Better Way to Filter Resources]]></title><description><![CDATA[In REST APIs, GET is the standard method for retrieving resources.]]></description><link>https://devjava.substack.com/p/the-http-query-method-a-better-way</link><guid isPermaLink="false">https://devjava.substack.com/p/the-http-query-method-a-better-way</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 09 Aug 2026 09:10:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!e78s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5725db77-5a48-4d69-bb3e-fa6e9143c80f_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!e78s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5725db77-5a48-4d69-bb3e-fa6e9143c80f_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e78s!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5725db77-5a48-4d69-bb3e-fa6e9143c80f_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!e78s!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5725db77-5a48-4d69-bb3e-fa6e9143c80f_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!e78s!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5725db77-5a48-4d69-bb3e-fa6e9143c80f_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!e78s!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5725db77-5a48-4d69-bb3e-fa6e9143c80f_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!e78s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5725db77-5a48-4d69-bb3e-fa6e9143c80f_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5725db77-5a48-4d69-bb3e-fa6e9143c80f_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2018311,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/208838030?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5725db77-5a48-4d69-bb3e-fa6e9143c80f_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!e78s!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5725db77-5a48-4d69-bb3e-fa6e9143c80f_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!e78s!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5725db77-5a48-4d69-bb3e-fa6e9143c80f_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!e78s!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5725db77-5a48-4d69-bb3e-fa6e9143c80f_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!e78s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5725db77-5a48-4d69-bb3e-fa6e9143c80f_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In REST APIs, <strong>GET</strong> is the standard method for retrieving resources.</p><p>It works well for simple filters:</p><pre><code><code>GET /products?category=books&amp;sort=price</code></code></pre><p>But what happens when the filter becomes more complex?</p><p>Multiple criteria, nested objects, long lists, and advanced search conditions can quickly make the URL difficult to read, or even exceed URL length limits.</p><p>A common workaround is to create a <strong>POST</strong> endpoint, with the search criteria in the request body.</p><p>Although practical, this approach has a downside: <strong>POST was not designed for safe, idempotent queries</strong>. It mixes data retrieval with a method primarily intended for creating or processing resources.</p><h2>&#128161; The Solution: HTTP QUERY</h2><p>In <strong>June 2026</strong>, the IETF published <strong><a href="https://www.rfc-editor.org/info/rfc10008/">RFC 10008</a></strong>, introducing a new HTTP method: <strong>QUERY</strong>.</p><p>The goal is simple:</p><blockquote><p><strong>Allow complex queries in the request body while keeping the semantics of a read-only operation.</strong></p></blockquote><p>Instead of overloading POST, you can now write:</p><pre><code><code>QUERY /contacts HTTP/1.1
Host: example.org
Content-Type: application/x-www-form-urlencoded
Accept: application/json

select=surname,givenname,email&amp;limit=10&amp;match=%22email=*@example.*%22</code></code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4Jni!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fee380c-dbde-4624-b715-778fc9bc3a37_2439x1998.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4Jni!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fee380c-dbde-4624-b715-778fc9bc3a37_2439x1998.png 424w, https://substackcdn.com/image/fetch/$s_!4Jni!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fee380c-dbde-4624-b715-778fc9bc3a37_2439x1998.png 848w, https://substackcdn.com/image/fetch/$s_!4Jni!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fee380c-dbde-4624-b715-778fc9bc3a37_2439x1998.png 1272w, https://substackcdn.com/image/fetch/$s_!4Jni!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fee380c-dbde-4624-b715-778fc9bc3a37_2439x1998.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4Jni!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fee380c-dbde-4624-b715-778fc9bc3a37_2439x1998.png" width="1456" height="1193" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3fee380c-dbde-4624-b715-778fc9bc3a37_2439x1998.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1193,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4Jni!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fee380c-dbde-4624-b715-778fc9bc3a37_2439x1998.png 424w, https://substackcdn.com/image/fetch/$s_!4Jni!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fee380c-dbde-4624-b715-778fc9bc3a37_2439x1998.png 848w, https://substackcdn.com/image/fetch/$s_!4Jni!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fee380c-dbde-4624-b715-778fc9bc3a37_2439x1998.png 1272w, https://substackcdn.com/image/fetch/$s_!4Jni!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fee380c-dbde-4624-b715-778fc9bc3a37_2439x1998.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>&#128214; Learn More</h2><p>If you&#8217;re designing modern REST APIs, RFC 10008 is worth reading:</p><p>&#128073; <a href="https://www.rfc-editor.org/info/rfc10008/">https://www.rfc-editor.org/info/rfc10008/</a></p>]]></content:encoded></item><item><title><![CDATA[IntelliJ IDEA Conf 2026: The Free Java Conference You Shouldn't Miss]]></title><description><![CDATA[If you&#8217;re looking to stay up to date with Java, Spring, AI, and the JVM ecosystem, IntelliJ IDEA Conf 2026 is an event worth adding to your calendar.]]></description><link>https://devjava.substack.com/p/intellij-idea-conf-2026-the-free</link><guid isPermaLink="false">https://devjava.substack.com/p/intellij-idea-conf-2026-the-free</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 02 Aug 2026 09:10:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bMVX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc46c734b-5c3a-439b-a5de-cecf78f65b04_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bMVX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc46c734b-5c3a-439b-a5de-cecf78f65b04_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bMVX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc46c734b-5c3a-439b-a5de-cecf78f65b04_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!bMVX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc46c734b-5c3a-439b-a5de-cecf78f65b04_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!bMVX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc46c734b-5c3a-439b-a5de-cecf78f65b04_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!bMVX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc46c734b-5c3a-439b-a5de-cecf78f65b04_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bMVX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc46c734b-5c3a-439b-a5de-cecf78f65b04_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c46c734b-5c3a-439b-a5de-cecf78f65b04_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1842183,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/208829518?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc46c734b-5c3a-439b-a5de-cecf78f65b04_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bMVX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc46c734b-5c3a-439b-a5de-cecf78f65b04_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!bMVX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc46c734b-5c3a-439b-a5de-cecf78f65b04_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!bMVX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc46c734b-5c3a-439b-a5de-cecf78f65b04_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!bMVX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc46c734b-5c3a-439b-a5de-cecf78f65b04_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you&#8217;re looking to stay up to date with Java, Spring, AI, and the JVM ecosystem, <strong>IntelliJ IDEA Conf 2026</strong> is an event worth adding to your calendar.</p><p>The conference takes place <strong>September 8&#8211;9</strong> and is completely <strong>free</strong>. Over two days, you&#8217;ll find practical sessions on Java language updates, JVM internals, frameworks, performance, developer productivity, and AI, all presented by industry experts.</p><p>&#128073; <strong>Register for free:</strong> <a href="https://lp.jetbrains.com/intellij-idea-conf-2026/">https://lp.jetbrains.com/intellij-idea-conf-2026/</a></p><h2>&#127908; Talks Worth Watching</h2><p>The agenda is packed with great content. Here are some highlights:</p><ul><li><p><strong>Now and Next Java for AI</strong> &#8212; Ana-Maria Mihalceanu</p></li><li><p><strong>Spec-Driven Development With AI Agents: From High-Level Requirements to Working Software</strong> &#8212; Anton Arhipov</p></li><li><p><strong>Safeguarding YOLO Developer Workflows With Docker</strong> &#8212; Oleg &#352;elajev</p></li><li><p><strong><span>Codepocalypse Now: LangChain4j vs JetBrains Koog</span></strong>&#8212; Baruch Sadogursky &amp; Viktor Gamov</p></li><li><p><strong>The Past, Present, and Future of Enterprise Java</strong> &#8212; Ivar Grimstad</p></li><li><p><strong>RoboCoders: Judgment Day: AI Agents Face Off</strong> &#8212; Baruch Sadogursky &amp; Viktor Gamov</p></li><li><p><strong>Bootiful IntelliJ IDEA</strong> &#8212; Josh Long</p></li></ul><h2>&#128161; Why You Should Attend</h2><p>This year&#8217;s agenda covers the topics shaping the future of Java development, from <strong>AI</strong> and <strong>spec-driven development</strong> to the latest improvements in the Java ecosystem.</p><p>Whether you want to improve your productivity or explore new technologies, there&#8217;s something for every Java developer.</p><p><strong>Which session are you looking forward to the most? Share it in the comments!<br></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/p/intellij-idea-conf-2026-the-free/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://devjava.substack.com/p/intellij-idea-conf-2026-the-free/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[A Great Deal for Java Developers 📚]]></title><description><![CDATA[Hello, It&#8217;s been a while since our last post!]]></description><link>https://devjava.substack.com/p/a-great-deal-for-java-developers</link><guid isPermaLink="false">https://devjava.substack.com/p/a-great-deal-for-java-developers</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 21 Jun 2026 09:10:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9vGV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c13e4c4-0807-4319-89c9-91cb9f06a021_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9vGV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c13e4c4-0807-4319-89c9-91cb9f06a021_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9vGV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c13e4c4-0807-4319-89c9-91cb9f06a021_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!9vGV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c13e4c4-0807-4319-89c9-91cb9f06a021_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!9vGV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c13e4c4-0807-4319-89c9-91cb9f06a021_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!9vGV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c13e4c4-0807-4319-89c9-91cb9f06a021_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9vGV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c13e4c4-0807-4319-89c9-91cb9f06a021_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c13e4c4-0807-4319-89c9-91cb9f06a021_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2225892,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/202204940?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c13e4c4-0807-4319-89c9-91cb9f06a021_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9vGV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c13e4c4-0807-4319-89c9-91cb9f06a021_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!9vGV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c13e4c4-0807-4319-89c9-91cb9f06a021_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!9vGV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c13e4c4-0807-4319-89c9-91cb9f06a021_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!9vGV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c13e4c4-0807-4319-89c9-91cb9f06a021_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hello,</p><p>It&#8217;s been a while since our last post!</p><p>Recently, a friend shared a great deal with me, and I wanted to pass it along to you.</p><p>Packt is currently running a promotion where you can get <strong>any book for only $9.99</strong>. This includes my book, <strong>Mastering RESTful Web Services with Java</strong>, which is available at more than 70% off:</p><p>&#128073; <a href="https://www.packtpub.com/en-us/product/mastering-restful-web-services-with-java-9781835462584">https://www.packtpub.com/en-us/product/mastering-restful-web-services-with-java-9781835462584</a></p><p>If you&#8217;ve been thinking about improving your Java backend, REST API, or microservices skills, this is a great opportunity to grab some quality resources at a very low price.</p><p>The promotion is available for a limited time, so don&#8217;t wait too long.</p><p>Happy reading!</p>]]></content:encoded></item><item><title><![CDATA[Spring I/O 2026 - Recap]]></title><description><![CDATA[Spring I/O is one of the most important events for Java and Spring developers.]]></description><link>https://devjava.substack.com/p/spring-io-2026-recap</link><guid isPermaLink="false">https://devjava.substack.com/p/spring-io-2026-recap</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 10 May 2026 09:10:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rqyG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1235aa3d-48d7-4970-a545-e45da90e1f99_1402x1122.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rqyG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1235aa3d-48d7-4970-a545-e45da90e1f99_1402x1122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rqyG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1235aa3d-48d7-4970-a545-e45da90e1f99_1402x1122.png 424w, https://substackcdn.com/image/fetch/$s_!rqyG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1235aa3d-48d7-4970-a545-e45da90e1f99_1402x1122.png 848w, https://substackcdn.com/image/fetch/$s_!rqyG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1235aa3d-48d7-4970-a545-e45da90e1f99_1402x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!rqyG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1235aa3d-48d7-4970-a545-e45da90e1f99_1402x1122.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rqyG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1235aa3d-48d7-4970-a545-e45da90e1f99_1402x1122.png" width="1402" height="1122" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1235aa3d-48d7-4970-a545-e45da90e1f99_1402x1122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1122,&quot;width&quot;:1402,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2201579,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/196585618?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1235aa3d-48d7-4970-a545-e45da90e1f99_1402x1122.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rqyG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1235aa3d-48d7-4970-a545-e45da90e1f99_1402x1122.png 424w, https://substackcdn.com/image/fetch/$s_!rqyG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1235aa3d-48d7-4970-a545-e45da90e1f99_1402x1122.png 848w, https://substackcdn.com/image/fetch/$s_!rqyG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1235aa3d-48d7-4970-a545-e45da90e1f99_1402x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!rqyG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1235aa3d-48d7-4970-a545-e45da90e1f99_1402x1122.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Spring I/O is one of the most important events for Java and Spring developers.</p><p>The 2026 edition happened in Barcelona (April 13&#8211;15) and brought what we expected: <strong>strong updates in Spring and a big focus on AI</strong>.</p><p>If you don&#8217;t have time to watch everything, here are the talks worth your attention.</p><div><hr></div><h2>&#127811; Spring Boot 4 in Practice</h2><p>Spring Boot 4 continues the same philosophy: <strong>developer productivity first</strong>, now with even broader capabilities.</p><p>If you want a quick overview, watch this session from Josh Long:</p><p>&#128073; <em><a href="https://www.youtube.com/watch?v=6zfuCPQzrwE">Bootiful Spring Boot 4 &#8212; Josh Long</a></em></p><div><hr></div><h2>&#129302; AI Is Now Real for Java Developers</h2><p>AI was a central theme across multiple talks:</p><ul><li><p><em><a href="https://www.youtube.com/watch?v=PmW4-tcMQbc">Claude Code for Spring Developers by Thomas Schilling</a></em></p></li><li><p><em><a href="https://www.youtube.com/watch?v=To724qB8yEk&amp;list=PLe6FX2SlkJdQZ3N0SW9Abo4cN7eO5dU-U">Comparing Agentic AI Frameworks for Java by Timo Salm / Sandra Ahlgrimm</a></em></p></li><li><p><em><a href="https://www.youtube.com/watch?v=35dH6q18UtI&amp;list=PLe6FX2SlkJdQZ3N0SW9Abo4cN7eO5dU-U&amp;index=6">Spec-driven Development: How AI Changed Everything (And Nothing) by Simon Martinelli</a></em></p></li></ul><div><hr></div><h2>&#9654;&#65039; Watch the Full Event</h2><p>If you want to go deeper, you can watch all sessions here:</p><p>&#128073; <a href="https://www.youtube.com/watch?v=To724qB8yEk&amp;list=PLe6FX2SlkJdQZ3N0SW9Abo4cN7eO5dU-U">Spring IO 2026 - Playlist</a></p><div><hr></div><h2>Conclusion</h2><p>Big tech events are focusing more and more on <strong>AI</strong>, and Spring I/O 2026 clearly shows this trend.</p><p>If you want to stay relevant as a Java engineer, it&#8217;s important to keep learning how AI is being used in real applications. Spring I/O has many talks that can help you with that.</p><p>Have you attended the event or watched any sessions?<br>Share your opinion, and any talks you enjoyed.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/p/spring-io-2026-recap/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://devjava.substack.com/p/spring-io-2026-recap/comments"><span>Leave a comment</span></a></p>]]></content:encoded></item><item><title><![CDATA[How to Keep Up with Java, Spring, and the JVM Ecosystem]]></title><description><![CDATA[Keeping up with the Java ecosystem is not easy.]]></description><link>https://devjava.substack.com/p/how-to-keep-up-with-java-spring-and</link><guid isPermaLink="false">https://devjava.substack.com/p/how-to-keep-up-with-java-spring-and</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 03 May 2026 09:10:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!VZKz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912a27e-17b3-4c76-9cb2-237c6217604f_1402x1122.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VZKz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912a27e-17b3-4c76-9cb2-237c6217604f_1402x1122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VZKz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912a27e-17b3-4c76-9cb2-237c6217604f_1402x1122.png 424w, https://substackcdn.com/image/fetch/$s_!VZKz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912a27e-17b3-4c76-9cb2-237c6217604f_1402x1122.png 848w, https://substackcdn.com/image/fetch/$s_!VZKz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912a27e-17b3-4c76-9cb2-237c6217604f_1402x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!VZKz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912a27e-17b3-4c76-9cb2-237c6217604f_1402x1122.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VZKz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912a27e-17b3-4c76-9cb2-237c6217604f_1402x1122.png" width="1402" height="1122" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a912a27e-17b3-4c76-9cb2-237c6217604f_1402x1122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1122,&quot;width&quot;:1402,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2185288,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/195805261?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912a27e-17b3-4c76-9cb2-237c6217604f_1402x1122.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VZKz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912a27e-17b3-4c76-9cb2-237c6217604f_1402x1122.png 424w, https://substackcdn.com/image/fetch/$s_!VZKz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912a27e-17b3-4c76-9cb2-237c6217604f_1402x1122.png 848w, https://substackcdn.com/image/fetch/$s_!VZKz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912a27e-17b3-4c76-9cb2-237c6217604f_1402x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!VZKz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912a27e-17b3-4c76-9cb2-237c6217604f_1402x1122.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Keeping up with the Java ecosystem is not easy.</p><p>New frameworks, JVM updates, Spring improvements, and architecture trends appear all the time. If you don&#8217;t have a system, it&#8217;s easy to fall behind.</p><p>You can start here on DevJava where I share key updates, events, and practical insights. But to stay truly sharp, it&#8217;s important to follow multiple high-quality sources.</p><p>Here are some of the best ones I recommend.</p><h3>&#9749; Oracle Java Blog</h3><p>&#128073; <a href="https://dev.java/news/">https://dev.java/news/</a></p><p>The official Java blog from Oracle.<br>Best place to learn about <strong>new Java releases, language features, and JVM updates</strong> directly from the source.</p><h3>&#128236; Graciano Weekly Newsletter</h3><p>&#128073; <a href="https://graciano.dev/2024/11/01/weekend-reading-list-249/">https://graciano.dev/2024/11/01/weekend-reading-list-249/</a></p><p>A personal, well-curated list of articles and insights.<br>Perfect for discovering <strong>useful reads you might not find on your own</strong>.</p><h3>&#129513; InfoQ Java Articles</h3><p>&#128073; <a href="https://www.infoq.com/java/articles/">https://www.infoq.com/java/articles/</a></p><p>Deep technical articles focused on <strong>architecture, scalability, and real-world systems</strong>.<br>Ideal for engineers who want to go beyond basics.</p><h3>&#127757; Foojay (Friends of OpenJDK)</h3><p>&#128073; <a href="https://foojay.io/">https://foojay.io/</a></p><p>A community-driven platform around OpenJDK.<br>Covers <strong>tools, news, and ecosystem updates</strong> with contributions from experts.</p><h3>&#127811; Spring Engineering Blog</h3><p>&#128073; <a href="https://spring.io/blog/category/engineering?filter=series">https://spring.io/blog/category/engineering?filter=series</a></p><p>Official Spring content with real engineering insights.<br>Great for learning about <strong>Spring Boot and Spring framework.</strong></p><h3>&#129489;&#8205;&#128187; DevJava (This Blog)</h3><p>A focused, practical view on Java backend, microservices, and productivity.<br>&#128073; The goal: help you become a <strong>better, faster, and more confident engineer</strong>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://devjava.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2>&#9989; Final Thoughts</h2><p>Staying updated is not about consuming more, it&#8217;s about consuming <strong>the right information</strong>.</p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Beyond Prompting: Spec-Driven and Harness Engineering for LLMs]]></title><description><![CDATA[Most developers start using AI with simple prompts, and that works&#8230; until it doesn&#8217;t.]]></description><link>https://devjava.substack.com/p/beyond-prompting-spec-driven-and</link><guid isPermaLink="false">https://devjava.substack.com/p/beyond-prompting-spec-driven-and</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 26 Apr 2026 09:10:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RRZQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb87d90de-19db-46fa-a9c6-72cd93e18b90_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RRZQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb87d90de-19db-46fa-a9c6-72cd93e18b90_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RRZQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb87d90de-19db-46fa-a9c6-72cd93e18b90_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!RRZQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb87d90de-19db-46fa-a9c6-72cd93e18b90_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!RRZQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb87d90de-19db-46fa-a9c6-72cd93e18b90_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!RRZQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb87d90de-19db-46fa-a9c6-72cd93e18b90_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RRZQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb87d90de-19db-46fa-a9c6-72cd93e18b90_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b87d90de-19db-46fa-a9c6-72cd93e18b90_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1812718,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/194124827?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb87d90de-19db-46fa-a9c6-72cd93e18b90_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RRZQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb87d90de-19db-46fa-a9c6-72cd93e18b90_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!RRZQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb87d90de-19db-46fa-a9c6-72cd93e18b90_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!RRZQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb87d90de-19db-46fa-a9c6-72cd93e18b90_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!RRZQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb87d90de-19db-46fa-a9c6-72cd93e18b90_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Most developers start using AI with simple prompts, and that works&#8230; until it doesn&#8217;t.</p><p>As soon as you need consistency, quality, and reliability, &#8220;just prompting&#8221; is not enough. You need structure, clear intent, and validation, just like in backend engineering.</p><p>That&#8217;s why prompt engineering is evolving into something bigger: a progression from quick experiments to <strong>well-designed, production-ready systems</strong>.</p><h2>&#129504; The 4 Levels of Prompt Engineering</h2><h3>1. Ad-hoc Prompting (Beginner)</h3><p>You just ask the model and see what happens.</p><ul><li><p>&#10004;&#65039; Fast</p></li><li><p>&#10060; Inconsistent</p></li></ul><p>&#128073; <em>Good for exploration, not for real systems.</em></p><h3>2. Structured Prompting (Intermediate)</h3><p>You start adding:</p><ul><li><p>Roles</p></li><li><p>Examples</p></li><li><p>Constraints</p></li></ul><p>Prompts become reusable.</p><ul><li><p>&#10004;&#65039; More reliable</p></li><li><p>&#10004;&#65039; Repeatable</p></li><li><p>&#10060; Still manual</p></li></ul><h3>3. System Prompting (Advanced)</h3><p>Now prompts are part of a <strong>system</strong>:</p><ul><li><p>Templates</p></li><li><p>Tools</p></li><li><p>Guardrails</p></li></ul><p>&#128073; This is where prompting becomes engineering.</p><h3>4. Spec-Driven Prompting (Expert)</h3><p>You define a <strong>specification first</strong>, then generate prompts from it.</p><ul><li><p>Spec = intent</p></li><li><p>Prompt = execution</p></li></ul><p>&#128073; This aligns with how we design good APIs: <strong>contract first, implementation later</strong>.</p><div><hr></div><h2>&#9881;&#65039; The 3 Paradigms You Should Know</h2><h3>1. Vibe Coding (Exploration-first)</h3><p>You describe what you want, and the AI figures it out.</p><ul><li><p>&#10004;&#65039; Very fast</p></li><li><p>&#10060; Unpredictable</p></li></ul><p>&#128073; Great for prototypes, risky for production.</p><h3>2. Spec-Driven Development (Intent-first)</h3><p>You define:</p><ul><li><p>Inputs</p></li><li><p>Outputs</p></li><li><p>Rules</p></li><li><p>Edge cases</p></li><li><p>&#10004;&#65039; Clear and consistent</p></li><li><p>&#10060; Requires discipline</p></li></ul><p>&#128073; Similar to designing a clean service contract in microservices.</p><h3>3. Harness Engineering (System-first)</h3><p>You build a system <strong>around</strong> the model:</p><ul><li><p>Tests</p></li><li><p>Evaluations</p></li><li><p>Feedback loops</p></li><li><p>Retries</p></li></ul><p>&#128073; Core idea: <em>Don&#8217;t trust the model, validate it.</em></p><ul><li><p>&#10004;&#65039; Production-ready</p></li><li><p>&#10004;&#65039; Measurable quality</p></li><li><p>&#10060; More complex</p></li></ul><div><hr></div><h2>Conclusion</h2><p>You start with <strong>Vibe</strong> to explore ideas fast.<br>Then move to <strong>Spec</strong> to bring clarity and structure.<br>And finally, use <strong>Harness</strong> to guarantee quality and reliability.</p><p>If you build Java backends, this flow should feel natural:</p><ul><li><p>You experiment</p></li><li><p>You define contracts</p></li><li><p>You add tests and validation</p></li></ul><p>&#128073; Prompt engineering follows the same path.</p><p>Treat it like software engineering, with clear intent, good design, and strong feedback loops, and you&#8217;ll build AI systems that are not just impressive, but <strong>reliable and production-ready</strong>.</p><div><hr></div><h2>&#128218; References</h2><ul><li><p><a href="https://martinfowler.com/articles/exploring-gen-ai/sdd-3-tools.html">https://martinfowler.com/articles/exploring-gen-ai/sdd-3-tools.html</a></p></li><li><p><a href="https://martinfowler.com/articles/harness-engineering.html">https://martinfowler.com/articles/harness-engineering.html</a></p></li><li><p><a href="https://www.ibm.com/think/topics/vibe-coding">https://www.ibm.com/think/topics/vibe-coding</a></p></li><li><p><a href="https://learn.microsoft.com/pt-br/training/modules/spec-driven-development-github-spec-kit-greenfield-intro/">https://learn.microsoft.com/pt-br/training/modules/spec-driven-development-github-spec-kit-greenfield-intro/</a></p></li><li><p></p><p></p></li></ul>]]></content:encoded></item><item><title><![CDATA[JCON Europe 2026 — Embrace your Java Journey]]></title><description><![CDATA[If you are serious about growing as a Java backend engineer, events like JCON Europe are worth your attention.]]></description><link>https://devjava.substack.com/p/jcon-europe-2026-embrace-your-java</link><guid isPermaLink="false">https://devjava.substack.com/p/jcon-europe-2026-embrace-your-java</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 19 Apr 2026 09:10:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fmnQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadaae423-9659-4304-9946-8272b613b028_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fmnQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadaae423-9659-4304-9946-8272b613b028_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fmnQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadaae423-9659-4304-9946-8272b613b028_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!fmnQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadaae423-9659-4304-9946-8272b613b028_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!fmnQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadaae423-9659-4304-9946-8272b613b028_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!fmnQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadaae423-9659-4304-9946-8272b613b028_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fmnQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadaae423-9659-4304-9946-8272b613b028_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/adaae423-9659-4304-9946-8272b613b028_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1898847,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/193513401?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadaae423-9659-4304-9946-8272b613b028_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fmnQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadaae423-9659-4304-9946-8272b613b028_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!fmnQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadaae423-9659-4304-9946-8272b613b028_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!fmnQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadaae423-9659-4304-9946-8272b613b028_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!fmnQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadaae423-9659-4304-9946-8272b613b028_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you are serious about growing as a Java backend engineer, events like JCON Europe are worth your attention.</p><p>JCON Europe 2026 is one of the most relevant Java conferences in Europe, bringing together developers, architects, and community leaders to share real-world knowledge.</p><h2>&#128197; What is JCON Europe?</h2><p>JCON Europe is organized by the Java User Group Oberpfalz in collaboration with JAVAPRO Magazine.</p><p>The 2026 edition will take place on <strong>April 20th&#8211;23rd</strong> and includes:</p><ul><li><p>1 full <strong>workshop day</strong></p></li><li><p>3 days of <strong>conference sessions</strong></p></li></ul><p>You can expect topics like:</p><ul><li><p>Java and JVM internals</p></li><li><p>Spring and microservices</p></li><li><p>Cloud-native architecture</p></li><li><p>Performance and scalability</p></li></ul><p>This is not just theory, sessions usually focus on <strong>practical use cases and real production challenges</strong>.</p><div><hr></div><h2>&#127903;&#65039; Free Ticket? Yes.</h2><p>If you are part of a Java User Group (JUG), you can get a <strong>free ticket</strong> for all standard sessions.</p><p>&#128073; Get your ticket here: <a href="https://2026.europe.jcon.one/tickets">https://2026.europe.jcon.one/tickets</a></p><p>This is a great opportunity to learn from experts <strong>without spending money</strong>.</p><div><hr></div><h2>&#127909; Can&#8217;t Attend? Watch Online</h2><p>Most sessions are streamed on the JAVAPRO YouTube channel.</p><p>&#128073; Check out previous talks here:<br><a href="https://www.youtube.com/@JAVAPRO-channel/search?query=jcon%202025">https://www.youtube.com/@JAVAPRO-channel/search?query=jcon%202025</a></p><p>Even if you can&#8217;t attend live, you can still:</p><ul><li><p>Learn new concepts</p></li><li><p>Stay updated with the Java ecosystem</p></li><li><p>Improve your engineering skills</p></li></ul><div><hr></div><h2>&#128161; Why You Should Care</h2><p>Events like JCON are not just about watching talks. They help you:</p><ul><li><p>Stay relevant in a fast-changing ecosystem</p></li><li><p>Learn from engineers solving real problems</p></li><li><p>Discover better ways to design and build systems</p><p></p></li></ul><div><hr></div><h2>Final Thoughts</h2><p>JCON Europe 2026 is a great chance to invest in your growth, either by attending or watching online.</p><p>Have you attended JCON before? Or are you planning to join this year? Please, share your experience or expectations</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/p/jcon-europe-2026-embrace-your-java/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://devjava.substack.com/p/jcon-europe-2026-embrace-your-java/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Book Resume: Big Trust — Rewire Self-Doubt, Find Your Confidence, and Fuel Success]]></title><description><![CDATA[Big Trust: Rewire Self-Doubt, Find Your Confidence, and Fuel Success, written by Shade Zahrai, is a powerful book about overcoming self-doubt and building confidence.]]></description><link>https://devjava.substack.com/p/book-resume-big-trust-rewire-self</link><guid isPermaLink="false">https://devjava.substack.com/p/book-resume-big-trust-rewire-self</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 12 Apr 2026 09:10:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6uSG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e449ea-6bea-4afd-83e5-99d5867e2590_993x1500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6uSG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e449ea-6bea-4afd-83e5-99d5867e2590_993x1500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6uSG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e449ea-6bea-4afd-83e5-99d5867e2590_993x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6uSG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e449ea-6bea-4afd-83e5-99d5867e2590_993x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6uSG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e449ea-6bea-4afd-83e5-99d5867e2590_993x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6uSG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e449ea-6bea-4afd-83e5-99d5867e2590_993x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6uSG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e449ea-6bea-4afd-83e5-99d5867e2590_993x1500.jpeg" width="993" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34e449ea-6bea-4afd-83e5-99d5867e2590_993x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:993,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:121583,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/191189466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e449ea-6bea-4afd-83e5-99d5867e2590_993x1500.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6uSG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e449ea-6bea-4afd-83e5-99d5867e2590_993x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6uSG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e449ea-6bea-4afd-83e5-99d5867e2590_993x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6uSG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e449ea-6bea-4afd-83e5-99d5867e2590_993x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6uSG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e449ea-6bea-4afd-83e5-99d5867e2590_993x1500.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em><a href="https://www.amazon.com/dp/0063378159/">Big Trust: Rewire Self-Doubt, Find Your Confidence, and Fuel Success</a></em><a href="https://www.amazon.com/dp/0063378159/">,</a> written by Shade Zahrai, is a powerful book about overcoming self-doubt and building confidence.</p><p>It focuses on helping you get out of your comfort zone and break mental blocks that hold you back, something many developers experience during their careers.</p><h2><strong>The Doubt Profile</strong></h2><p>The book introduces four key attributes that shape how we deal with self-doubt:</p><ol><li><p><strong>Acceptance</strong> &#8212; Do you believe you&#8217;re enough as you are?</p></li><li><p><strong>Agency</strong> &#8212; Do you trust your skills and abilities?</p></li><li><p><strong>Autonomy</strong> &#8212; Do you feel you can shape your own path?</p></li><li><p><strong>Adaptability</strong> &#8212; Can you stay emotionally grounded when doubt appears?</p></li></ol><p>These attributes help you understand where your self-doubt comes from, and how to improve it.</p><h2><strong>Why Agency Matters (Especially for Developers)</strong></h2><p>One concept that stood out to me is <strong>Agency</strong>.</p><p>Agency means believing that you can figure things out.<br>It&#8217;s not just about what you already know, it&#8217;s about trusting your ability to learn, adapt, and solve problems.</p><p>For developers, this is essential.</p><p>We often face problems that:</p><ul><li><p>don&#8217;t have clear solutions</p></li><li><p>have never been solved before</p></li><li><p>require experimentation and learning</p></li></ul><p>Being a developer means being a <strong>problem solver</strong>.<br>And without agency, it&#8217;s easy to feel stuck or overwhelmed.</p><blockquote><p>When you experience a sense of Agency, you believe that you can figure things out. You not only believe that you have the skills you need, but also trust that you have the ability to adapt, learn, and solve problems as they come.</p></blockquote><h2><strong>A Practical Reflection</strong></h2><p>If you don&#8217;t trust yourself to:</p><ul><li><p>handle new projects</p></li><li><p>work on unfamiliar features</p></li><li><p>fix complex bugs</p></li></ul><p>then self-doubt may be limiting your growth.</p><p>Feeling fear when facing something new is normal.<br>But being frozen by that fear is what holds you back.</p><p>This book gives practical ways to reframe that fear and move forward with confidence.</p><h2><strong>Conclusion</strong></h2><p><em>Big Trust</em> is a great read if you struggle with self-doubt or want to build more confidence in your career.</p><p>I didn&#8217;t go deep into all four attributes here, but if this topic resonates with you, I recommend reading the book and exploring it further.</p><p>You can also take a free assessment here:<br>&#128073; <a href="https://www.shadezahrai.com/doubtprofile">https://www.shadezahrai.com/doubtprofile</a></p><p>If you enjoyed this review, <strong>subscribe to the newsletter</strong> and share it with someone who might need more confidence in their journey &#128640;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading High-Level Developer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Java GC Basics: Important Concepts Explained]]></title><description><![CDATA[Hello!]]></description><link>https://devjava.substack.com/p/java-gc-basics-important-concepts</link><guid isPermaLink="false">https://devjava.substack.com/p/java-gc-basics-important-concepts</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 05 Apr 2026 09:10:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!GEpz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12fb311-1ff7-4ef2-9c06-f1d30d6639c8_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GEpz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12fb311-1ff7-4ef2-9c06-f1d30d6639c8_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GEpz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12fb311-1ff7-4ef2-9c06-f1d30d6639c8_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!GEpz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12fb311-1ff7-4ef2-9c06-f1d30d6639c8_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!GEpz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12fb311-1ff7-4ef2-9c06-f1d30d6639c8_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!GEpz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12fb311-1ff7-4ef2-9c06-f1d30d6639c8_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GEpz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12fb311-1ff7-4ef2-9c06-f1d30d6639c8_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b12fb311-1ff7-4ef2-9c06-f1d30d6639c8_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1991913,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/189824661?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12fb311-1ff7-4ef2-9c06-f1d30d6639c8_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GEpz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12fb311-1ff7-4ef2-9c06-f1d30d6639c8_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!GEpz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12fb311-1ff7-4ef2-9c06-f1d30d6639c8_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!GEpz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12fb311-1ff7-4ef2-9c06-f1d30d6639c8_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!GEpz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12fb311-1ff7-4ef2-9c06-f1d30d6639c8_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hello! Let&#8217;s quickly review some common terms related to the <strong>Garbage Collector (GC)</strong> in the JVM.<br>Understanding these concepts can help you better analyze memory usage and performance issues in Java applications.</p><ul><li><p><strong>Stop The World (STW):</strong><br>A moment when the JVM pauses all application threads to perform garbage collection tasks. During this pause, your application is temporarily stopped while the Garbage Collector reclaims memory or reorganizes the heap.</p></li><li><p><strong>Latency:</strong><br>The time it takes for your application to respond to a request. GC pauses can increase latency because the application is temporarily stopped.</p></li><li><p><strong>Throughput:</strong><br>The amount of work the application completes over time. Some garbage collectors focus on maximizing throughput instead of minimizing pause time.</p><p>Example: <strong>Parallel GC</strong>, which focuses on completing more work even if pauses are longer.</p></li><li><p><strong>Pause Time:</strong><br>The duration of a GC pause. Different collectors are designed to reduce pause times depending on the system&#8217;s needs.</p><p>Example: <strong>ZGC</strong>, which is designed to keep pause times very small, usually in the microseconds range.</p></li><li><p><strong>Java Heap:</strong><br>The <strong>Java Heap</strong> is the area of memory where objects are allocated.</p><p>This is the main memory space managed by the Garbage Collector. When objects are no longer referenced, the GC frees that memory.</p></li><li><p><strong>Young Generation:</strong><br>The part of the heap where new objects are first allocated. Most objects have a short life and are collected here. Objects that survive several collections may be promoted to the Old Generation.</p></li><li><p><strong>Old Generation:</strong><br>Objects that survive longer are moved here. Garbage collections in this area happen less often but are usually heavier.</p></li><li><p><strong>Metaspace:</strong><br>The memory area where class metadata is stored, such as class definitions and method information. It replaced PermGen in Java 8 and uses native memory.</p></li></ul><p>Understanding these basic terms makes it easier to reason about JVM performance and garbage collection behavior.</p><p>If you&#8217;d like a deeper explanation of how different <strong>Garbage Collectors work</strong>, let me know in the comments &#128640;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://devjava.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Garbage Collector: Do not use the default]]></title><description><![CDATA[Do you know what the Garbage Collector (GC) in the JVM is?]]></description><link>https://devjava.substack.com/p/garbage-collector-do-not-use-the</link><guid isPermaLink="false">https://devjava.substack.com/p/garbage-collector-do-not-use-the</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 29 Mar 2026 09:10:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!o4XP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27d52749-33bb-498b-9867-6f2ca36641e8_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!o4XP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27d52749-33bb-498b-9867-6f2ca36641e8_1024x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!o4XP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27d52749-33bb-498b-9867-6f2ca36641e8_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!o4XP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27d52749-33bb-498b-9867-6f2ca36641e8_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!o4XP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27d52749-33bb-498b-9867-6f2ca36641e8_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!o4XP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27d52749-33bb-498b-9867-6f2ca36641e8_1024x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!o4XP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27d52749-33bb-498b-9867-6f2ca36641e8_1024x1536.png" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/27d52749-33bb-498b-9867-6f2ca36641e8_1024x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3339496,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/189710810?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27d52749-33bb-498b-9867-6f2ca36641e8_1024x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!o4XP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27d52749-33bb-498b-9867-6f2ca36641e8_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!o4XP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27d52749-33bb-498b-9867-6f2ca36641e8_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!o4XP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27d52749-33bb-498b-9867-6f2ca36641e8_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!o4XP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27d52749-33bb-498b-9867-6f2ca36641e8_1024x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Do you know what the Garbage Collector (GC) in the JVM is?</p><p>If not, you can think of it as the silent hero of memory management. It quietly frees unused memory and saves developers from manual memory deallocation.</p><p>I won&#8217;t explain how it works here. If you&#8217;d like a deep dive on that, leave a comment, and I&#8217;ll write about it.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/p/garbage-collector-do-not-use-the/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://devjava.substack.com/p/garbage-collector-do-not-use-the/comments"><span>Leave a comment</span></a></p><p>What I want to talk about today is something practical: <strong>don&#8217;t just rely on the default Garbage Collector.</strong></p><div><hr></div><h2>How Many Garbage Collectors Do We Have?</h2><p>Depending on your Java version, OpenJDK offers five main Garbage Collectors:</p><ul><li><p><strong>Serial GC</strong></p></li><li><p><strong>Parallel GC</strong></p></li><li><p><strong>G1 GC</strong></p></li><li><p><strong>ZGC</strong></p></li><li><p><strong>Shenandoah</strong></p></li></ul><p>Each GC is designed for different goals. Some focus on <strong>throughput</strong>, others on <strong>low latency</strong>. They also manage heap memory differently, which can significantly impact your application&#8217;s performance.</p><p>Choosing the wrong GC for your workload can cost you performance, stability, or memory efficiency.</p><div><hr></div><h2>What Is the Default GC?</h2><p>The answer is: it depends &#128517;</p><p>According to the OpenJDK source code:</p><ul><li><p>If you have <strong>one processor or up to ~1.8 GB of RAM</strong>, the JVM uses <strong>Serial GC</strong>.</p></li><li><p>If you have <strong>2 or more processors and 1.8 GB+ of RAM</strong>, it uses <strong>G1 GC</strong>.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!acMG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacb2d15-0cd0-400d-90c7-06b81232d997_574x264.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!acMG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacb2d15-0cd0-400d-90c7-06b81232d997_574x264.png 424w, https://substackcdn.com/image/fetch/$s_!acMG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacb2d15-0cd0-400d-90c7-06b81232d997_574x264.png 848w, https://substackcdn.com/image/fetch/$s_!acMG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacb2d15-0cd0-400d-90c7-06b81232d997_574x264.png 1272w, https://substackcdn.com/image/fetch/$s_!acMG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacb2d15-0cd0-400d-90c7-06b81232d997_574x264.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!acMG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacb2d15-0cd0-400d-90c7-06b81232d997_574x264.png" width="574" height="264" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/facb2d15-0cd0-400d-90c7-06b81232d997_574x264.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:264,&quot;width&quot;:574,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:76121,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/189710810?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacb2d15-0cd0-400d-90c7-06b81232d997_574x264.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!acMG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacb2d15-0cd0-400d-90c7-06b81232d997_574x264.png 424w, https://substackcdn.com/image/fetch/$s_!acMG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacb2d15-0cd0-400d-90c7-06b81232d997_574x264.png 848w, https://substackcdn.com/image/fetch/$s_!acMG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacb2d15-0cd0-400d-90c7-06b81232d997_574x264.png 1272w, https://substackcdn.com/image/fetch/$s_!acMG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffacb2d15-0cd0-400d-90c7-06b81232d997_574x264.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://github.com/openjdk/jdk/blob/63c1cb3ad1cc3be22fd8b401894acf37683dad67/src/hotspot/share/runtime/os.cpp#L1918">https://github.com/openjdk/jdk/blob/63c1cb3ad1cc3be22fd8b401894acf37683dad67/src/hotspot/share/runtime/os.cpp#L1918</a></figcaption></figure></div><p>The default choice may work well, but that does not mean it is optimal for your system.</p><div><hr></div><h2>What About Microservices?</h2><p>If you are running microservices, especially in containers, memory configuration becomes critical.</p><p>Many teams experience memory issues because they rely on defaults without understanding how the JVM behaves inside Kubernetes or Docker.</p><p>In many microservice scenarios, <strong>G1 GC</strong> is a solid and balanced choice. It provides good throughput and predictable pause times.</p><p>You can configure it explicitly, for example:</p><pre><code>-XX:+UseG1GC
-XX:MaxRAMPercentage=75
-XX:InitialRAMPercentage=75</code></pre><p>Heap sizing and RAM percentage tuning can make a big difference in container environments.</p><div><hr></div><h2>Learn More</h2><p>If you want to understand how Java behaves in containers, I recommend these articles: </p><ul><li><p><a href="https://learn.microsoft.com/en-us/azure/developer/java/containers/overview">https://learn.microsoft.com/en-us/azure/developer/java/containers/overview</a></p></li><li><p><a href="https://docs.oracle.com/en/java/javase/21/gctuning/ergonomics.html">https://docs.oracle.com/en/java/javase/21/gctuning/ergonomics.html</a></p></li></ul><p>And also this great talk by Bruno Borges: <strong><a href="https://www.youtube.com/watch?v=UtFQ7mMb7ZA">Secrets of Performance Tuning Java on Kubernetes</a></strong></p><div><hr></div><h2>Final Thought</h2><p>The Garbage Collector is not just an internal JVM detail. It directly affects performance, latency, and stability.</p><p>Don&#8217;t just use the default.</p><p>Understand your workload.<br>Test different configurations.<br>Measure the impact.</p><p>Performance tuning starts with awareness.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Java 26 Released: Get Up to Date with What’s New]]></title><description><![CDATA[Hello!]]></description><link>https://devjava.substack.com/p/java-26-released-get-up-to-date-with</link><guid isPermaLink="false">https://devjava.substack.com/p/java-26-released-get-up-to-date-with</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 22 Mar 2026 09:10:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YfPt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519c2640-b6e0-4d46-90b9-e65d7a06d1fa_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YfPt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519c2640-b6e0-4d46-90b9-e65d7a06d1fa_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YfPt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519c2640-b6e0-4d46-90b9-e65d7a06d1fa_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!YfPt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519c2640-b6e0-4d46-90b9-e65d7a06d1fa_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!YfPt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519c2640-b6e0-4d46-90b9-e65d7a06d1fa_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!YfPt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519c2640-b6e0-4d46-90b9-e65d7a06d1fa_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YfPt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519c2640-b6e0-4d46-90b9-e65d7a06d1fa_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/519c2640-b6e0-4d46-90b9-e65d7a06d1fa_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2106143,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/191413107?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519c2640-b6e0-4d46-90b9-e65d7a06d1fa_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YfPt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519c2640-b6e0-4d46-90b9-e65d7a06d1fa_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!YfPt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519c2640-b6e0-4d46-90b9-e65d7a06d1fa_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!YfPt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519c2640-b6e0-4d46-90b9-e65d7a06d1fa_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!YfPt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519c2640-b6e0-4d46-90b9-e65d7a06d1fa_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hello! Java <strong>26</strong> was officially released this week, on <strong>March 17, 2026</strong> &#128640;</p><p>A few weeks ago, I shared a preview of this version. If you want to revisit it, you can check it here:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;f929a6bb-7b1e-4f0d-a4f5-d0ac87a2c780&quot;,&quot;caption&quot;:&quot;Java 26 is getting closer and is scheduled to be released in March 2026.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Staying Ahead: Key Highlights from Java 26&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:69209621,&quot;name&quot;:&quot;Thiago Bomfim&quot;,&quot;bio&quot;:&quot;I help Java backend developers design better applications, increase their productivity, and become high-performance, confident engineers, so they can deliver better solutions, unlock better career opportunities, and gain more time for what matters&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f05e9ccf-2436-4fe5-90a1-c40691990c81_256x256.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-22T09:10:31.618Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!f21k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3433a86-404e-4355-8a5c-2d53e24d4a07_1024x1536.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://devjava.substack.com/p/staying-ahead-key-highlights-from&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:186665625,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:2,&quot;publication_id&quot;:1988540,&quot;publication_name&quot;:&quot;High-Level Developer&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!E170!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1afba9fe-52a1-423b-b5a1-05f3da32b2ba_1024x1024.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>I also created a GitHub repository with examples of some of the new features. Feel free to explore it if you want to try things out in practice.</p><h2><strong>Want to Learn More?</strong></h2><p>If you want a deeper understanding of what Java 26 brings, I highly recommend the videos by <strong>Billy Korando</strong>.</p><p>Depending on how much time you have:</p><ul><li><p>&#9201; <strong>No time?</strong><br><a href="https://www.youtube.com/watch?v=1ERvyBqPihs">Java 26 in definitely UNDER 3 minutes</a></p></li><li><p>&#9203; <strong>A bit of time?</strong><br><a href="https://www.youtube.com/watch?v=njfzpKH4K2A">Unboxing Java 26 for Developers - Inside Java Newscast #108</a></p></li><li><p>&#128197; <strong>More time available?</strong><br><a href="https://www.youtube.com/watch?v=3fLCOqpIfI0">Java for an AI World - JavaOne Keynote</a></p></li></ul><p>This last one is especially worth watching. It&#8217;s the keynote from <strong>JavaOne</strong>, one of the biggest Java events in the world, and it gives great insights into the future of Java.</p><h2><strong>Conclusion</strong></h2><p>Java 26 brings several interesting updates, and even if you don&#8217;t plan to use it in production yet, it&#8217;s worth staying up to date.</p><p>&#128073; If you enjoy this kind of content, subscribe to stay updated with Java news and insights &#128640;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading High-Level Developer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Book Review: Working Effectively With Legacy Code ]]></title><description><![CDATA[Working Effectively with Legacy Code (Robert C.]]></description><link>https://devjava.substack.com/p/book-review-working-effectively-with</link><guid isPermaLink="false">https://devjava.substack.com/p/book-review-working-effectively-with</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 15 Mar 2026 09:10:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!arWc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611cf9e6-fd6c-4fea-bacc-a5f61076688c_1131x1500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!arWc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611cf9e6-fd6c-4fea-bacc-a5f61076688c_1131x1500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!arWc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611cf9e6-fd6c-4fea-bacc-a5f61076688c_1131x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!arWc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611cf9e6-fd6c-4fea-bacc-a5f61076688c_1131x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!arWc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611cf9e6-fd6c-4fea-bacc-a5f61076688c_1131x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!arWc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611cf9e6-fd6c-4fea-bacc-a5f61076688c_1131x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!arWc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611cf9e6-fd6c-4fea-bacc-a5f61076688c_1131x1500.jpeg" width="1131" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/611cf9e6-fd6c-4fea-bacc-a5f61076688c_1131x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:1131,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:163940,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/189709367?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611cf9e6-fd6c-4fea-bacc-a5f61076688c_1131x1500.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!arWc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611cf9e6-fd6c-4fea-bacc-a5f61076688c_1131x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!arWc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611cf9e6-fd6c-4fea-bacc-a5f61076688c_1131x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!arWc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611cf9e6-fd6c-4fea-bacc-a5f61076688c_1131x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!arWc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F611cf9e6-fd6c-4fea-bacc-a5f61076688c_1131x1500.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em><a href="https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052">Working Effectively with Legacy Code</a></em><a href="https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052"> (Robert C. Martin Series)</a>, written by <strong>Michael Feathers</strong> in 2004, is not a new book, but it is still extremely relevant.</p><p>If you work with legacy systems, this book can save you time, reduce stress, and help you avoid serious problems.</p><h2><strong>What Can We Do with Code?</strong></h2><p>Michael Feathers explains that there are four types of changes we usually make in a system:</p><ul><li><p><strong>Bug fixes</strong></p></li><li><p><strong>Adding new features</strong></p></li><li><p><strong>Refactoring the code structure</strong></p></li><li><p><strong>Optimization</strong></p></li></ul><p>When fixing bugs, we adjust existing behavior.<br>When adding features, we introduce new behavior.<br>When refactoring, we change the internal structure of the code.<br>When optimizing, we improve resource usage, similar to refactoring, but focused on performance.</p><p>Refactoring and optimization must preserve the same behavior. If behavior changes unintentionally, we introduce bugs.</p><p>And this is where the real challenge begins: how can we modify legacy code safely?</p><h2>Two Ways to Change Code</h2><p>According to the book, there are two common approaches:</p><h3>Pray and Cover</h3><p>This is probably the most common approach. You make the change carefully, run manual tests, and hope nothing breaks.</p><p>It feels fast, but it is risky.</p><h3>Cover and Modify</h3><p>This is the safer approach. Before changing the code, you add tests that protect the current behavior. Then you modify the code with confidence.</p><p>This idea connects directly to one of the most powerful lessons in the book.</p><h2><strong>Two Powerful Lessons</strong></h2><p>Here are two key ideas from the book:</p><blockquote><p>&#8220;Dependency is one of the most critical problems in software development. Much legacy code work involves breaking dependencies so that change can be easier.&#8221;</p></blockquote><p>Much of legacy work is about breaking dependencies so that change becomes easier and safer.</p><blockquote><p>&#8220;Legacy code is simply code without tests.&#8221;</p></blockquote><p>This idea changes everything. Legacy is not about age, it is about safety. If code has no tests, modifying it becomes risky.</p><h2><strong>Conclusion</strong></h2><p>This book teaches practical techniques to safely modify legacy systems while minimizing the risk of introducing bugs. It shows why tests are essential and how to add them even when the code was not designed for testing.</p><p>If you work with legacy systems, this book is highly recommended.</p><p>And now I&#8217;m curious:<br>&#128218; <strong>What is one book that has helped you grow as a developer? Share it in the comments.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/p/book-review-working-effectively-with/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://devjava.substack.com/p/book-review-working-effectively-with/comments"><span>Leave a comment</span></a></p><p>If you enjoyed this review, subscribe to the newsletter and share it with someone dealing with legacy code &#128640;</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/p/book-review-working-effectively-with?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading High-Level Developer! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/p/book-review-working-effectively-with?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://devjava.substack.com/p/book-review-working-effectively-with?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Book Review: Essentialism — The Disciplined Pursuit of Less]]></title><description><![CDATA[It has been a while since I read Essentialism: The Disciplined Pursuit of Less by Greg McKeown.]]></description><link>https://devjava.substack.com/p/book-review-essentialism-the-disciplined</link><guid isPermaLink="false">https://devjava.substack.com/p/book-review-essentialism-the-disciplined</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 08 Mar 2026 09:10:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0BZQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d6571cb-5c37-4c87-8b17-d6ed8bcdd856_796x1200.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0BZQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d6571cb-5c37-4c87-8b17-d6ed8bcdd856_796x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0BZQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d6571cb-5c37-4c87-8b17-d6ed8bcdd856_796x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0BZQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d6571cb-5c37-4c87-8b17-d6ed8bcdd856_796x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0BZQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d6571cb-5c37-4c87-8b17-d6ed8bcdd856_796x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0BZQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d6571cb-5c37-4c87-8b17-d6ed8bcdd856_796x1200.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0BZQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d6571cb-5c37-4c87-8b17-d6ed8bcdd856_796x1200.jpeg" width="796" height="1200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2d6571cb-5c37-4c87-8b17-d6ed8bcdd856_796x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:796,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:83244,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/187849873?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d6571cb-5c37-4c87-8b17-d6ed8bcdd856_796x1200.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0BZQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d6571cb-5c37-4c87-8b17-d6ed8bcdd856_796x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0BZQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d6571cb-5c37-4c87-8b17-d6ed8bcdd856_796x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0BZQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d6571cb-5c37-4c87-8b17-d6ed8bcdd856_796x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0BZQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d6571cb-5c37-4c87-8b17-d6ed8bcdd856_796x1200.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It has been a while since I read <em><a href="https://www.amazon.com/Essentialism-Disciplined-Pursuit-Greg-McKeown/dp/0804137382">Essentialism: The Disciplined Pursuit of Less</a></em> by Greg McKeown. Recently, I revisited my notes and decided to share some key ideas &#8212; because this book can truly change how you think about work and life.</p><p>At its core, Essentialism is simple:</p><blockquote><p>&#8220;The wisdom of life consists in eliminating what is non-essential.&#8221; </p><p>&#8212; Lin Yutang</p></blockquote><p>Being an essentialist means focusing on <strong>less, but better</strong>.<br>It means choosing what really matters instead of trying to do everything.</p><div><hr></div><h2>The Problem: We Try to Do Too Much</h2><p>The book challenges three common beliefs:</p><ul><li><p>&#8220;I have to do it.&#8221;</p></li><li><p>&#8220;Everything is important.&#8221;</p></li><li><p>&#8220;I can do both.&#8221;</p></li></ul><p>Essentialism replaces them with:</p><ul><li><p>&#8220;I choose to do it.&#8221;</p></li><li><p>&#8220;Only a few things truly matter.&#8221;</p></li><li><p><strong>&#8220;I can do anything, but not everything.&#8221;</strong></p></li></ul><p>If you feel overwhelmed, busy but not productive, or constantly moving without progress, this book speaks directly to you.</p><blockquote><p>&#8220;If we don&#8217;t prioritize our life, someone else will.&#8221;</p></blockquote><div><hr></div><h2>The Paradox of Success</h2><p>One powerful idea in the book is the <strong>paradox of success</strong>:</p><ol><li><p>We succeed because we are clear about our purpose.</p></li><li><p>Success brings more opportunities.</p></li><li><p>More opportunities create overload.</p></li><li><p>Overload destroys the clarity that made us successful.</p></li></ol><p>Micro-managing everything does not scale. Focus does.</p><div><hr></div><h2>Essentialism in Practice</h2><p>The path of the essentialist has three steps:</p><h3>1. Explore</h3><p>Ask yourself:<br><em>Which activity makes the highest contribution to my goal?</em></p><blockquote><p>&#8220;Where is the wisdom we have lost in knowledge?&#8221; </p><p>&#8212; T. S. Eliot</p></blockquote><p>Exploration requires space to think. Jeff Weiner (former LinkedIn CEO) blocks time in his calendar just to reflect. Thinking is not a luxury &#8212; it is strategy.</p><h3>2. Eliminate</h3><p>Saying no is one of the most important skills.</p><blockquote><p>&#8220;Half the troubles of this life can be traced to saying yes too quickly and not saying no soon enough.&#8221; </p><p>&#8212; Josh Billings</p></blockquote><p>A clear &#8220;no&#8221; is often kinder than a vague &#8220;maybe.&#8221;<br>Essentialists do not say yes to everything. They say yes to what truly matters.</p><h3>3. Execute</h3><p>Execution in Essentialism is not about moving faster. It is about preparing better.</p><blockquote><p>&#8220;Give me six hours to chop down a tree and I will spend the first four sharpening the axe.&#8221;<br>&#8212; Abraham Lincoln</p></blockquote><p>Preparation is not a waste of time, it is what makes execution easier.</p><p>The author talks about <strong>comprehensive preparation</strong>. When he was studying at Stanford, he planned the entire semester as soon as he received the syllabus. He identified major projects early and started working on them immediately. That small investment reduced stress for months. Even when unexpected events happened, he had enough margin to adapt.</p><p>Two practical lessons:</p><ul><li><p><strong>Use comprehensive preparation.</strong> Plan ahead and give yourself margin for error. The future is uncertain, but preparation gives you control.</p></li><li><p><strong>Add 50% to your estimated time.</strong> Most people underestimate how long tasks take. Adding extra time reduces pressure and increases quality.</p></li></ul><div><hr></div><h2>Final Thought</h2><blockquote><p>&#8220;Strategy is about making choices; it&#8217;s about deliberately choosing to be different&#8221; </p><p>&#8212; Michael Porter</p></blockquote><p>The best outcome you can have from this book is to apply this rule:</p><p>When facing a decision, ask yourself: <strong>&#8220;What is essential?&#8221;<br></strong>Answer honestly and eliminate the rest.</p><p>If this reflection helped you, subscribe to the newsletter and share it with someone who feels overwhelmed. Sometimes the real growth starts by doing less. &#128640;</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/p/book-review-essentialism-the-disciplined?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading High-Level Developer! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/p/book-review-essentialism-the-disciplined?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://devjava.substack.com/p/book-review-essentialism-the-disciplined?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Book Review: Microservices Up & Running]]></title><description><![CDATA[A Step-by-Step Guide to Building a Microservices Architecture]]></description><link>https://devjava.substack.com/p/book-review-microservices-up-and</link><guid isPermaLink="false">https://devjava.substack.com/p/book-review-microservices-up-and</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 01 Mar 2026 09:10:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qpCk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5b2e22-276f-4f6a-b469-d7c616ba7786_1143x1500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qpCk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5b2e22-276f-4f6a-b469-d7c616ba7786_1143x1500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qpCk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5b2e22-276f-4f6a-b469-d7c616ba7786_1143x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qpCk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5b2e22-276f-4f6a-b469-d7c616ba7786_1143x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qpCk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5b2e22-276f-4f6a-b469-d7c616ba7786_1143x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qpCk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5b2e22-276f-4f6a-b469-d7c616ba7786_1143x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qpCk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5b2e22-276f-4f6a-b469-d7c616ba7786_1143x1500.jpeg" width="1143" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac5b2e22-276f-4f6a-b469-d7c616ba7786_1143x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:1143,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:145072,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/187848016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5b2e22-276f-4f6a-b469-d7c616ba7786_1143x1500.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qpCk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5b2e22-276f-4f6a-b469-d7c616ba7786_1143x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qpCk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5b2e22-276f-4f6a-b469-d7c616ba7786_1143x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qpCk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5b2e22-276f-4f6a-b469-d7c616ba7786_1143x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qpCk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac5b2e22-276f-4f6a-b469-d7c616ba7786_1143x1500.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The book <em><a href="https://www.amazon.com.br/Microservices-Step-Step-Microservice-Architecture/dp/1492075450">Microservices Up &amp; Running: A Step-by-Step Guide to Building a Microservices Architecture</a></em> is a practical book for developers working with microservices or planning to migrate from a monolith.</p><p>The book starts by explaining what microservices really are, not just small services, but systems organized around business responsibilities. The authors discuss <strong>Domain-Driven Design (DDD)</strong>, <strong>Event Storming</strong>, and how team structure influences architecture.</p><p>One important message from the book is:</p><blockquote><p><em>Microservices can make complex systems simpler, but they are not a silver bullet. Complexity is shifted, not magically removed.</em></p></blockquote><p>This is a key lesson. Microservices do not eliminate complexity, they redistribute it. That requires discipline and good design.</p><p>The book also covers:</p><ul><li><p>ACID and consistency in distributed systems</p></li><li><p>Event Sourcing and CQRS</p></li><li><p>Infrastructure with AWS, Terraform, and Kubernetes</p></li><li><p>CI/CD with GitHub Actions</p></li><li><p>Deployment strategies like Canary and Blue-Green</p></li></ul><p>Even though it is concise, the book touches on many essential subjects. If you are using microservices, or thinking about adopting them, understanding these concepts is an important step to avoid common struggles and truly benefit from this architecture style.</p><p>This book is realistic and practical. It explains both the technical and organizational sides of microservices.</p><p>If you are designing distributed systems or moving from a monolith, this is a valuable read.</p><p>If you enjoyed this review, <strong>subscribe to the newsletter</strong> and share it with someone working on microservices &#128640;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://devjava.substack.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Staying Ahead: Key Highlights from Java 26]]></title><description><![CDATA[Java 26 is getting closer and is scheduled to be released in March 2026.]]></description><link>https://devjava.substack.com/p/staying-ahead-key-highlights-from</link><guid isPermaLink="false">https://devjava.substack.com/p/staying-ahead-key-highlights-from</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 22 Feb 2026 09:10:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!f21k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3433a86-404e-4355-8a5c-2d53e24d4a07_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!f21k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3433a86-404e-4355-8a5c-2d53e24d4a07_1024x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f21k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3433a86-404e-4355-8a5c-2d53e24d4a07_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!f21k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3433a86-404e-4355-8a5c-2d53e24d4a07_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!f21k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3433a86-404e-4355-8a5c-2d53e24d4a07_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!f21k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3433a86-404e-4355-8a5c-2d53e24d4a07_1024x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!f21k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3433a86-404e-4355-8a5c-2d53e24d4a07_1024x1536.png" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a3433a86-404e-4355-8a5c-2d53e24d4a07_1024x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3062175,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/186665625?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3433a86-404e-4355-8a5c-2d53e24d4a07_1024x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!f21k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3433a86-404e-4355-8a5c-2d53e24d4a07_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!f21k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3433a86-404e-4355-8a5c-2d53e24d4a07_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!f21k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3433a86-404e-4355-8a5c-2d53e24d4a07_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!f21k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3433a86-404e-4355-8a5c-2d53e24d4a07_1024x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Java <strong>26</strong> is getting closer and is scheduled to be released in <strong>March 2026</strong>.<br>You can already access <strong>Early Access</strong> builds and start experimenting with the new features.</p><p>Java 26 will probably not be used by many projects in production, since most vendors will not support it as an LTS release, the next LTS target will be Java 29.</p><p>Even so, staying updated with non-LTS releases is important, because it helps you prepare and benefit more when the next LTS becomes available.</p><p>Let&#8217;s take a look at what&#8217;s new in Java 26.</p><h2><strong>What&#8217;s New in Java 26</strong></h2><p>Java 26 includes the following JEPs:</p><ul><li><p><strong>JEP 500</strong> &#8211; Prepare to Make Final Mean Final</p></li><li><p><strong>JEP 504</strong> &#8211; Remove the Applet API</p></li><li><p><strong>JEP 516</strong> &#8211; Ahead-of-Time Object Caching with Any GC</p></li><li><p><strong>JEP 517</strong> &#8211; HTTP/3 for the HTTP Client API</p></li><li><p><strong>JEP 522</strong> &#8211; G1 GC: Improve Throughput by Reducing Synchronization</p></li><li><p><strong>JEP 524</strong> &#8211; PEM Encodings of Cryptographic Objects (Second Preview)</p></li><li><p><strong>JEP 525</strong> &#8211; Structured Concurrency (Sixth Preview)</p></li><li><p><strong>JEP 526</strong> &#8211; Lazy Constants (Second Preview)</p></li><li><p><strong>JEP 529</strong> &#8211; Vector API (Eleventh Incubator)</p></li><li><p><strong>JEP 530</strong> &#8211; Primitive Types in Patterns, instanceof, and switch (Fourth Preview)</p></li></ul><p>As you can see, Java 26 brings some improvements in <strong>garbage collection and performance</strong>. The Applet API is finally gone &#128546;, but we&#8217;ll skip that topic for now. Instead, let&#8217;s focus on two updates that are especially interesting: <strong>JEP 526</strong> and <strong>JEP 525</strong>.</p><h3>JEP 526: Lazy Constants (Second Preview)</h3><p>Lazy Constants allow you to initialize constants <strong>only when they are actually used</strong>, instead of during class loading. This can help reduce startup time and avoid unnecessary initialization.</p><pre><code><code>public class LazyConstantExample {

    private static final LazyConstant&lt;LazyClass&gt; lazyClass = LazyConstant.of(() -&gt; new LazyClass());

    public static void main(String[] args) {
        System.out.println(&#8221;Initialize&#8221;);
        lazyClass.get().printClassName();
        System.out.println(&#8221;End&#8221;);
    }

    private static class LazyClass {

        LazyClass() {
            System.out.println(&#8221;LazyClass created&#8221;);
        }

        public void printClassName() {
            System.out.println(this.getClass().getName());
        }
    }
}</code></code></pre><p>The output from this class is:</p><pre><code>Initialize
LazyClass created
com.bomfim.java26.LazyConstantExample$LazyClass
End</code></pre><p>As shown, the class is created only when <code>get()</code> is called.</p><h3><strong>JEP 525: Structured Concurrency (Sixth Preview)</strong></h3><p>Structured Concurrency is still evolving, and I wanted to mention it here because I&#8217;ve already written about this topic before here:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b9ad09a5-016a-4b76-b085-717841936784&quot;,&quot;caption&quot;:&quot;Structured Concurrency scopes give you a clean way to run multiple subtasks and then join them with a clear policy. That policy is defined by a Joiner.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Structured Concurrency &#8212; Joiners&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:69209621,&quot;name&quot;:&quot;Thiago Bomfim&quot;,&quot;bio&quot;:&quot;I help Java backend developers design better applications, increase their productivity, and become high-performance, confident engineers, so they can deliver better solutions, unlock better career opportunities, and gain more time for what matters&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f05e9ccf-2436-4fe5-90a1-c40691990c81_256x256.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-11-30T09:10:05.516Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!wcDX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F578458d0-bddb-4cb2-a948-1781416c9d64_1024x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://devjava.substack.com/p/structured-concurrency-joiners&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:179051239,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:2,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1988540,&quot;publication_name&quot;:&quot;High-Level Developer&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!E170!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1afba9fe-52a1-423b-b5a1-05f3da32b2ba_1024x1024.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>That said, the API has changed a bit in Java 26, and yes, there are <strong>breaking changes</strong> &#128562;</p><p>But don&#8217;t worry, breaking changes are expected for <strong>preview features</strong>. This is exactly why you should be careful when using them in production.</p><p>The changes are not huge, mostly renaming and small adjustments. However if you followed my previous article on Structured Concurrency, that code will no longer work as-is.</p><p>Once this feature becomes stable, I&#8217;ll share an updated guide showing how to use it properly and how you can take advantage of it.</p><p>So feel free to subscribe to stay up to date with the latest Java news.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading High-Level Developer! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>If you want to access the code, you can check it out here: <a href="https://github.com/ThiagoBfim/java-news">https://github.com/ThiagoBfim/java-news</a></p><p>For more details about Java 26, I recommend taking a look at the official documentation: <a href="https://openjdk.org/projects/jdk/26/">https://openjdk.org/projects/jdk/26/</a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Book Review: Developer Career Masterplan ]]></title><description><![CDATA[Build your path to senior level and beyond with practical insights from industry experts]]></description><link>https://devjava.substack.com/p/book-review-developer-career-masterplan</link><guid isPermaLink="false">https://devjava.substack.com/p/book-review-developer-career-masterplan</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 15 Feb 2026 09:10:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!L2SJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5bb274-51d8-4e23-b3cd-e2a53e124c09_1103x1360.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L2SJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5bb274-51d8-4e23-b3cd-e2a53e124c09_1103x1360.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L2SJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5bb274-51d8-4e23-b3cd-e2a53e124c09_1103x1360.jpeg 424w, https://substackcdn.com/image/fetch/$s_!L2SJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5bb274-51d8-4e23-b3cd-e2a53e124c09_1103x1360.jpeg 848w, https://substackcdn.com/image/fetch/$s_!L2SJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5bb274-51d8-4e23-b3cd-e2a53e124c09_1103x1360.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!L2SJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5bb274-51d8-4e23-b3cd-e2a53e124c09_1103x1360.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L2SJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5bb274-51d8-4e23-b3cd-e2a53e124c09_1103x1360.jpeg" width="1103" height="1360" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bb5bb274-51d8-4e23-b3cd-e2a53e124c09_1103x1360.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1360,&quot;width&quot;:1103,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:114511,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/185744564?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5bb274-51d8-4e23-b3cd-e2a53e124c09_1103x1360.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!L2SJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5bb274-51d8-4e23-b3cd-e2a53e124c09_1103x1360.jpeg 424w, https://substackcdn.com/image/fetch/$s_!L2SJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5bb274-51d8-4e23-b3cd-e2a53e124c09_1103x1360.jpeg 848w, https://substackcdn.com/image/fetch/$s_!L2SJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5bb274-51d8-4e23-b3cd-e2a53e124c09_1103x1360.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!L2SJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5bb274-51d8-4e23-b3cd-e2a53e124c09_1103x1360.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em><a href="https://www.amazon.com/Developer-Career-Masterplan-practical-insights-ebook/dp/B0CFLBHZXZ">Developer Career Masterplan: Build Your Path to Senior Level and Beyond with Practical Insights from Industry Experts</a></em>, written by <strong>Bruno Souza</strong> and <strong>Heather Vancura</strong>, is one of the best career-focused books I&#8217;ve read.</p><p>This book is not about code, frameworks, or tools. It&#8217;s about <strong>building a sustainable and intentional career in software development</strong>, from junior to senior and beyond.</p><h2><strong>What the Book Is About</strong></h2><p>The authors share practical lessons that help developers grow professionally, such as:</p><ul><li><p>Getting out of your comfort zone</p></li><li><p>Building and maintaining a strong network</p></li><li><p>Developing soft skills</p></li><li><p>Participating in communities</p></li><li><p>Mentoring and being mentored</p></li><li><p>Taking ownership of your career path</p></li></ul><p>It&#8217;s a great read for developers who want more than just technical growth.</p><h2><strong>What Makes This Book Stand Out</strong></h2><p>One of the strongest points of this book is the <strong>interviews with industry professionals</strong>.<br>Through different perspectives, the book explores real experiences, challenges, and lessons learned across various career paths.</p><h2><strong>The Most Important Lesson (In My Opinion)</strong></h2><p>If I had to highlight one key message, it would be this:</p><p>&#128073; <strong>Be part of a community. Participate. Be visible.</strong></p><p>You grow faster when you:</p><ul><li><p>Share what you know</p></li><li><p>Share what you are learning</p></li><li><p>Help others whenever you can</p></li></ul><p>You don&#8217;t need to be an expert to contribute. Visibility comes from <strong>consistency and being a giver</strong>, not perfection.</p><h2><strong>Conclusion</strong></h2><p><em>Developer Career Masterplan</em> is a must-read for anyone who wants to take control of their career in IT. It reminds us that technical skills matter, but <strong>people, communication, and community matter just as much</strong>.</p><p>If this review helped you, <strong>subscribe to the newsletter</strong> and share it with someone who wants to grow their developer career &#128640;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://devjava.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><br></p><p><br><br><br><br></p>]]></content:encoded></item><item><title><![CDATA[5 Lessons from the Book Forever Strong]]></title><description><![CDATA[Recently, I read Forever Strong: A New, Science-Based Strategy for Aging Well by Dr.]]></description><link>https://devjava.substack.com/p/5-lessons-from-the-book-forever-strong</link><guid isPermaLink="false">https://devjava.substack.com/p/5-lessons-from-the-book-forever-strong</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 08 Feb 2026 09:10:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jwaX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1f329ee-8d0e-41cd-b5a8-40316b9efd95_988x1500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jwaX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1f329ee-8d0e-41cd-b5a8-40316b9efd95_988x1500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jwaX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1f329ee-8d0e-41cd-b5a8-40316b9efd95_988x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jwaX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1f329ee-8d0e-41cd-b5a8-40316b9efd95_988x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jwaX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1f329ee-8d0e-41cd-b5a8-40316b9efd95_988x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jwaX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1f329ee-8d0e-41cd-b5a8-40316b9efd95_988x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jwaX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1f329ee-8d0e-41cd-b5a8-40316b9efd95_988x1500.jpeg" width="988" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1f329ee-8d0e-41cd-b5a8-40316b9efd95_988x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:988,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:283602,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/183959657?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1f329ee-8d0e-41cd-b5a8-40316b9efd95_988x1500.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jwaX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1f329ee-8d0e-41cd-b5a8-40316b9efd95_988x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jwaX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1f329ee-8d0e-41cd-b5a8-40316b9efd95_988x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jwaX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1f329ee-8d0e-41cd-b5a8-40316b9efd95_988x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jwaX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1f329ee-8d0e-41cd-b5a8-40316b9efd95_988x1500.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Recently, I read <strong><a href="https://www.amazon.com.br/Forever-Strong-Science-Based-Strategy-Aging/dp/1668007878">Forever Strong: A New, Science-Based Strategy for Aging Well</a></strong> by Dr. Gabrielle Lyon.<br>This book is especially valuable for people who are not in good physical shape or physically active.</p><p>Most developers spend long hours sitting in front of a computer. Over time, this affects not only our bodies, but also our <strong>energy, focus, and productivity</strong>. Strength training and healthy eating are essential for a more vital life.</p><p>The book shares <strong>five fundamental attributes</strong> that apply not only to fitness, but also to career growth, and life in general. To become healthier or better at your job, the first step is changing your <strong>mindset</strong>. </p><h3><strong>1. Be Brave</strong></h3><p>Being brave is your best defence against unexpected changes.</p><p>Life and career will force you into uncomfortable situations. Instead of holding on to excuses about your past or present, bravery means facing problems directly and moving forward, even when it&#8217;s hard.</p><p>Growth always starts outside your comfort zone.</p><h3><strong>2. Perseverance</strong></h3><p>Perseverance is the ability to keep going despite difficulties or delayed rewards.</p><p>You will fail. Probably many times.<br>What matters is your willingness to get up again.</p><p>Patience and self-compassion are essential. Perseverance works quietly, but over time, it creates real change.</p><h3><strong>3. Self-Discipline</strong></h3><p>Discipline imposed from outside is limited. Self-discipline comes from internal control.</p><p>The best way to improve self-discipline is to <strong>plan for your weaknesses</strong>. Don&#8217;t rely on motivation alone; design your environment and routine, so the right choice becomes the easy one.</p><h3><strong>4. Adaptability</strong></h3><p>Perfectionism is a trap, especially when it comes to health and long-term plans.</p><p>Adaptability is your best ally.<br>When the unexpected breaks your routine, commit to finding <strong>solutions instead of excuses</strong>. Adjust the plan, but don&#8217;t abandon it.</p><h3><strong>5. Resilience</strong></h3><p>Resilience is the ability to return to balance after a setback.</p><p>Unexpected events can break routines, delay goals, and trigger negative thoughts. Resilience means regaining emotional strength, refocusing, and continuing, without letting temporary failures define you.</p><h2><strong>Conclusion</strong></h2><p><em>Forever Strong</em> is not just about muscles, it&#8217;s about building a mindset that supports long-term success. These five attributes apply equally to health, career, and personal growth.</p><p><br>Small habits, repeated consistently, create strong people &#128170;</p>]]></content:encoded></item><item><title><![CDATA[Mastering API Architecture — My personal Review]]></title><description><![CDATA[Understanding the &#8220;why&#8221; makes every technical decision better]]></description><link>https://devjava.substack.com/p/mastering-api-architecture-my-personal</link><guid isPermaLink="false">https://devjava.substack.com/p/mastering-api-architecture-my-personal</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 01 Feb 2026 09:10:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zq_l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aaf8b92-49de-43cd-8ea6-9b008b131652_1143x1500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zq_l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aaf8b92-49de-43cd-8ea6-9b008b131652_1143x1500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zq_l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aaf8b92-49de-43cd-8ea6-9b008b131652_1143x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zq_l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aaf8b92-49de-43cd-8ea6-9b008b131652_1143x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zq_l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aaf8b92-49de-43cd-8ea6-9b008b131652_1143x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zq_l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aaf8b92-49de-43cd-8ea6-9b008b131652_1143x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zq_l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aaf8b92-49de-43cd-8ea6-9b008b131652_1143x1500.jpeg" width="1143" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0aaf8b92-49de-43cd-8ea6-9b008b131652_1143x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:1143,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:153371,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/183455089?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aaf8b92-49de-43cd-8ea6-9b008b131652_1143x1500.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zq_l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aaf8b92-49de-43cd-8ea6-9b008b131652_1143x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zq_l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aaf8b92-49de-43cd-8ea6-9b008b131652_1143x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zq_l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aaf8b92-49de-43cd-8ea6-9b008b131652_1143x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zq_l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aaf8b92-49de-43cd-8ea6-9b008b131652_1143x1500.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Mastering API Architecture</em> approaches REST and API design from a <strong>theoretical and architectural perspective</strong>. Instead of focusing on implementation details, it explains <strong>how and why</strong> API-based systems should be designed, operated, and evolved.</p><p>The book covers topics such as:</p><ul><li><p>REST principles and architectural trade-offs</p></li><li><p>Testing strategies</p></li><li><p>API Gateways and Service Mesh</p></li><li><p>Security considerations</p></li><li><p>Deployment and evolution patterns</p></li></ul><p>It is recommended for <strong>senior developers, architects, and tech leads</strong>. Mid-level engineers can also benefit, especially those who want to deepen their architectural understanding.</p><div><hr></div><h3><strong>What Makes This Book Different</strong></h3><p>This is <strong>not</strong> a step-by-step or beginner-friendly guide.<br>Although it includes examples and a journey from a monolith to a cloud-based system, the focus is not on &#8220;how to code&#8221;, but on <strong>decision-making</strong>.</p><p>The authors rely heavily on:</p><ul><li><p><strong>Architectural Decision Records (ADRs)</strong></p></li><li><p>Clear explanations of trade-offs</p></li><li><p>Long-term API evolution strategies</p></li></ul><p>This makes the book especially valuable for professionals responsible for <strong>API stability, governance, and growth</strong>.</p><div><hr></div><h3><strong>Book Details</strong></h3><ul><li><p><strong>Title:</strong> <a href="https://www.amazon.com/Mastering-API-Architecture-Operate-API-Based/dp/1492090638">Mastering API Architecture: Design, Operate, and Evolve API-Based Systems</a></p></li><li><p><strong>Authors:</strong> James Gough, Daniel Bryant, Matthew Auburn</p></li><li><p><strong>Published:</strong> 2022</p></li><li><p><strong>Pages:</strong> 286</p></li></ul><div><hr></div><h3><strong>Conclusion</strong></h3><p>If you want to improve how you <strong>think</strong> about API architecture, this book is an excellent choice. It helps you understand trade-offs and make better decisions when evolving APIs, skills that truly matter at senior levels.</p><p>&#128073; <strong>If this review helped you, subscribe to the newsletter and share it with someone who designs APIs.</strong><br>More content like this is coming every week &#128640;<br></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://devjava.substack.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Spring Framework 7.0 and Spring Boot 4.0]]></title><description><![CDATA[Consistency in upgrades keeps your platform secure, supported, and ready for what&#8217;s next]]></description><link>https://devjava.substack.com/p/spring-framework-70-and-spring-boot</link><guid isPermaLink="false">https://devjava.substack.com/p/spring-framework-70-and-spring-boot</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 25 Jan 2026 09:10:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Zhvp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61486d85-ebfd-4072-8e38-113275759098_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Zhvp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61486d85-ebfd-4072-8e38-113275759098_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Zhvp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61486d85-ebfd-4072-8e38-113275759098_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Zhvp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61486d85-ebfd-4072-8e38-113275759098_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Zhvp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61486d85-ebfd-4072-8e38-113275759098_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Zhvp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61486d85-ebfd-4072-8e38-113275759098_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Zhvp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61486d85-ebfd-4072-8e38-113275759098_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/61486d85-ebfd-4072-8e38-113275759098_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2349584,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/181517469?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61486d85-ebfd-4072-8e38-113275759098_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Zhvp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61486d85-ebfd-4072-8e38-113275759098_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Zhvp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61486d85-ebfd-4072-8e38-113275759098_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Zhvp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61486d85-ebfd-4072-8e38-113275759098_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Zhvp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61486d85-ebfd-4072-8e38-113275759098_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Spring Boot 4.0</strong> was released on <strong>November 20, 2025</strong>, built on top of <strong>Spring Framework 7.0</strong>.<br>After almost three years since Spring Boot 3 (late 2022), this new major release brings important improvements and new features across the platform.</p><h2><strong>Support status: why this matters</strong></h2><p>Looking at the current support timeline:</p><ul><li><p><strong>Spring Boot 3.4</strong> &#8594; <strong>OSS support has ended</strong></p></li><li><p><strong>Spring Boot 3.5</strong> &#8594; <strong>short OSS support</strong>, ending on <strong>30 Jun 2026</strong></p></li><li><p><strong>Spring Boot 4.0</strong> &#8594; <strong>nearly one year of OSS support</strong> (until <strong>31 Dec 2026</strong>) and a longer commercial window</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Joqi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ee4094-c175-48a7-9f54-b85af0e3305f_730x310.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Joqi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ee4094-c175-48a7-9f54-b85af0e3305f_730x310.png 424w, https://substackcdn.com/image/fetch/$s_!Joqi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ee4094-c175-48a7-9f54-b85af0e3305f_730x310.png 848w, https://substackcdn.com/image/fetch/$s_!Joqi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ee4094-c175-48a7-9f54-b85af0e3305f_730x310.png 1272w, https://substackcdn.com/image/fetch/$s_!Joqi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ee4094-c175-48a7-9f54-b85af0e3305f_730x310.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Joqi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ee4094-c175-48a7-9f54-b85af0e3305f_730x310.png" width="730" height="310" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1ee4094-c175-48a7-9f54-b85af0e3305f_730x310.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:310,&quot;width&quot;:730,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58894,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/181517469?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ee4094-c175-48a7-9f54-b85af0e3305f_730x310.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Joqi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ee4094-c175-48a7-9f54-b85af0e3305f_730x310.png 424w, https://substackcdn.com/image/fetch/$s_!Joqi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ee4094-c175-48a7-9f54-b85af0e3305f_730x310.png 848w, https://substackcdn.com/image/fetch/$s_!Joqi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ee4094-c175-48a7-9f54-b85af0e3305f_730x310.png 1272w, https://substackcdn.com/image/fetch/$s_!Joqi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1ee4094-c175-48a7-9f54-b85af0e3305f_730x310.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">https://endoflife.date/spring-boot</figcaption></figure></div><p>If you&#8217;re on 3.4, upgrading is no longer optional. If you&#8217;re on 3.5, the clock is ticking. Moving to <strong>4.0</strong> gives you <strong>more runway</strong> and access to the newest features built on Spring Framework 7.0.</p><h2><strong>What&#8217;s new?</strong></h2><p>Spring Boot 4.0 and Spring Framework 7.0 bring several enhancements. Here&#8217;s a practical overview of some of the highlights:</p><p>&#128073; <strong>Spring Framework 7.0 &#8211; API Versioning</strong></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;0d02a675-c93a-4fb0-9e46-8f59b7456f6a&quot;,&quot;caption&quot;:&quot;Spring Framework 7.0, released on November 13, 2025, introduces several new features, and one of the most useful for API work is the new API versioning support.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Spring Framework 7.0 - API Version &quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:69209621,&quot;name&quot;:&quot;Thiago Bomfim&quot;,&quot;bio&quot;:&quot;I help Java backend developers design better applications, increase their productivity, and become high-performance, confident engineers, so they can deliver better solutions, unlock better career opportunities, and gain more time for what matters&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f05e9ccf-2436-4fe5-90a1-c40691990c81_256x256.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-12-28T09:10:19.596Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!gfRD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4caaf577-2aa9-4268-b909-c10186179633_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://devjava.substack.com/p/spring-framework-70-api-version&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:178121654,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:2,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1988540,&quot;publication_name&quot;:&quot;High-Level Developer&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!E170!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1afba9fe-52a1-423b-b5a1-05f3da32b2ba_1024x1024.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;6869a2d5-b3f5-46a3-af25-d6257b3ef524&quot;,&quot;caption&quot;:&quot;Spring Framework 7.0 introduces out-of-the-box resilience features, making it easier to protect your application against overload and instability. These features are part of the spring-context module and can be enabled with: @EnableResilientMethods&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Spring Framework 7.0 &#8212; Resilience Features &quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:69209621,&quot;name&quot;:&quot;Thiago Bomfim&quot;,&quot;bio&quot;:&quot;I help Java backend developers design better applications, increase their productivity, and become high-performance, confident engineers, so they can deliver better solutions, unlock better career opportunities, and gain more time for what matters&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f05e9ccf-2436-4fe5-90a1-c40691990c81_256x256.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-11T09:10:15.066Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_GaR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bc6fc9-631a-4b7e-bc5b-7e41a24f8f85_1024x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://devjava.substack.com/p/spring-framework-70-resilience-features&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:178121686,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1988540,&quot;publication_name&quot;:&quot;High-Level Developer&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!E170!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1afba9fe-52a1-423b-b5a1-05f3da32b2ba_1024x1024.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h2><strong>How to upgrade safely</strong></h2><p>The Spring team provides a clear, step-by-step migration guide covering breaking changes and required adjustments:</p><p>&#128073; <strong>Spring Boot 4.0 Migration Guide</strong><br><a href="https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide">https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide</a></p><p>To understand what&#8217;s new at the framework level, review the official notes:</p><p>&#128073; <strong>Spring Framework 7.0 Release Notes</strong><br><a href="https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-7.0-Release-Notes">https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-7.0-Release-Notes</a></p><div><hr></div><h3>&#128640; Enjoyed this update?</h3><p><strong>&#128073; Subscribe for free</strong> to get weekly Spring &amp; Java insights<br><strong>&#128077; Like</strong> this post to help DevJava reach more developers</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://devjava.substack.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[JSpecify and Spring Null-safety]]></title><description><![CDATA[Null-safety turns hidden runtime failures into visible compile-time guarantees]]></description><link>https://devjava.substack.com/p/jspecify-and-spring-null-safety</link><guid isPermaLink="false">https://devjava.substack.com/p/jspecify-and-spring-null-safety</guid><dc:creator><![CDATA[Thiago Bomfim]]></dc:creator><pubDate>Sun, 18 Jan 2026 09:10:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!etH2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16502a28-41da-45bd-9257-8260e5b0b0ed_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!etH2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16502a28-41da-45bd-9257-8260e5b0b0ed_1024x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!etH2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16502a28-41da-45bd-9257-8260e5b0b0ed_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!etH2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16502a28-41da-45bd-9257-8260e5b0b0ed_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!etH2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16502a28-41da-45bd-9257-8260e5b0b0ed_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!etH2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16502a28-41da-45bd-9257-8260e5b0b0ed_1024x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!etH2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16502a28-41da-45bd-9257-8260e5b0b0ed_1024x1536.png" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16502a28-41da-45bd-9257-8260e5b0b0ed_1024x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3009759,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://devjava.substack.com/i/178121590?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16502a28-41da-45bd-9257-8260e5b0b0ed_1024x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!etH2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16502a28-41da-45bd-9257-8260e5b0b0ed_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!etH2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16502a28-41da-45bd-9257-8260e5b0b0ed_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!etH2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16502a28-41da-45bd-9257-8260e5b0b0ed_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!etH2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16502a28-41da-45bd-9257-8260e5b0b0ed_1024x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Spring Framework <strong>7.0</strong> now supports <strong>JSpecify</strong>, introducing first-class&nbsp;<strong>null safety</strong> into the Spring ecosystem. This means Spring can understand nullability contracts and help you detect potential <code>NullPointerException</code> issues at compile time, not in production.</p><div><hr></div><h2><strong>What Is Null-safety?</strong></h2><p>Null-safety makes your code safer by catching null-related mistakes early. It creates clear expectations:</p><ul><li><p>What <strong>can</strong> be null</p></li><li><p>What <strong>cannot</strong> be null</p></li><li><p>What APIs require strict checks</p></li></ul><p>This leads to fewer runtime surprises and more reliable applications.</p><div><hr></div><h2><strong>What Is JSpecify?</strong></h2><p><strong>JSpecify</strong> defines standard annotations such as:</p><ul><li><p><code>@NonNull</code></p></li><li><p><code>@Nullable</code></p></li><li><p><code>@NullMarked</code></p></li></ul><p>Spring 7 understands these annotations and applies null-safety rules consistently across your beans and application logic.</p><p>&#128216; JSpecify guide: <a href="https://jspecify.dev/docs/user-guide/">https://jspecify.dev/docs/user-guide/</a><br>&#128216; Spring null-safety docs: <a href="https://docs.spring.io/spring-framework/reference/core/null-safety.html">https://docs.spring.io/spring-framework/reference/core/null-safety.html</a></p><div><hr></div><h2><strong>How to Enable Null-safety Checks (Maven)</strong></h2><p>To validate null-safety automatically, we use <strong>NullAway</strong>, Uber&#8217;s fast, compile-time checker, together with <strong>Error Prone</strong>:</p><pre><code><code>&lt;plugin&gt;
    &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
    &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
    &lt;version&gt;3.11.0&lt;/version&gt;
    &lt;configuration&gt;
        &lt;source&gt;17&lt;/source&gt;
        &lt;target&gt;8&lt;/target&gt;
        &lt;encoding&gt;UTF-8&lt;/encoding&gt;
        &lt;compilerArgs&gt;
            &lt;arg&gt;-XDcompilePolicy=simple&lt;/arg&gt;
            &lt;arg&gt;--should-stop=ifError=FLOW&lt;/arg&gt;
            &lt;arg&gt;-Xplugin:ErrorProne
                -XepOpt:NullAway:AnnotatedPackages=com.bomfim
                -Xep:NullAway:ERROR
                -XepExcludedPaths:.*/src/test/java/.*
            &lt;/arg&gt;
        &lt;/compilerArgs&gt;
        &lt;annotationProcessorPaths&gt;
            &lt;path&gt;
                &lt;groupId&gt;com.google.errorprone&lt;/groupId&gt;
                &lt;artifactId&gt;error_prone_core&lt;/artifactId&gt;
                &lt;version&gt;2.42.0&lt;/version&gt;
            &lt;/path&gt;
            &lt;path&gt;
                &lt;groupId&gt;com.uber.nullaway&lt;/groupId&gt;
                &lt;artifactId&gt;nullaway&lt;/artifactId&gt;
                &lt;version&gt;0.12.12&lt;/version&gt;
            &lt;/path&gt;
        &lt;/annotationProcessorPaths&gt;
    &lt;/configuration&gt;
&lt;/plugin&gt;
</code></code></pre><h3><strong>What this setup gives you</strong></h3><ul><li><p>Compile-time null-safety enforcement</p></li><li><p>Clear errors when annotations are violated</p></li><li><p>Automatic protection against accidental <code>null</code> values</p></li></ul><p>More details:<br>&#128216; NullAway JSpecify Support: <a href="https://github.com/uber/NullAway/wiki/JSpecify-Support">https://github.com/uber/NullAway/wiki/JSpecify-Support</a></p><p>You can access the code here: <a href="https://github.com/ThiagoBfim/spring-news">https://github.com/ThiagoBfim/spring-news</a></p><div><hr></div><h2><strong>Using Gradle?</strong></h2><p>This talk explains it perfectly:<br>&#127909; <em><a href="https://www.youtube.com/watch?v=5Lbxq6LP7FY">Null Safety in Java with JSpecify and NullAway &#8212; S&#233;bastien Deleuze (Spring I/O 2025)</a></em></p><div><hr></div><h2><strong>Conclusion</strong></h2><p>With Spring 7 + JSpecify + NullAway, Java finally gets a practical, lightweight approach to null-safety. You get earlier warnings, clearer APIs, and fewer runtime surprises, all with minimal setup.</p><p>If you found this useful, <strong>subscribe for free</strong> and hit <strong>like</strong>, more Spring &amp; Java tips coming every week &#128640;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://devjava.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://devjava.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p><p></p>]]></content:encoded></item></channel></rss>