<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://loiane.com/</id><title>Loiane Groner</title><subtitle>Java, Spring Boot, Spring AI, AI, Angular, Typescript, JavaScript</subtitle> <updated>2026-04-19T09:51:25-04:00</updated> <author> <name>Loiane Groner</name> <uri>https://loiane.com/</uri> </author><link rel="self" type="application/atom+xml" href="https://loiane.com/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://loiane.com/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Loiane Groner </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Spring Boot 3 EOL to Spring Boot 4: A Production Upgrade Playbook (Including Jackson 2 to 3)</title><link href="https://loiane.com/2026/04/spring-boot-3-eol-to-4-upgrade-playbook-jackson-3/" rel="alternate" type="text/html" title="Spring Boot 3 EOL to Spring Boot 4: A Production Upgrade Playbook (Including Jackson 2 to 3)" /><published>2026-04-19T07:00:00-04:00</published> <updated>2026-04-19T07:00:00-04:00</updated> <id>https://loiane.com/2026/04/spring-boot-3-eol-to-4-upgrade-playbook-jackson-3/</id> <content type="text/html" src="https://loiane.com/2026/04/spring-boot-3-eol-to-4-upgrade-playbook-jackson-3/" /> <author> <name>Loiane Groner</name> </author> <category term="Spring Framework" /> <summary>Spring Boot 4 is not a routine version bump. This migration touches platform baselines (Java/Jakarta/Servlet), dependency structure, test infrastructure, and JSON behavior — all at once. If your services are still on Spring Boot 3.x, I wrote this as a practical, production-oriented playbook to move to Spring Boot 4 safely, with explicit attention to end-of-life (EOL) risk, CVE exposure, and J...</summary> </entry> <entry><title>Modern Angular 14: Filtering Products with Computed Signals</title><link href="https://loiane.com/2026/04/modern-angular-filtering-products-computed-signals/" rel="alternate" type="text/html" title="Modern Angular 14: Filtering Products with Computed Signals" /><published>2026-04-16T08:00:00-04:00</published> <updated>2026-04-16T08:00:00-04:00</updated> <id>https://loiane.com/2026/04/modern-angular-filtering-products-computed-signals/</id> <content type="text/html" src="https://loiane.com/2026/04/modern-angular-filtering-products-computed-signals/" /> <author> <name>Loiane Groner</name> </author> <category term="Angular Course" /> <summary>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. In this post, we cover: Reusing the existing searchTerm writable signal Creating filteredProducts with computed() Rendering filtered r...</summary> </entry> <entry><title>Harness Engineering: The Missing Layer in Specs-Driven AI Development</title><link href="https://loiane.com/2026/04/harness-engineering-missing-layer-specs-driven-ai-development/" rel="alternate" type="text/html" title="Harness Engineering: The Missing Layer in Specs-Driven AI Development" /><published>2026-04-14T08:00:00-04:00</published> <updated>2026-04-14T08:00:00-04:00</updated> <id>https://loiane.com/2026/04/harness-engineering-missing-layer-specs-driven-ai-development/</id> <content type="text/html" src="https://loiane.com/2026/04/harness-engineering-missing-layer-specs-driven-ai-development/" /> <author> <name>Loiane Groner</name> </author> <category term="AI" /> <summary>Many teams are still using AI like an intern. We give instructions, review every output, request fixes, and repeat. It works for quick experiments. It does not work as a long-term delivery model. As soon as AI becomes part of real software delivery, the intern model starts to crack: It does not scale It is hard to standardize It creates fragile outcomes that depend too much on constan...</summary> </entry> <entry><title>Modern Angular 13: Writable Signals for Search State</title><link href="https://loiane.com/2026/04/modern-angular-writable-signals-search-state/" rel="alternate" type="text/html" title="Modern Angular 13: Writable Signals for Search State" /><published>2026-04-13T08:00:00-04:00</published> <updated>2026-04-13T08:00:00-04:00</updated> <id>https://loiane.com/2026/04/modern-angular-writable-signals-search-state/</id> <content type="text/html" src="https://loiane.com/2026/04/modern-angular-writable-signals-search-state/" /> <author> <name>Loiane Groner</name> </author> <category term="Angular Course" /> <summary>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. This post is part of the Modern Angular Course series. Check the course page for the full episode list. In this post, we cover: Adding a search ...</summary> </entry> <entry><title>Modern Angular 12: Conditional Rendering with @if and @else</title><link href="https://loiane.com/2026/04/modern-angular-conditional-rendering-if-else/" rel="alternate" type="text/html" title="Modern Angular 12: Conditional Rendering with @if and @else" /><published>2026-04-12T08:00:00-04:00</published> <updated>2026-04-12T08:00:00-04:00</updated> <id>https://loiane.com/2026/04/modern-angular-conditional-rendering-if-else/</id> <content type="text/html" src="https://loiane.com/2026/04/modern-angular-conditional-rendering-if-else/" /> <author> <name>Loiane Groner</name> </author> <category term="Angular Course" /> <summary>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. This post is part of the Modern Angular Course series. Check the course page for the full episode list....</summary> </entry> </feed>
