<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Harish Krishnan — Writing</title><description>Essays on software engineering, AI systems, and the craft, by Harish Krishnan.</description><link>https://harishkrishnan24.github.io/</link><item><title>There&apos;s No Magic in Your Database</title><link>https://harishkrishnan24.github.io/me/blog/what-happens-when-you-run-a-query/</link><guid isPermaLink="true">https://harishkrishnan24.github.io/me/blog/what-happens-when-you-run-a-query/</guid><description>You type SELECT and rows come back. In between is a stack of twelve layers, each solving one very sensible problem. Here&apos;s the whole journey, following a single query from your terminal to the disk and back.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate><category>databases</category><category>postgresql</category><category>internals</category><category>systems</category></item><item><title>Why Your AI Features Feel Bolted On</title><link>https://harishkrishnan24.github.io/me/blog/why-ai-features-feel-bolted-on/</link><guid isPermaLink="true">https://harishkrishnan24.github.io/me/blog/why-ai-features-feel-bolted-on/</guid><description>Most AI integrations disappoint for the same reason, viewed three ways. Here are the three failure modes — and the one architectural idea that fixes all of them.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate><category>architecture</category><category>ai-systems</category><category>agent-native</category><category>typescript</category></item></channel></rss>