<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Loiane Groner</title>
    <link>https://loiane.com/</link>
    <description>Java, Spring Boot, Spring AI, AI, Angular, Typescript, JavaScript</description>
    <language>en</language>
    <lastBuildDate>Sat, 23 May 2026 11:44:38 -0400</lastBuildDate>
    <atom:link href="https://loiane.com/rss.xml" rel="self" type="application/rss+xml" />

    
    <item>
      <title>Specs-Driven Development in Practice: End-to-End Delivery with Spring Boot and Angular</title>
      <link>https://loiane.com/2026/05/specs-driven-development-end-to-end-with-spring-boot-angular/</link>
      <guid isPermaLink="true">https://loiane.com/2026/05/specs-driven-development-end-to-end-with-spring-boot-angular/</guid>
      <pubDate>Sat, 23 May 2026 08:00:00 -0400</pubDate>
      <description>Prompt-first AI work is great for exploration. It is not enough for delivery.</description>
      
      <category>AI</category>
      
      <category>Angular</category>
      
      <category>Spring Framework</category>
      
    </item>
    
    <item>
      <title>Modern Angular 15: Add to Cart with output()</title>
      <link>https://loiane.com/2026/04/modern-angular-add-to-cart-output/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-add-to-cart-output/</guid>
      <pubDate>Tue, 21 Apr 2026 08:00:00 -0400</pubDate>
      <description>This is lesson 15 of the Modern Angular Course. In the previous lesson, we used computed() to filter products reactively. Now we add child-to-parent communication so clicking “Add to Cart” in a product card notifies the parent grid component.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Spring Boot 3 EOL to Spring Boot 4: A Production Upgrade Playbook (Including Jackson 2 to 3)</title>
      <link>https://loiane.com/2026/04/spring-boot-3-eol-to-4-upgrade-playbook-jackson-3/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/spring-boot-3-eol-to-4-upgrade-playbook-jackson-3/</guid>
      <pubDate>Sun, 19 Apr 2026 07:00:00 -0400</pubDate>
      <description>Spring Boot 4 is not a routine version bump.</description>
      
      <category>Spring Framework</category>
      
    </item>
    
    <item>
      <title>Modern Angular 14: Filtering Products with Computed Signals</title>
      <link>https://loiane.com/2026/04/modern-angular-filtering-products-computed-signals/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-filtering-products-computed-signals/</guid>
      <pubDate>Thu, 16 Apr 2026 08:00:00 -0400</pubDate>
      <description>This is lesson 14 of the Modern Angular Course. In the previous lesson, we introduced a writable signal for the search input. Now we build on that foundation by deriving filtered state with computed(), so the grid reacts automatically as the user types.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Harness Engineering: The Missing Layer in Specs-Driven AI Development</title>
      <link>https://loiane.com/2026/04/harness-engineering-missing-layer-specs-driven-ai-development/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/harness-engineering-missing-layer-specs-driven-ai-development/</guid>
      <pubDate>Tue, 14 Apr 2026 08:00:00 -0400</pubDate>
      <description>Many teams are still using AI like an intern.</description>
      
      <category>AI</category>
      
    </item>
    
    <item>
      <title>Modern Angular 13: Writable Signals for Search State</title>
      <link>https://loiane.com/2026/04/modern-angular-writable-signals-search-state/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-writable-signals-search-state/</guid>
      <pubDate>Mon, 13 Apr 2026 08:00:00 -0400</pubDate>
      <description>This is lesson 13 of the Modern Angular Course. In the previous lesson, we used @if and @else to conditionally render UI in the product card. Now we turn to user interaction by adding a search input that stores its value in a writable signal.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Modern Angular 12: Conditional Rendering with @if and @else</title>
      <link>https://loiane.com/2026/04/modern-angular-conditional-rendering-if-else/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-conditional-rendering-if-else/</guid>
      <pubDate>Sun, 12 Apr 2026 08:00:00 -0400</pubDate>
      <description>This is lesson 12 of the Modern Angular Course. In the previous lesson, we passed product data from the parent component to child cards using the modern input() API. Now that each card receives real product data, we can make the UI smarter by conditionally rendering parts of the template.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Modern Angular 11: Passing Data to Child Components with input()</title>
      <link>https://loiane.com/2026/04/modern-angular-passing-data-child-components-input/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-passing-data-child-components-input/</guid>
      <pubDate>Sat, 11 Apr 2026 10:00:00 -0400</pubDate>
      <description>This is lesson 11 of the Modern Angular Course. In the previous lesson, we rendered a list of products using signals and @for. Each card still shows placeholder content. Now it is time to connect real data from the parent component to the child component using Angular’s modern input() signal API.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Modern Angular 10: Rendering Lists with Signals and @for</title>
      <link>https://loiane.com/2026/04/modern-angular-rendering-lists-signals-for/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-rendering-lists-signals-for/</guid>
      <pubDate>Fri, 10 Apr 2026 10:00:00 -0400</pubDate>
      <description>This is lesson 10 of the Modern Angular Course. In the previous lesson, we built the ProductsGrid and ProductCard components with static placeholder content. Now it is time to make the UI reactive by connecting it to signals and rendering the product list dynamically.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Modern Angular 09: Products Grid with Angular Material</title>
      <link>https://loiane.com/2026/04/modern-angular-products-grid-angular-material/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-products-grid-angular-material/</guid>
      <pubDate>Thu, 09 Apr 2026 10:00:00 -0400</pubDate>
      <description>This is lesson 9 of the Modern Angular Course. In the previous lesson, we set up Angular Material and created the application header. Now we have a basic app shell, so it is time to build the main feature of the page: the products list.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Modern Angular 08: Angular Material and Header Setup</title>
      <link>https://loiane.com/2026/04/modern-angular-material-header-setup/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-material-header-setup/</guid>
      <pubDate>Wed, 08 Apr 2026 10:00:00 -0400</pubDate>
      <description>This is lesson 8 of the Modern Angular Course. In the previous lessons, we covered Angular fundamentals and the full signals model — writable signals, computed signals, and effects. Now we shift towards building a real project, step by step, applying what we have learned and introducing new concepts along the way.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Modern Angular 07: Effects</title>
      <link>https://loiane.com/2026/04/modern-angular-effects-signals/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-effects-signals/</guid>
      <pubDate>Tue, 07 Apr 2026 10:00:00 -0400</pubDate>
      <description>This is lesson 7 of the Modern Angular Course. In the previous lessons, we covered writable signals for state and computed signals for derived values. Now we complete the signals trio by introducing effects — the way Angular handles side effects in a reactive, predictable way.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Modern Angular 06: Computed Signals</title>
      <link>https://loiane.com/2026/04/modern-angular-computed-signals/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-computed-signals/</guid>
      <pubDate>Mon, 06 Apr 2026 10:00:00 -0400</pubDate>
      <description>This is lesson 6 of the Modern Angular Course. In the previous lesson, we introduced writable signals and used them to manage local component state. Now we build on that foundation with computed signals — derived state that updates automatically when its dependencies change.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Modern Angular 05: Introducing Signals for Local State</title>
      <link>https://loiane.com/2026/04/modern-angular-introducing-signals/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-introducing-signals/</guid>
      <pubDate>Sun, 05 Apr 2026 10:00:00 -0400</pubDate>
      <description>This is lesson 5 of the Modern Angular Course. In the previous lesson, we worked with component templates and learned how to bind data and handle user interaction. So far, we have been using regular class properties to manage component state. Now it is time to introduce signals — the foundation of state management in modern Angular.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Modern Angular 04: Component Templates and Interaction</title>
      <link>https://loiane.com/2026/04/modern-angular-component-templates-and-interaction/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-component-templates-and-interaction/</guid>
      <pubDate>Sat, 04 Apr 2026 10:00:00 -0400</pubDate>
      <description>This is lesson 4 of the Modern Angular Course. In the previous lesson, we created our first standalone component and rendered it using its selector. Now that we understand the structure of a component, it is time to make it interactive.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Modern Angular 03: Your First Standalone Component</title>
      <link>https://loiane.com/2026/04/modern-angular-first-standalone-component/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-first-standalone-component/</guid>
      <pubDate>Fri, 03 Apr 2026 10:00:00 -0400</pubDate>
      <description>This is lesson 3 of the Modern Angular Course. In the previous lesson, we created our project and made sure everything runs correctly. Now it is time to start building. In this post, we focus on one thing only: creating our first Angular component.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Modern Angular 02: Environment Setup</title>
      <link>https://loiane.com/2026/04/modern-angular-development-environment-setup/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-development-environment-setup/</guid>
      <pubDate>Thu, 02 Apr 2026 10:00:00 -0400</pubDate>
      <description>This is lesson 2 of the Modern Angular Course. Now that we covered what changed in Angular v21+, it is time to get practical. In this post, we set up a modern Angular development environment using the defaults Angular expects you to use today.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Modern Angular 01: What Changed in Angular v21+ (And Why It Matters)</title>
      <link>https://loiane.com/2026/04/modern-angular-course-introduction/</link>
      <guid isPermaLink="true">https://loiane.com/2026/04/modern-angular-course-introduction/</guid>
      <pubDate>Wed, 01 Apr 2026 09:00:00 -0400</pubDate>
      <description>This is the first lesson of the Modern Angular Course, a free video series that teaches Angular the way it is meant to be written today. If the last time you seriously used Angular was a few years ago, Angular v21+might surprise you. This is not just another version update — it changes how you think about building Angular applications.</description>
      
      <category>Angular Course</category>
      
    </item>
    
    <item>
      <title>Vibe Coding, But Production-Ready: A Specs-Driven Feedback Loop for AI-Assisted Development</title>
      <link>https://loiane.com/2026/03/vibe-coding-with-specs-driven-feedback-loops/</link>
      <guid isPermaLink="true">https://loiane.com/2026/03/vibe-coding-with-specs-driven-feedback-loops/</guid>
      <pubDate>Sun, 29 Mar 2026 05:00:00 -0400</pubDate>
      <description>Vibe coding is fun, fast, and honestly one of the best ways to unlock momentum. I use it too.</description>
      
      <category>AI</category>
      
    </item>
    
    <item>
      <title>You Don&apos;t Need Lombok Anymore</title>
      <link>https://loiane.com/2026/03/you-dont-need-lombok-anymore/</link>
      <guid isPermaLink="true">https://loiane.com/2026/03/you-dont-need-lombok-anymore/</guid>
      <pubDate>Sat, 21 Mar 2026 10:00:00 -0400</pubDate>
      <description>Lombok was a lifesaver. For years, it spared us from writing repetitive getters, setters, constructors, toString, equals, and hashCode. But modern Java has caught up. Between records, sealed classes, pattern matching, and a few other additions, most of what Lombok did is now built into the language.</description>
      
      <category>Java</category>
      
    </item>
    
  </channel>
</rss>
