<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Arun Arivanandam — Writing</title><description>Arun Arivanandam builds resilient full-stack web applications with MongoDB, Express, React and Node. Selected work, writing on backend architecture, and how to get in touch.</description><link>https://arunarivanandam.dev/</link><language>en-in</language><item><title>React State from first principles</title><link>https://arunarivanandam.dev/blog/usestate/</link><guid isPermaLink="true">https://arunarivanandam.dev/blog/usestate/</guid><description>Learn react useState hook from first principles. Use states with confidence.</description><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate><category>react</category><category>javascript</category><category>architecture</category></item><item><title>What MongoDB change streams actually cost you</title><link>https://arunarivanandam.dev/blog/what-change-streams-cost-you/</link><guid isPermaLink="true">https://arunarivanandam.dev/blog/what-change-streams-cost-you/</guid><description>Change streams removed a polling loop and a whole class of duplicate-payout bugs. They also introduced three failure modes I had not budgeted for.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate><category>mongodb</category><category>node</category><category>architecture</category></item><item><title>Stop putting business logic in Express middleware</title><link>https://arunarivanandam.dev/blog/business-logic-in-middleware/</link><guid isPermaLink="true">https://arunarivanandam.dev/blog/business-logic-in-middleware/</guid><description>Middleware that mutates the request object reads like dependency injection and behaves like a global variable. Here is the refactor that finally stuck.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate><category>express</category><category>node</category><category>architecture</category></item><item><title>A React data layer that survives a bad network</title><link>https://arunarivanandam.dev/blog/react-data-layer-bad-network/</link><guid isPermaLink="true">https://arunarivanandam.dev/blog/react-data-layer-bad-network/</guid><description>Notes from building an offline-first pharmacy app for shops on 2G, where the connection is not an edge case but the normal operating condition.</description><pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate><category>react</category><category>offline</category><category>architecture</category></item></channel></rss>