<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Reza Enayati — Writing</title><description>Senior backend engineer with 6+ years of production Node.js / TypeScript experience, focused on shipping LLM-powered features end-to-end.</description><link>https://rezaenayati.me/</link><language>en</language><item><title>Shipping LLM features end-to-end on Azure OpenAI</title><link>https://rezaenayati.me/case-studies/shipping-llm-features/</link><guid isPermaLink="true">https://rezaenayati.me/case-studies/shipping-llm-features/</guid><description>Notes from building a multi-language summarization pipeline on Azure OpenAI: provider abstraction, multi-region failover, structured outputs, function calling, and the cost telemetry that kept us honest.</description><pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate><category>case study</category><category>AI</category><category>LLM</category><category>Azure OpenAI</category><category>Backend</category></item><item><title>How a `$nin` query took down a hot read path</title><link>https://rezaenayati.me/case-studies/mongo-incident-2026/</link><guid isPermaLink="true">https://rezaenayati.me/case-studies/mongo-incident-2026/</guid><description>A B2B SaaS I work on saw router pools saturate and p95 pin at 30 seconds. The trigger was one query on one collection. The amplifiers were everywhere. This is the walkthrough.</description><pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate><category>case study</category><category>MongoDB</category><category>Performance</category><category>Postmortem</category><category>Backend</category></item><item><title>Reading explain plans without panicking</title><link>https://rezaenayati.me/articles/reading-explain-plans-without-panicking/</link><guid isPermaLink="true">https://rezaenayati.me/articles/reading-explain-plans-without-panicking/</guid><description>MongoDB explain plans look intimidating because the field names sound like ceremonial Latin. They aren&apos;t, and they don&apos;t have to be. Three numbers and one stage name will tell you 80% of what you need to know about a slow query.</description><pubDate>Wed, 22 Oct 2025 00:00:00 GMT</pubDate><category>writing</category><category>MongoDB</category><category>Performance</category><category>Backend</category></item><item><title>What &apos;clean architecture&apos; actually costs you</title><link>https://rezaenayati.me/articles/clean-architecture-costs/</link><guid isPermaLink="true">https://rezaenayati.me/articles/clean-architecture-costs/</guid><description>Clean architecture is a real win in some codebases and a real cost in others. The costs are not theoretical and they&apos;re not optional. If you can name the specific thing the architecture is buying you, it&apos;s probably worth the price. If you can&apos;t, it isn&apos;t.</description><pubDate>Tue, 15 Jul 2025 00:00:00 GMT</pubDate><category>writing</category><category>Architecture</category><category>Backend</category><category>Opinion</category></item></channel></rss>