<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Jakob Löhnertz on foojay.io - Friends Of OpenJDK</title><link>https://foojay.io/today/author/jakob-loehnertz/</link><description>Articles written by Jakob Löhnertz on foojay.io - Friends Of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 07 Nov 2023 10:40:48 +0000</lastBuildDate><atom:link href="https://foojay.io/today/author/jakob-loehnertz/index.xml" rel="self" type="application/rss+xml"/><item><title>How to find dead code in your Java services</title><link>https://foojay.io/today/how-to-find-dead-code-in-your-java-services/</link><pubDate>Tue, 07 Nov 2023 10:40:48 +0000</pubDate><guid>https://foojay.io/today/how-to-find-dead-code-in-your-java-services/</guid><description>&lt;p&gt;&lt;strong&gt;When building solutions, the code we write can last many years. While casually browsing legacy code, we might wonder; is this still used? The missing documentation or outdated tests do not help us answer this. When asking around, nobody really knows. Let&amp;rsquo;s try to delete it, shall we? Then, chaos ensues: it turns out it is still used to support some legacy users, in case of emergency, or by that one forgotten integration everyone still uses.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Embracing Java 17: Here’s What We Learned at Picnic</title><link>https://foojay.io/today/embracing-java-17-heres-what-we-learned-at-picnic/</link><pubDate>Mon, 30 May 2022 08:10:20 +0000</pubDate><guid>https://foojay.io/today/embracing-java-17-heres-what-we-learned-at-picnic/</guid><description>&lt;p&gt;Java 17? Count us in! At &lt;a href="https://picnic.app/nl/" target="_blank" rel="noopener noreferrer"&gt;Picnic&lt;/a&gt;, we&amp;rsquo;re more than a grocery delivery company.&lt;/p&gt;&#10;&lt;p&gt;There&amp;rsquo;s a lot of tech behind the scenes that enables us to provide the affordable, sustainable service our customers have come to expect — and the back end of most of that tech is written in Java.&lt;/p&gt;&#10;&lt;p&gt;So when the new Java 17 release was announced, we were excited to get started.&lt;/p&gt;&#10;&lt;p&gt;Having moved to Java 11 within the quarter after its release, we stepped it up a gear this time and are proudly running Java 17 in production in the same quarter it was released — we like to move fast!&lt;/p&gt;</description></item><item><title>Quest to the OS: Java Native Memory</title><link>https://foojay.io/today/the-quest-to-the-os-java-native-memory-foojay-today/</link><pubDate>Fri, 08 Apr 2022 04:19:05 +0000</pubDate><guid>https://foojay.io/today/the-quest-to-the-os-java-native-memory-foojay-today/</guid><description>&lt;p&gt;&lt;img src="https://foojay.io/today/the-quest-to-the-os-java-native-memory-foojay-today/0-QMIuX6OHkdzv3HGM-e70ddfe1.jpg" alt="" width="1400" height="730" loading="lazy" decoding="async"&gt;&lt;/p&gt;&#10;&lt;p&gt;As developers we want to spend most time on new features and improvements, providing value to our users or customers. However, all software inevitably contains bugs and other defects. A lot can be done to catch defects before software reaches production (something Picnic&amp;rsquo;s automated fulfillment center team has &lt;a href="https://blog.picnic.nl/reinventing-the-qa-process-25854fee51f3" target="_blank" rel="noopener noreferrer"&gt;previously written about&lt;/a&gt;) but some defects are likely to go undetected until the software is in the hands of users.&lt;/p&gt;&#10;&lt;p&gt;One such case happened when Picnic&amp;rsquo;s Distribution Systems team started to get notified that one of its deployments, the Fulfillment Service, was regularly killed and restarted by our Kubernetes cluster. This particular deployment houses many of the planning algorithms employed by Picnic, such as its &lt;a href="https://blog.picnic.nl/its-in-our-dna-solving-logistics-problems-using-genetic-algorithms-a3d59e31558c" target="_blank" rel="noopener noreferrer"&gt;truck scheduling algorithm&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>