<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="/rss-style.xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ravi Palavai Writing</title>
    <link>https://ravipalavai.vercel.app/blogs</link>
    <atom:link href="https://ravipalavai.vercel.app/rss.xml" rel="self" type="application/rss+xml" />
    <description>Notes on building, shipping, and learning. Posts on backend, AI, frontend, and ops.</description>
    <language>en-us</language>
    <lastBuildDate>Wed, 20 May 2026 07:54:35 GMT</lastBuildDate>
    <item>
      <title>Hello, World: Why I Rebuilt My Blog on My Own Site</title>
      <link>https://ravipalavai.vercel.app/blogs/hello-world</link>
      <guid isPermaLink="true">https://ravipalavai.vercel.app/blogs/hello-world</guid>
      <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
      <description>A short note on why I moved my writing off Medium and what I plan to post here.</description>
    </item>
    <item>
      <title>The Spring Security Config I Keep Copy-Pasting</title>
      <link>https://ravipalavai.vercel.app/blogs/spring-security-config-i-keep-copy-pasting</link>
      <guid isPermaLink="true">https://ravipalavai.vercel.app/blogs/spring-security-config-i-keep-copy-pasting</guid>
      <pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate>
      <description>The one-page OAuth2/JWT setup I&apos;ve leaned on across three banking projects, plus the three lines I wish someone had shouted at me before my first production deploy.</description>
    </item>
    <item>
      <title>Kafka Wasn&apos;t the Bottleneck. My Consumer Was.</title>
      <link>https://ravipalavai.vercel.app/blogs/kafka-wasnt-the-bottleneck</link>
      <guid isPermaLink="true">https://ravipalavai.vercel.app/blogs/kafka-wasnt-the-bottleneck</guid>
      <pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate>
      <description>Three days of blaming the broker for a latency problem that turned out to live entirely inside my own code.</description>
    </item>
    <item>
      <title>What I Wish I Knew Before My First Hibernate N+1</title>
      <link>https://ravipalavai.vercel.app/blogs/what-i-wish-i-knew-before-my-first-hibernate-n-plus-one</link>
      <guid isPermaLink="true">https://ravipalavai.vercel.app/blogs/what-i-wish-i-knew-before-my-first-hibernate-n-plus-one</guid>
      <pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate>
      <description>The report that took twelve seconds to load, the query log that made me wince, and the four things I now check before I write a single repository method.</description>
    </item>
    <item>
      <title>What Building a Resume Tailor Taught Me About Recruiters</title>
      <link>https://ravipalavai.vercel.app/blogs/what-building-a-resume-tailor-taught-me-about-recruiters</link>
      <guid isPermaLink="true">https://ravipalavai.vercel.app/blogs/what-building-a-resume-tailor-taught-me-about-recruiters</guid>
      <pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate>
      <description>I built a small Python app to automate the tedious parts of job hunting on F-1 OPT. It ended up teaching me more about how recruiters screen than any career blog ever did.</description>
    </item>
    <item>
      <title>Docker to Kubernetes on a Team That Wasn&apos;t Ready</title>
      <link>https://ravipalavai.vercel.app/blogs/docker-to-kubernetes-on-a-team-that-wasnt-ready</link>
      <guid isPermaLink="true">https://ravipalavai.vercel.app/blogs/docker-to-kubernetes-on-a-team-that-wasnt-ready</guid>
      <pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate>
      <description>The migration that looked like a tooling project and turned out to be a people project. What actually worked, what I&apos;d skip next time, and why the first two weeks of shadow deploys saved us.</description>
    </item>
    <item>
      <title>I Let an LLM Write My Spring Boot Tests for a Week. Here&apos;s What Broke.</title>
      <link>https://ravipalavai.vercel.app/blogs/i-let-an-llm-write-my-spring-boot-tests</link>
      <guid isPermaLink="true">https://ravipalavai.vercel.app/blogs/i-let-an-llm-write-my-spring-boot-tests</guid>
      <pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate>
      <description>Five days of AI-generated tests, 312 new test cases, 100% line coverage on the target package, and exactly one production bug the suite did not catch. An honest breakdown of what an LLM can and cannot do for your test suite.</description>
    </item>
    <item>
      <title>Building a RAG Pipeline for Legacy Banking Docs (On a Laptop)</title>
      <link>https://ravipalavai.vercel.app/blogs/building-a-rag-pipeline-for-legacy-banking-docs</link>
      <guid isPermaLink="true">https://ravipalavai.vercel.app/blogs/building-a-rag-pipeline-for-legacy-banking-docs</guid>
      <pubDate>Tue, 27 Jan 2026 00:00:00 GMT</pubDate>
      <description>A weekend project to make 1,400 compliance PDFs actually searchable. The model was the easy part. Everything else was plumbing.</description>
    </item>
    <item>
      <title>The AI Code Review Habit That Changed My PRs</title>
      <link>https://ravipalavai.vercel.app/blogs/the-ai-code-review-habit-that-changed-my-prs</link>
      <guid isPermaLink="true">https://ravipalavai.vercel.app/blogs/the-ai-code-review-habit-that-changed-my-prs</guid>
      <pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate>
      <description>The five-minute self-review I run on every PR now, the exact prompt I use, and what it catches that I would otherwise ship.</description>
    </item>
    <item>
      <title>What My First Production Hallucination Taught Me</title>
      <link>https://ravipalavai.vercel.app/blogs/what-my-first-production-hallucination-taught-me</link>
      <guid isPermaLink="true">https://ravipalavai.vercel.app/blogs/what-my-first-production-hallucination-taught-me</guid>
      <pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate>
      <description>A confident LLM. A plausible method name. A mock that was too forgiving. Forty minutes of confusion at 9 a.m. on a Monday. The three checks I now run before I accept any AI-suggested API call.</description>
    </item>
    <item>
      <title>The React Component That Taught Me to Stop Reaching for State</title>
      <link>https://ravipalavai.vercel.app/blogs/the-react-component-that-taught-me-to-stop-reaching-for-state</link>
      <guid isPermaLink="true">https://ravipalavai.vercel.app/blogs/the-react-component-that-taught-me-to-stop-reaching-for-state</guid>
      <pubDate>Tue, 16 Dec 2025 00:00:00 GMT</pubDate>
      <description>A 340-line component with eleven useState calls. Three bugs that were all the same bug. The rule of thumb I now use before typing useState.</description>
    </item>
    <item>
      <title>The Three-Hour Postmortem I Wrote for a Two-Minute Incident</title>
      <link>https://ravipalavai.vercel.app/blogs/the-three-hour-postmortem-i-wrote-for-a-two-minute-incident</link>
      <guid isPermaLink="true">https://ravipalavai.vercel.app/blogs/the-three-hour-postmortem-i-wrote-for-a-two-minute-incident</guid>
      <pubDate>Tue, 02 Dec 2025 00:00:00 GMT</pubDate>
      <description>A 127-second blip that nobody outside the team noticed. Why I still wrote 2,400 words about it. The template I use, and what the investment actually bought.</description>
    </item>
    <item>
      <title>Designing APIs for People Who Don&apos;t Read Docs</title>
      <link>https://ravipalavai.vercel.app/blogs/designing-apis-for-people-who-dont-read-docs</link>
      <guid isPermaLink="true">https://ravipalavai.vercel.app/blogs/designing-apis-for-people-who-dont-read-docs</guid>
      <pubDate>Tue, 18 Nov 2025 00:00:00 GMT</pubDate>
      <description>Seven years of watching clients use my APIs. The five design choices that reliably make an API either self-evident or a support-ticket factory.</description>
    </item>
    <item>
      <title>What &apos;Observable&apos; Actually Means When You&apos;re Paged at 3 A.M.</title>
      <link>https://ravipalavai.vercel.app/blogs/what-observable-actually-means-when-youre-paged-at-3am</link>
      <guid isPermaLink="true">https://ravipalavai.vercel.app/blogs/what-observable-actually-means-when-youre-paged-at-3am</guid>
      <pubDate>Tue, 04 Nov 2025 00:00:00 GMT</pubDate>
      <description>A 3:17 a.m. page, a dashboard that told me nothing, and the four questions I now require every service to be able to answer before I&apos;ll sign off on its monitoring.</description>
    </item>
  </channel>
</rss>
