<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Salim Jordan</title><description>AI Engineer building RAG systems, evaluation pipelines, and LLM-powered products.</description><link>https://salimjordan.dev/</link><item><title>Building a Socratic AI Tutor from Scratch: How LLMs Learn to Ask Better Questions Than They Answer</title><link>https://salimjordan.dev/blog/building-a-socratic-ai-tutor-from-scratch/</link><guid isPermaLink="true">https://salimjordan.dev/blog/building-a-socratic-ai-tutor-from-scratch/</guid><description>Prompting a model to &apos;ask questions instead of answering&apos; sounds like it should produce a Socratic tutor. Two recent preprints show why that assumption doesn&apos;t hold up, and what actually works instead.</description><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate></item><item><title>OATutor Was Built to Make Experiments Cheap to Rerun. Here&apos;s What Happened When Researchers Did.</title><link>https://salimjordan.dev/blog/oatutor-and-the-pilot-study-that-reversed/</link><guid isPermaLink="true">https://salimjordan.dev/blog/oatutor-and-the-pilot-study-that-reversed/</guid><description>OATutor is an open-source adaptive tutor built around Bayesian Knowledge Tracing and built-in A/B testing. Two studies run on it, about fifteen months apart, show why that infrastructure matters. They also show how a small pilot&apos;s tidy result stopped holding up at scale.</description><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate></item><item><title>I Built the Pipeline. The Math Worked. The Question Didn&apos;t.</title><link>https://salimjordan.dev/blog/i-built-the-pipeline-the-math-worked-the-question-didnt/</link><guid isPermaLink="true">https://salimjordan.dev/blog/i-built-the-pipeline-the-math-worked-the-question-didnt/</guid><description>I tuned the formula constants until every spec gate passed. The pipeline still produced an empty high-priority bucket. The win wasn&apos;t a metric; it was recognizing the spec&apos;s two requirements were quietly antagonistic.</description><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Refining the Prompt Made It Worse. Reframing the Output Made It Better.</title><link>https://salimjordan.dev/blog/refining-the-prompt-made-it-worse/</link><guid isPermaLink="true">https://salimjordan.dev/blog/refining-the-prompt-made-it-worse/</guid><description>I refined a sentiment classification prompt twice trying to clear an 85% accuracy target. Both attempts regressed. The win came from changing what I asked the model for, not how I asked for it.</description><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate></item><item><title>The Model Wasn&apos;t Random. It Was Backwards.</title><link>https://salimjordan.dev/blog/the-model-wasnt-random-it-was-backwards/</link><guid isPermaLink="true">https://salimjordan.dev/blog/the-model-wasnt-random-it-was-backwards/</guid><description>I expected a pre-trained embedding model to be neutral on dating compatibility. Instead, it was systematically wrong, scoring incompatible pairs higher than compatible ones. Here&apos;s why that made fine-tuning more interesting.</description><pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Reranking Isn&apos;t Always Better: A Tale of Two RAG Systems</title><link>https://salimjordan.dev/blog/reranking-isnt-always-better/</link><guid isPermaLink="true">https://salimjordan.dev/blog/reranking-isnt-always-better/</guid><description>I built two RAG pipelines. In one, adding a reranker dropped accuracy by 7%. In the other, it improved accuracy by 7%. Same technique, opposite results.</description><pubDate>Sat, 28 Mar 2026 00:00:00 GMT</pubDate></item></channel></rss>