<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Aryan Batra — Writing</title><description>Long-form essays on software architecture, system design, interfaces, and the craft of engineering.</description><link>https://aryanbatras.com/</link><language>en-us</language><copyright>© 2026 Aryan Batra</copyright><item><title>Feature-First Clean Architecture for Next.js</title><link>https://aryanbatras.com/writing/feature-first-nextjs/</link><guid isPermaLink="true">https://aryanbatras.com/writing/feature-first-nextjs/</guid><description>A folder structure is a theory about how change happens. Here is the one I use in Next.js, what the domain layer actually buys, and where clean architecture turns into ceremony.</description><pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate><language>en-us</language><category>architecture</category><category>nextjs</category><category>typescript</category><author>Aryan Batra</author></item><item><title>The Queue Is the Product</title><link>https://aryanbatras.com/writing/the-queue-is-the-product/</link><guid isPermaLink="true">https://aryanbatras.com/writing/the-queue-is-the-product/</guid><description>The happy path is a demo. The queue is where the product actually lives — retries, idempotency, visibility timeouts, and the dead-letter queue nobody wants to own.</description><pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate><language>en-us</language><category>system-design</category><category>aws</category><category>backend</category><author>Aryan Batra</author></item><item><title>Make the Boundary Obvious</title><link>https://aryanbatras.com/writing/make-the-boundary-obvious/</link><guid isPermaLink="true">https://aryanbatras.com/writing/make-the-boundary-obvious/</guid><description>A module that cannot explain what it owns will eventually own everything. Notes on contracts, ownership, and the small interfaces that keep a codebase legible.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate><language>en-us</language><category>architecture</category><category>craft</category><category>teams</category><author>Aryan Batra</author></item><item><title>Designing for the Second Visit</title><link>https://aryanbatras.com/writing/designing-for-the-second-visit/</link><guid isPermaLink="true">https://aryanbatras.com/writing/designing-for-the-second-visit/</guid><description>The first visit is a demo. The second visit is the product — and it depends on return paths, saved state, speed, and the quiet details nobody puts in a launch video.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><language>en-us</language><category>design</category><category>interfaces</category><category>craft</category><author>Aryan Batra</author></item><item><title>The Cost of a Convenient Abstraction</title><link>https://aryanbatras.com/writing/the-cost-of-a-convenient-abstraction/</link><guid isPermaLink="true">https://aryanbatras.com/writing/the-cost-of-a-convenient-abstraction/</guid><description>Every shortcut has a bill, and most of them arrive in production. On ORMs, server components, caching layers, and the value of knowing what the abstraction is doing.</description><pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate><language>en-us</language><category>typescript</category><category>databases</category><category>architecture</category><author>Aryan Batra</author></item></channel></rss>