<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Backend Development on Muhammad Hassan Raza</title><link>https://mhassan.dev/categories/backend-development/</link><description>Recent content in Backend Development on Muhammad Hassan Raza</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 15 Nov 2025 10:00:00 +0500</lastBuildDate><atom:link href="https://mhassan.dev/categories/backend-development/index.xml" rel="self" type="application/rss+xml"/><item><title>I Shipped a Race Condition That Double-Charged Customers (And Other War Stories)</title><link>https://mhassan.dev/blog/war-stories-from-production/</link><pubDate>Sat, 15 Nov 2025 10:00:00 +0500</pubDate><guid>https://mhassan.dev/blog/war-stories-from-production/</guid><description>The production bugs I actually shipped, how they failed in the real world, and what fixed them.</description></item><item><title>Optimizing Django ORM Queries for Large Applications</title><link>https://mhassan.dev/blog/django-orm-optimizations/</link><pubDate>Mon, 17 Feb 2025 12:00:00 +0500</pubDate><guid>https://mhassan.dev/blog/django-orm-optimizations/</guid><description>Django ORM query fixes that improved billing performance by reducing relation loading mistakes, repeated writes, and inefficient loops.</description></item><item><title>Optimizing Django Signals for Efficient Ledger Recalculations</title><link>https://mhassan.dev/blog/using-signals-optimally/</link><pubDate>Sat, 15 Feb 2025 12:00:00 +0500</pubDate><guid>https://mhassan.dev/blog/using-signals-optimally/</guid><description>A Django signals cleanup pattern for ledger recalculation that batches work after commit instead of triggering redundant writes.</description></item></channel></rss>