<?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:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Angular Engineering - Medium]]></title>
        <description><![CDATA[Real-world Angular architecture, performance optimization, scalable frontend systems, and engineering practices for modern developers. - Medium]]></description>
        <link>https://medium.com/angular-engineering?source=rss----e6e0fb72833d---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Angular Engineering - Medium</title>
            <link>https://medium.com/angular-engineering?source=rss----e6e0fb72833d---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Thu, 05 Nov 2026 14:53:52 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/angular-engineering" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Stop Refreshing Everything After Every Angular Mutation]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/angular-engineering/stop-refreshing-everything-after-every-angular-mutation-2d2b6d68d8db?source=rss----e6e0fb72833d---4"><img src="https://cdn-images-1.medium.com/max/1672/1*YKyPzdzb0fbT0c4DOSKGqw.png" width="1672"></a></p><p class="medium-feed-snippet">If every save, approve, delete, or update triggers a full feature reload, you do not have a cache strategy &#x2014; you have a reset button.</p><p class="medium-feed-link"><a href="https://medium.com/angular-engineering/stop-refreshing-everything-after-every-angular-mutation-2d2b6d68d8db?source=rss----e6e0fb72833d---4">Continue reading on Angular Engineering »</a></p></div>]]></description>
            <link>https://medium.com/angular-engineering/stop-refreshing-everything-after-every-angular-mutation-2d2b6d68d8db?source=rss----e6e0fb72833d---4</link>
            <guid isPermaLink="false">https://medium.com/p/2d2b6d68d8db</guid>
            <category><![CDATA[angular-architecture]]></category>
            <category><![CDATA[angular]]></category>
            <category><![CDATA[frontend-architecture]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[caching]]></category>
            <dc:creator><![CDATA[Dipak Ahirav]]></dc:creator>
            <pubDate>Sun, 01 Nov 2026 16:10:42 GMT</pubDate>
            <atom:updated>2026-11-01T16:10:41.577Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Stop Storing Backend DTOs Directly in Your Angular Feature State]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/angular-engineering/stop-storing-backend-dtos-directly-in-your-angular-feature-state-233a9ad9c28e?source=rss----e6e0fb72833d---4"><img src="https://cdn-images-1.medium.com/max/1672/1*_yt6aqaIulqsjuiHCLghtQ.png" width="1672"></a></p><p class="medium-feed-snippet">Your backend response shape is a transport contract. It should not automatically become your Angular domain model, store state, and UI&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/angular-engineering/stop-storing-backend-dtos-directly-in-your-angular-feature-state-233a9ad9c28e?source=rss----e6e0fb72833d---4">Continue reading on Angular Engineering »</a></p></div>]]></description>
            <link>https://medium.com/angular-engineering/stop-storing-backend-dtos-directly-in-your-angular-feature-state-233a9ad9c28e?source=rss----e6e0fb72833d---4</link>
            <guid isPermaLink="false">https://medium.com/p/233a9ad9c28e</guid>
            <category><![CDATA[typescript]]></category>
            <category><![CDATA[software-architecture]]></category>
            <category><![CDATA[angular-architecture]]></category>
            <category><![CDATA[front-end-development]]></category>
            <category><![CDATA[angular]]></category>
            <dc:creator><![CDATA[Dipak Ahirav]]></dc:creator>
            <pubDate>Thu, 29 Oct 2026 15:37:28 GMT</pubDate>
            <atom:updated>2026-11-02T16:06:56.264Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Stop Turning Your Angular Shared Library Into a Dumping Ground]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/angular-engineering/stop-turning-your-angular-shared-library-into-a-dumping-ground-53ec49b8fd09?source=rss----e6e0fb72833d---4"><img src="https://cdn-images-1.medium.com/max/1672/1*A9WE80RnrkFXSIATT3JQqw.png" width="1672"></a></p><p class="medium-feed-snippet">shared/ should contain truly reusable building blocks &#x2014; not become the place where code goes when nobody knows who owns it.</p><p class="medium-feed-link"><a href="https://medium.com/angular-engineering/stop-turning-your-angular-shared-library-into-a-dumping-ground-53ec49b8fd09?source=rss----e6e0fb72833d---4">Continue reading on Angular Engineering »</a></p></div>]]></description>
            <link>https://medium.com/angular-engineering/stop-turning-your-angular-shared-library-into-a-dumping-ground-53ec49b8fd09?source=rss----e6e0fb72833d---4</link>
            <guid isPermaLink="false">https://medium.com/p/53ec49b8fd09</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[front-end-development]]></category>
            <category><![CDATA[angular]]></category>
            <category><![CDATA[angular-architecture]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[Dipak Ahirav]]></dc:creator>
            <pubDate>Tue, 27 Oct 2026 16:36:21 GMT</pubDate>
            <atom:updated>2026-10-30T17:29:38.484Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Stop Using a Global Event Bus to Make Angular Features Talk to Each Other]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/angular-engineering/stop-using-a-global-event-bus-to-make-angular-features-talk-to-each-other-8e728df25770?source=rss----e6e0fb72833d---4"><img src="https://cdn-images-1.medium.com/max/1672/1*vYgL0ujwGRBR_NW5s41WUg.png" width="1672"></a></p><p class="medium-feed-snippet">An application-wide Subject feels loosely coupled &#x2014; until nobody knows who emits an event, who reacts to it, or what else will break when&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/angular-engineering/stop-using-a-global-event-bus-to-make-angular-features-talk-to-each-other-8e728df25770?source=rss----e6e0fb72833d---4">Continue reading on Angular Engineering »</a></p></div>]]></description>
            <link>https://medium.com/angular-engineering/stop-using-a-global-event-bus-to-make-angular-features-talk-to-each-other-8e728df25770?source=rss----e6e0fb72833d---4</link>
            <guid isPermaLink="false">https://medium.com/p/8e728df25770</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[frontend-architecture]]></category>
            <category><![CDATA[angular]]></category>
            <category><![CDATA[software-architecture]]></category>
            <category><![CDATA[architecture]]></category>
            <dc:creator><![CDATA[Dipak Ahirav]]></dc:creator>
            <pubDate>Mon, 26 Oct 2026 17:22:57 GMT</pubDate>
            <atom:updated>2026-10-29T16:56:22.736Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Stop Letting Every Angular Feature Invent Its Own Error Handling]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/angular-engineering/stop-letting-every-angular-feature-invent-its-own-error-handling-1603d74d4ece?source=rss----e6e0fb72833d---4"><img src="https://cdn-images-1.medium.com/max/1672/1*4TZkPpoPsUf9emAUVhPJAA.png" width="1672"></a></p><p class="medium-feed-snippet">When every component, store, interceptor, and service handles failures differently, your application does not have error handling &#x2014; it has&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/angular-engineering/stop-letting-every-angular-feature-invent-its-own-error-handling-1603d74d4ece?source=rss----e6e0fb72833d---4">Continue reading on Angular Engineering »</a></p></div>]]></description>
            <link>https://medium.com/angular-engineering/stop-letting-every-angular-feature-invent-its-own-error-handling-1603d74d4ece?source=rss----e6e0fb72833d---4</link>
            <guid isPermaLink="false">https://medium.com/p/1603d74d4ece</guid>
            <category><![CDATA[angular]]></category>
            <category><![CDATA[software-architecture]]></category>
            <category><![CDATA[architecture]]></category>
            <category><![CDATA[error-handling]]></category>
            <category><![CDATA[front-end-development]]></category>
            <dc:creator><![CDATA[Dipak Ahirav]]></dc:creator>
            <pubDate>Sun, 25 Oct 2026 09:25:25 GMT</pubDate>
            <atom:updated>2026-10-28T15:08:56.030Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Stop Using One loading Boolean for Your Entire Angular Feature]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/angular-engineering/stop-using-one-loading-boolean-for-your-entire-angular-feature-e9b5ed657dfe?source=rss----e6e0fb72833d---4"><img src="https://cdn-images-1.medium.com/max/1672/1*z8qCk0ktfxWSCvEodk7CWw.png" width="1672"></a></p><p class="medium-feed-snippet">A single loading flag looks simple &#x2014; until one screen has initial load, refresh, save, delete, export, and background requests happening&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/angular-engineering/stop-using-one-loading-boolean-for-your-entire-angular-feature-e9b5ed657dfe?source=rss----e6e0fb72833d---4">Continue reading on Angular Engineering »</a></p></div>]]></description>
            <link>https://medium.com/angular-engineering/stop-using-one-loading-boolean-for-your-entire-angular-feature-e9b5ed657dfe?source=rss----e6e0fb72833d---4</link>
            <guid isPermaLink="false">https://medium.com/p/e9b5ed657dfe</guid>
            <category><![CDATA[angular-architecture]]></category>
            <category><![CDATA[angular]]></category>
            <category><![CDATA[frontend-architecture]]></category>
            <category><![CDATA[state-management]]></category>
            <category><![CDATA[software-architecture]]></category>
            <dc:creator><![CDATA[Dipak Ahirav]]></dc:creator>
            <pubDate>Wed, 21 Oct 2026 14:51:12 GMT</pubDate>
            <atom:updated>2026-10-24T03:20:20.924Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Stop Making Angular Route Guards Fetch the Data Your Page Actually Needs]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/angular-engineering/stop-making-angular-route-guards-fetch-the-data-your-page-actually-needs-7720cab1c562?source=rss----e6e0fb72833d---4"><img src="https://cdn-images-1.medium.com/max/1491/1*DoZ7aGLhZXSsSAd5svFk0Q.png" width="1491"></a></p><p class="medium-feed-snippet">A guard should answer whether navigation is allowed &#x2014; not quietly become your page&#x2019;s data-loading layer.</p><p class="medium-feed-link"><a href="https://medium.com/angular-engineering/stop-making-angular-route-guards-fetch-the-data-your-page-actually-needs-7720cab1c562?source=rss----e6e0fb72833d---4">Continue reading on Angular Engineering »</a></p></div>]]></description>
            <link>https://medium.com/angular-engineering/stop-making-angular-route-guards-fetch-the-data-your-page-actually-needs-7720cab1c562?source=rss----e6e0fb72833d---4</link>
            <guid isPermaLink="false">https://medium.com/p/7720cab1c562</guid>
            <category><![CDATA[angular-architecture]]></category>
            <category><![CDATA[software-architecture]]></category>
            <category><![CDATA[frontend-architecture]]></category>
            <category><![CDATA[route-guards]]></category>
            <category><![CDATA[angular]]></category>
            <dc:creator><![CDATA[Dipak Ahirav]]></dc:creator>
            <pubDate>Sun, 18 Oct 2026 16:11:43 GMT</pubDate>
            <atom:updated>2026-10-19T17:14:26.127Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Stop Scattering Feature Flag Checks Across Your Angular Application]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/angular-engineering/stop-scattering-feature-flag-checks-across-your-angular-application-30bbc625e1c2?source=rss----e6e0fb72833d---4"><img src="https://cdn-images-1.medium.com/max/1672/1*UZ7LYvuo8ng-xqfYk7hIig.png" width="1672"></a></p><p class="medium-feed-snippet">Feature flags should control rollout &#x2014; not become permanent business logic hidden inside components, templates, guards, and services.</p><p class="medium-feed-link"><a href="https://medium.com/angular-engineering/stop-scattering-feature-flag-checks-across-your-angular-application-30bbc625e1c2?source=rss----e6e0fb72833d---4">Continue reading on Angular Engineering »</a></p></div>]]></description>
            <link>https://medium.com/angular-engineering/stop-scattering-feature-flag-checks-across-your-angular-application-30bbc625e1c2?source=rss----e6e0fb72833d---4</link>
            <guid isPermaLink="false">https://medium.com/p/30bbc625e1c2</guid>
            <category><![CDATA[software-architecture]]></category>
            <category><![CDATA[angular]]></category>
            <category><![CDATA[feature-flags]]></category>
            <category><![CDATA[frontend-architecture]]></category>
            <category><![CDATA[angular-architecture]]></category>
            <dc:creator><![CDATA[Dipak Ahirav]]></dc:creator>
            <pubDate>Thu, 15 Oct 2026 16:44:44 GMT</pubDate>
            <atom:updated>2026-10-17T14:46:55.294Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Stop Treating Angular Forms as Your Domain Model]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/angular-engineering/stop-treating-angular-forms-as-your-domain-model-e0ccf9f2f235?source=rss----e6e0fb72833d---4"><img src="https://cdn-images-1.medium.com/max/1672/1*QEdReDwWlffdsvaTzRHkNg.png" width="1672"></a></p><p class="medium-feed-snippet">A FormGroup should manage user input. It should not become your business entity, API contract, store, and workflow state at the same time.</p><p class="medium-feed-link"><a href="https://medium.com/angular-engineering/stop-treating-angular-forms-as-your-domain-model-e0ccf9f2f235?source=rss----e6e0fb72833d---4">Continue reading on Angular Engineering »</a></p></div>]]></description>
            <link>https://medium.com/angular-engineering/stop-treating-angular-forms-as-your-domain-model-e0ccf9f2f235?source=rss----e6e0fb72833d---4</link>
            <guid isPermaLink="false">https://medium.com/p/e0ccf9f2f235</guid>
            <category><![CDATA[angular-forms]]></category>
            <category><![CDATA[software-architecture]]></category>
            <category><![CDATA[angular-architecture]]></category>
            <category><![CDATA[angular]]></category>
            <category><![CDATA[frontend-architecture]]></category>
            <dc:creator><![CDATA[Dipak Ahirav]]></dc:creator>
            <pubDate>Wed, 14 Oct 2026 16:24:43 GMT</pubDate>
            <atom:updated>2026-10-15T17:11:40.788Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Stop Turning Angular App Startup Into a Feature Initialization Pipeline]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/angular-engineering/stop-turning-angular-app-startup-into-a-feature-initialization-pipeline-958b7c966ebc?source=rss----e6e0fb72833d---4"><img src="https://cdn-images-1.medium.com/max/1672/1*gk7oTpFHZtdPzIO5J-io-w.png" width="1672"></a></p><p class="medium-feed-snippet">Your application should bootstrap the platform essentials &#x2014; not preload every feature, permission, lookup, and business workflow before&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/angular-engineering/stop-turning-angular-app-startup-into-a-feature-initialization-pipeline-958b7c966ebc?source=rss----e6e0fb72833d---4">Continue reading on Angular Engineering »</a></p></div>]]></description>
            <link>https://medium.com/angular-engineering/stop-turning-angular-app-startup-into-a-feature-initialization-pipeline-958b7c966ebc?source=rss----e6e0fb72833d---4</link>
            <guid isPermaLink="false">https://medium.com/p/958b7c966ebc</guid>
            <category><![CDATA[software-architecture]]></category>
            <category><![CDATA[frontend-architecture]]></category>
            <category><![CDATA[architecture]]></category>
            <category><![CDATA[performance]]></category>
            <category><![CDATA[angular]]></category>
            <dc:creator><![CDATA[Dipak Ahirav]]></dc:creator>
            <pubDate>Tue, 06 Oct 2026 17:09:11 GMT</pubDate>
            <atom:updated>2026-10-08T17:18:26.031Z</atom:updated>
        </item>
    </channel>
</rss>