<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Ahmad Hassan: writing</title>
	<link>https://ahmadhsn1.github.io/blog/</link>
	<description>Technical write-ups on AI engineering by Ahmad Hassan.</description>
	<item>
		<title>Vibe Coding vs Learning to Code: Freshers Guide</title>
		<link>https://ahmadhsn1.github.io/blog/vibe-coding-vs-learning-to-code-freshers/</link>
		<guid isPermaLink="true">https://ahmadhsn1.github.io/blog/vibe-coding-vs-learning-to-code-freshers/</guid>
		<pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
		<description>Should you still learn to code in 2026? What vibe coding gets wrong, what AI cannot do, and a 90 day roadmap for freshers in Pakistan and beyond.</description>
	</item>
	<item>
		<title>RAG Tenant Isolation Inside the Vector Index</title>
		<link>https://ahmadhsn1.github.io/blog/rag-tenant-isolation-vector-index/</link>
		<guid isPermaLink="true">https://ahmadhsn1.github.io/blog/rag-tenant-isolation-vector-index/</guid>
		<pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate>
		<description>Filtering by user after a vector search quietly breaks privacy and answer quality. Here is how to filter inside the search, and how to test it.</description>
	</item>
	<item>
		<title>An AI Booking Assistant That Cannot Double Book</title>
		<link>https://ahmadhsn1.github.io/blog/ai-booking-assistant-tool-calling/</link>
		<guid isPermaLink="true">https://ahmadhsn1.github.io/blog/ai-booking-assistant-tool-calling/</guid>
		<pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate>
		<description>How Aria books, reschedules and cancels through LLM tool calling without owning any booking logic, and how to protect a public endpoint.</description>
	</item>
	<item>
		<title>Do Not Retry an LLM Rate Limit, Reschedule It</title>
		<link>https://ahmadhsn1.github.io/blog/llm-rate-limits-bullmq-reschedule/</link>
		<guid isPermaLink="true">https://ahmadhsn1.github.io/blog/llm-rate-limits-bullmq-reschedule/</guid>
		<pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate>
		<description>Retrying a daily quota error five times in thirty seconds only burns attempts. How to tell the two kinds of 429 apart and reschedule jobs in BullMQ.</description>
	</item>
	<item>
		<title>Put the Model Last: A Cheaper, Safer Chatbot</title>
		<link>https://ahmadhsn1.github.io/blog/llm-chatbot-pipeline-cost-guardrails/</link>
		<guid isPermaLink="true">https://ahmadhsn1.github.io/blog/llm-chatbot-pipeline-cost-guardrails/</guid>
		<pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate>
		<description>A public LLM chatbot needs caps, caches, guardrails and fallbacks around the model. The pipeline behind The Copper Larder, and how to build yours.</description>
	</item>
	<item>
		<title>Integer Money and Row Level Security in Postgres</title>
		<link>https://ahmadhsn1.github.io/blog/integer-money-row-level-security-postgres/</link>
		<guid isPermaLink="true">https://ahmadhsn1.github.io/blog/integer-money-row-level-security-postgres/</guid>
		<pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
		<description>Why money should be an integer, how one database function makes a sale all or nothing, and how row level security keeps shops apart.</description>
	</item>
</channel>
</rss>
