<?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:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" version="2.0">
<channel>
<title>Backend - Mahdi Molavi | Senior Backend Engineer &amp; Tensor Researcher</title>
<link>https://mahdimolavi.ir/</link>
<language>en</language>
<description>Backend - Mahdi Molavi | Senior Backend Engineer &amp; Tensor Researcher</description>
<generator>DataLife Engine</generator><item>
<title>Backend Notes 2: Adaptive Testing with IRT Behind an API</title>
<guid isPermaLink="true">https://mahdimolavi.ir/backend-notes/25-backend-notes-2-adaptive-testing-irt-item-selection-api.html</guid>
<link>https://mahdimolavi.ir/backend-notes/25-backend-notes-2-adaptive-testing-irt-item-selection-api.html</link>
<description><![CDATA[<p><img src="https://mahdimolavi.ir/uploads/posts/2026-10/backend-notes-2.jpg" alt="Backend Notes 2: Adaptive Testing with IRT Behind an API" width="1200" height="630"></p>
<p>How an IRT-based adaptive test picks every next question: 1PL to 3PL models, EAP ability estimates, maximum information with exposure control and content balancing, and an API that stays responsive at exam peaks.</p>]]></description>
<category><![CDATA[Backend]]></category>
<dc:creator>admin</dc:creator>
<pubDate>Mon, 12 Oct 2026 10:00:00 +0330</pubDate>
</item><item>
<title>Real Watch Time from Noisy Video Player Logs</title>
<guid isPermaLink="true">https://mahdimolavi.ir/backend-notes/33-real-watch-time-from-noisy-video-player-logs.html</guid>
<link>https://mahdimolavi.ir/backend-notes/33-real-watch-time-from-noisy-video-player-logs.html</link>
<description><![CDATA[<p><img src="https://mahdimolavi.ir/uploads/posts/2026-10/real-watch-time.jpg" alt="Real Watch Time from Noisy Video Player Logs" width="1200" height="630"></p>
<p>Video players send play, pause, seek and heartbeat events, and some of them never arrive. How I turned that noisy telemetry into reliable per-learner watch-time facts with .NET 10 and SQL Server.</p>]]></description>
<category><![CDATA[Backend]]></category>
<dc:creator>admin</dc:creator>
<pubDate>Mon, 05 Oct 2026 11:27:45 +0330</pubDate>
</item><item>
<title>Backend Notes 1: Redis Sentinel for Up to 70,000 Exam-Day Users</title>
<guid isPermaLink="true">https://mahdimolavi.ir/backend-notes/23-backend-notes-1-redis-sentinel-exam-day-traffic.html</guid>
<link>https://mahdimolavi.ir/backend-notes/23-backend-notes-1-redis-sentinel-exam-day-traffic.html</link>
<description><![CDATA[<p><img src="https://mahdimolavi.ir/uploads/posts/2026-10/backend-notes-1.jpg" alt="Backend Notes 1: Redis Sentinel for Up to 70,000 Exam-Day Users" width="1200" height="630"></p>
<p>Exam platforms idle for weeks, then everyone starts at once. Redis Sentinel failover, StackExchange.Redis configuration, stampede-safe caching and Locust load tests, from a setup that carried 45,000 to 70,000 concurrent users.</p>]]></description>
<category><![CDATA[Backend]]></category>
<dc:creator>admin</dc:creator>
<pubDate>Sun, 04 Oct 2026 16:34:27 +0330</pubDate>
</item></channel></rss>