<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: IgorIOT</title>
    <description>The latest articles on DEV Community by IgorIOT (@igoriot).</description>
    <link>https://dev.to/igoriot</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3760784%2F5e3fc0c5-4eab-49c7-ae85-78cba32d6280.jpeg</url>
      <title>DEV Community: IgorIOT</title>
      <link>https://dev.to/igoriot</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/igoriot"/>
    <language>en</language>
    <item>
      <title>Stop Saying Java is Slow</title>
      <dc:creator>IgorIOT</dc:creator>
      <pubDate>Thu, 05 Mar 2026 16:59:33 +0000</pubDate>
      <link>https://dev.to/igoriot/stop-saying-java-is-slow-15nh</link>
      <guid>https://dev.to/igoriot/stop-saying-java-is-slow-15nh</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yizkc08ck44nvucqo8c.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yizkc08ck44nvucqo8c.jpg" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How goes the battle?&lt;/p&gt;

&lt;h2&gt;
  
  
  Java 25 Performance: Faster Starts, Smarter Memory, Better GC
&lt;/h2&gt;

&lt;p&gt;Java 25 isn’t just another incremental release. It brings meaningful performance improvements that directly impact how fast your applications start, how much memory they consume, and how efficiently they manage garbage collection.&lt;/p&gt;

&lt;p&gt;Let’s break down what changed, and why it matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Faster Startup with the New AOT Cache
&lt;/h2&gt;

&lt;p&gt;One of the most exciting additions in Java 25 is the new Ahead-of-Time (AOT) cache.&lt;/p&gt;

&lt;p&gt;Traditionally, when a Java application starts, the Just-In-Time (JIT) compiler kicks in and begins optimizing code as it runs. While this leads to excellent long-term performance, it adds overhead during startup.&lt;/p&gt;

&lt;p&gt;Java 25 changes that.&lt;/p&gt;

&lt;p&gt;With the AOT cache (introduced through JEPs 483 and 514), you can perform a “training run” of your application. During this run, the JVM observes which classes and methods are actually used. It then generates an optimized cache specifically for that execution profile.&lt;/p&gt;

&lt;p&gt;Later, when the application starts in production, the JVM loads this prebuilt cache directly into memory. The result? Much less JIT work at startup, and dramatically faster boot times.&lt;br&gt;
In large applications with many classes, startup times can improve by up to 50%.&lt;br&gt;
And it gets better.&lt;br&gt;
JEP 515 enhances the AOT cache by incorporating profiling data collected by the JIT itself. That means the cache isn’t just precompiled, it’s optimized based on real runtime behavior. Smarter data, better performance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openjdk.org/jeps/483" rel="noopener noreferrer"&gt;JEP 483&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openjdk.org/jeps/514" rel="noopener noreferrer"&gt;JEP 514&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openjdk.org/jeps/515" rel="noopener noreferrer"&gt;JEP 515&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 Smaller Object Headers, Lower Memory Usage
&lt;/h2&gt;

&lt;p&gt;Java 25 also takes aim at memory efficiency with Compact Object Headers (JEP 519).&lt;/p&gt;

&lt;p&gt;Every object in Java carries a header containing metadata used by the JVM. While small individually, these headers add up quickly in systems managing millions of objects.&lt;br&gt;
Java 25 optimizes and reduces the size of these headers, decreasing overall memory footprint.&lt;/p&gt;

&lt;p&gt;Why does this matter?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Applications consume less memory&lt;/li&gt;
&lt;li&gt;The Garbage Collector has less work to do&lt;/li&gt;
&lt;li&gt;Performance improves under memory pressure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In extensive production testing across hundreds of services, memory usage dropped by up to 20% in some workloads. Processing time improved by up to 10%, and GC cycles were up to 15% less frequent.&lt;/p&gt;

&lt;p&gt;That’s not theoretical, that’s production-grade validation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openjdk.org/jeps/450" rel="noopener noreferrer"&gt;JEP 450&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openjdk.org/jeps/519" rel="noopener noreferrer"&gt;JEP 519&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ♻️ Garbage Collection Keeps Evolving
&lt;/h2&gt;

&lt;p&gt;Java has always offered multiple garbage collectors for different workloads. In Java 25, all major collectors receive meaningful upgrades.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shenandoah Goes Generational&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Shenandoah is known for low-latency performance, minimizing pause times by performing most of its work concurrently with the application.&lt;/p&gt;

&lt;p&gt;With JEP 521, Shenandoah now supports a generational mode. Generational GC typically performs better because most objects die young — and now Shenandoah can take advantage of that reality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ZGC Embraces Generational Design&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ZGC also moves forward with a generational implementation (JEP 474). In fact, the non-generational mode has been deprecated. Since generational approaches generally provide better performance characteristics, future innovation will focus there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;G1 Gets Smarter About JNI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;G1, still the default GC in Java 25, also improves through JEP 423. The focus here is reducing pause times during operations involving JNI (Java Native Interface).&lt;/p&gt;

&lt;p&gt;For applications interacting with native code, this means smoother performance and fewer unexpected delays.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openjdk.org/jeps/423" rel="noopener noreferrer"&gt;JEP 423&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openjdk.org/jeps/474" rel="noopener noreferrer"&gt;JEP 474&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openjdk.org/jeps/521" rel="noopener noreferrer"&gt;JEP 521&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Big Picture
&lt;/h2&gt;

&lt;p&gt;Java 25 isn’t flashy, it’s practical.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster startup with AOT caching&lt;/li&gt;
&lt;li&gt;Lower memory usage with compact object headers&lt;/li&gt;
&lt;li&gt;Smarter, more efficient garbage collection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren’t cosmetic changes. They directly impact cloud deployments, containerized applications, microservices, and large enterprise systems.&lt;/p&gt;

&lt;p&gt;Modern Java keeps evolving, and it’s becoming faster, leaner, and more production-optimized with every release.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffslgontypnsdmmkg6bg7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffslgontypnsdmmkg6bg7.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Picture 01: Duke speedster inspired&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Java 25 represents a major leap forward in making the JVM more efficient and developer-friendly than ever before. With the new AOT caching system dramatically slashing startup times (up to 50% in many cases), Compact Object Headers shrinking memory usage by up to 20%, and meaningful refinements to G1, ZGC, and Shenandoah, the platform is now faster to launch, lighter on resources, and more responsive under load, all while maintaining the reliability and scalability Java is known for. Whether you’re building cloud-native microservices, real-time applications, or large-scale enterprise systems, these improvements mean less waiting, lower costs, and smoother performance right out of the gate. Java 25 isn’t just an incremental update, it’s a clear signal that the language continues to evolve to meet modern demands. Time to upgrade and experience the difference yourself!&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://inside.java/2025/10/20/jdk-25-performance-improvements/" rel="noopener noreferrer"&gt;https://inside.java/2025/10/20/jdk-25-performance-improvements/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gillius.org/blog/2025/10/java-25-framework-startup.html" rel="noopener noreferrer"&gt;https://gillius.org/blog/2025/10/java-25-framework-startup.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>news</category>
      <category>performance</category>
      <category>programming</category>
    </item>
    <item>
      <title>Stop Saying Java Is Verbose</title>
      <dc:creator>IgorIOT</dc:creator>
      <pubDate>Sun, 15 Feb 2026 21:23:06 +0000</pubDate>
      <link>https://dev.to/igoriot/stop-saying-java-is-verbose-127i</link>
      <guid>https://dev.to/igoriot/stop-saying-java-is-verbose-127i</guid>
      <description>&lt;p&gt;How’s it going there?&lt;/p&gt;

&lt;p&gt;Whether you’re a student learning your first “Hello, World” or an experienced developer writing quick prototypes, Java 25 streamlines the experience. For decades, this was a barrier. Beginners had to learn about classes, static methods, arrays, String, System.out, packages, imports, the main keyword's meaning, and public access modifiers before they could even print text.&lt;/p&gt;

&lt;p&gt;But it is not Java 25 that brings it all; it's been a while since a lot of stuff has been happening. Let's see some of the evolution.&lt;/p&gt;

&lt;p&gt;In almost all of those JEP summaries, you can see this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Evolve the Java language so that students can write their first programs without needing to understand language features designed for large programs.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Java 21 – Unnamed Classes and Instance Main Methods (JEP 445)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://openjdk.org/jeps/445" rel="noopener noreferrer"&gt;https://openjdk.org/jeps/445&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unnamed classes: Programs could omit the class declaration entirely; the compiler would wrap top-level methods into an unnamed class.&lt;/p&gt;

&lt;p&gt;Instance main methods introduced: You no longer need &lt;em&gt;public static void main(String[] args)&lt;/em&gt;. Instead, you can declare &lt;em&gt;void main()&lt;/em&gt; or &lt;em&gt;void main(String[] args)&lt;/em&gt; as an instance method inside a class.&lt;/p&gt;

&lt;h2&gt;
  
  
  Java 22 – Implicitly Declared Classes and Instance Main Methods (JEP 463)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://openjdk.org/jeps/463" rel="noopener noreferrer"&gt;https://openjdk.org/jeps/463&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The “unnamed classes” concept was replaced in Java 22 with a more streamlined and intuitive model: implicitly declared classes, or implicit classes. Instead of requiring a special classification, the compiler now treats any top-level code without an explicit class declaration as belonging to a standard class automatically generated by the compiler. This class is given a host-determined name (the name of your .java file), is final, belongs to the unnamed package, extends Object, and cannot implement interfaces—yet functions like a regular class in behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  Java 23 – Implicitly Declared Classes and Instance Main Methods (JEP 477)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://openjdk.org/jeps/477" rel="noopener noreferrer"&gt;https://openjdk.org/jeps/477&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No need to reference System.out and wonder what it means. They introduced a new IO class with print/read features (print, println, readln), and the amazing part is that these methods are auto-imported, so you can directly write &lt;em&gt;println("Hello, World!");&lt;/em&gt;. In addition, all public classes in java.base are now auto-imported, making types like List, File, or BigDecimal usable with zero ceremony.&lt;/p&gt;

&lt;h2&gt;
  
  
  Java 24 – Simple Source Files and Instance Main Methods (JEP 495)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://openjdk.org/jeps/495" rel="noopener noreferrer"&gt;https://openjdk.org/jeps/495&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It looks like nothing has been changed in the code feature here, but they decided to unify the feature under the name simple source files instead of implicit classes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Java 25 – Compact Source Files and Instance Main Methods (JEP 512)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://openjdk.org/jeps/512" rel="noopener noreferrer"&gt;https://openjdk.org/jeps/512&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The static methods originally provided in java.io.IO (println, …) have been moved to java.lang.IO (and since everything in java.lang is imported by default, they are now more accessible).&lt;br&gt;
These operations are now based on System.out/System.in rather than the Console API. However, the static methods of the IO class are no longer implicitly imported into compact source files. This means that method calls must explicitly reference the class.&lt;/p&gt;

&lt;p&gt;Compact source files automatically access all public classes and interfaces from java.base module (i.e., import module java.base;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Java 25 – Flexible Constructor Bodies (JEP 513)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://openjdk.org/jeps/513" rel="noopener noreferrer"&gt;https://openjdk.org/jeps/513&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One important part of this flow is constructor chaining. If a class has a parent class, Java ensures that the parent constructor runs before the child constructor logic. This guarantees that the object is built step by step, starting from the top of the inheritance hierarchy.&lt;/p&gt;

&lt;p&gt;This improves this situation because it allows certain statements to appear before #super() or #this() calls, making constructors more expressive and readable.&lt;/p&gt;

&lt;p&gt;This is not an exhaustive list, and I really suggest you go there and try out some examples of each one to really get a good understanding of those benefits.&lt;/p&gt;

&lt;h2&gt;
  
  
  VSCode Plugin
&lt;/h2&gt;

&lt;p&gt;Did you know that you can run a simple Hello World in one line of code without knowing anything?&lt;/p&gt;

&lt;p&gt;There's a nice &lt;a href="https://inside.java/2025/12/09/new-vscode-extension/" rel="noopener noreferrer"&gt;VSCode plugin&lt;/a&gt; that also introduces Interactive Java Notebooks (IJNB), which allow you to create notebooks that combine formatted text (Markdown), executable Java code, and execution results in any order.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's do a simple test;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You just need to install VSCode and install the plugin; that is it. If you don’t have Java on your machine, the plugin will ask you to auto-install it for you. Of course, choose Java 25.&lt;br&gt;
Open a new notebook, and that’s it: a Java Hello World in one line.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxkf37wis4lk9dun6fpp1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxkf37wis4lk9dun6fpp1.png" alt=" "&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Sample Code 1: Hello World in One Line&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Launching Simple Source-Code Programs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://dev.java/learn/launch-simple-source-code-programs/" rel="noopener noreferrer"&gt;Another nice point here.&lt;/a&gt; This can be a great way to learn how to use Java or explore new features within the Java API, without having to go through the cruft of compiling and then executing code. A simple Java as a JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39wmkayrvx02z1r3lxlz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39wmkayrvx02z1r3lxlz.png" alt=" "&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Sample Code 2: Hello World from Terminal&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To really understand what’s happening under the hood here, I suggest using the &lt;a href="https://docs.oracle.com/en/java/javase/11/tools/javap.html" rel="noopener noreferrer"&gt;javap&lt;/a&gt; tool to disassemble the file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flt6ox577ndy0isj8b8ca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flt6ox577ndy0isj8b8ca.png" alt=" "&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Sample Code 3: Javap Disassemble the File Result&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The output shows that the Java compiler automatically generated a FileName class with the default constructor. This behavior shows that while the syntax has been simplified, the underlying Java class structure is still preserved. In short, the Java compiler writes the class for us with the class name named after the source file name.&lt;/p&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/lGAYLVk5HaY"&gt;
  &lt;/iframe&gt;


&lt;br&gt;
&lt;em&gt;Video: Dan Vega Talking About Java Is Verbose Back in 2024&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Call to Action
&lt;/h2&gt;

&lt;p&gt;Go there and try to explore those things. Let me know what your thoughts are. Any JEP or anything else that I forgot to add in this list? I would love to hear from you.&lt;/p&gt;

&lt;p&gt;From now on, if you see anyone saying that Java is verbose, you can simply send this blog post link.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The Java evolution shows a clear vision: making Java simpler for small programs, powerful for big ones.&lt;/p&gt;

&lt;p&gt;Java 25 marks a turning point. With compact source files and instance main methods, Java finally aligns with beginner expectations while preserving its scalability for enterprise use, a game-changing feature that dramatically reduces boilerplate code for simple programs. With those updates, Java finally offers a beginner-friendly way to write code without the overhead of explicit classes, public static void main, or import statements—making the language more accessible than ever.&lt;/p&gt;

&lt;p&gt;Remember, you can have an if-else in one line; you can use the "Ternary Operator", but this might translate into more difficult code to read and understand. So a lower number of lines does not necessarily mean better code. Sometimes being verbose is a good thing.&lt;/p&gt;

&lt;p&gt;There is much more to explore regarding Java in a single file, Java as scripts in terminal, and Java in a notebook.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://jdk.java.net/25/" rel="noopener noreferrer"&gt;All Java 25 info&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I really recommend this 2022 &lt;a href="https://openjdk.org/projects/amber/design-notes/on-ramp" rel="noopener noreferrer"&gt;blog&lt;/a&gt; from Brian Goetz that might be the beginning of the JEP 512 initiative&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cr.openjdk.org/~gbierman/jep445/jep445-20230502/specs/unnamed-classes-instance-main-methods-jls.html" rel="noopener noreferrer"&gt;The Unnamed Classes Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://javapro.io/2025/11/27/behind-the-bytecode-exploring-java-features-with-javap-tool/" rel="noopener noreferrer"&gt;JavaP and More&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Did you know about “JEP 519: Compact Object Headers” that comes with the idea to reduce the object header size? Does this mean that we can say that Java is not slow anymore? Stay tuned here for the next blog “Stop Saying Java Is Slow.”&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>java</category>
      <category>learning</category>
      <category>programming</category>
    </item>
    <item>
      <title>Welcome to IgorIOT (a.k.a. I Go Riot)</title>
      <dc:creator>IgorIOT</dc:creator>
      <pubDate>Mon, 09 Feb 2026 00:19:33 +0000</pubDate>
      <link>https://dev.to/igoriot/welcome-to-igoriot-aka-i-go-riot-1kng</link>
      <guid>https://dev.to/igoriot/welcome-to-igoriot-aka-i-go-riot-1kng</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hey everyone!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ve decided it’s time to start a new chapter. I’m officially relaunching my blog under a new name: IgorIOT; Yes, that’s “Igor I-O-T”, but also my playful way of saying “I Go Riot”.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the change?
&lt;/h2&gt;

&lt;p&gt;My old blog &lt;a href="http://www.igfasouza.com/blog/" rel="noopener noreferrer"&gt;igfasouza.com/blog&lt;/a&gt; has been a place where I’ve explored everything from development to data engineering. Over the last couple of years, most of my public content, especially on social media, has focused on Apache Kafka and streaming platforms. &lt;/p&gt;

&lt;p&gt;This new blog will focus primarily on Java and Raspberry Pi, exploring how modern Java can be used in hands-on projects, learning environments, and real-world experiments with affordable hardware. &lt;/p&gt;

&lt;p&gt;As part of this change, I’ve also created a separate space dedicated exclusively to Apache Kafka, where I’ll continue publishing in-depth posts and sharing practical insights. That Kafka-focused space will be accompanied by its own &lt;a href="https://topicigor.substack.com/p/hello-world-welcome-to-topic-igor" rel="noopener noreferrer"&gt;newsletter&lt;/a&gt;, so readers interested in event-driven architectures and streaming platforms can follow that content independently.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is IgorIOT?
&lt;/h2&gt;

&lt;p&gt;IgorIOT is more than a name; It’s a blend of who I am as a developer and what excites me outside of work.&lt;br&gt;
While “IoT” is in the name (and yes, it also sounds like “I Go Riot”), this blog is not limited to just Internet of Things content. It’s a space where I explore the crossover between my professional experience and personal passions.&lt;/p&gt;

&lt;p&gt;In addition to technical content, this blog will also be a place where I share updates and ideas related to my initiative around Java in Education. The goal is to explore how Java can be made more accessible and engaging for students, educators, and coding communities, using modern tools and hands-on approaches. I’ll use this space to document progress, discuss challenges, and highlight community-driven efforts to bring Java closer to learning environments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvxprt8mrjp0xpp07sow.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvxprt8mrjp0xpp07sow.jpg" alt=" " width="456" height="564"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With that, my &lt;a href="http://www.igfasouza.com/blog/" rel="noopener noreferrer"&gt;igfasouza blog&lt;/a&gt; will be taken offline soon. However, none of the content will be lost. I’ll be saving and maintaining all posts and materials in a &lt;a href="https://github.com/igfasouza" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; repository. This way, the content will remain accessible, preserved, and open for anyone who wants to explore or reuse it in the future. I’ll share the GitHub link once everything is organized. I’m not sure yet if I’ll go all the way and set up a Hugo site on GitHub for the old blog, but at least the content will be preserved in some form.&lt;/p&gt;

&lt;p&gt;Thanks to everyone who has followed and supported the blog over the years!&lt;/p&gt;

</description>
      <category>iot</category>
      <category>java</category>
      <category>news</category>
      <category>sideprojects</category>
    </item>
  </channel>
</rss>
