<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/claude-opus-4-7-release-and-migration-guide</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/claude-opus-4-7-release-and-migration-guide.webp</image:loc>
      <image:title>Claude Opus 4.7: Benchmarks, Breaking Changes, Migration Guide</image:title>
      <image:caption>Claude Opus 4.7 ships 87.6% on SWE-bench Verified, a new tokenizer, xhigh effort, and four API breaking changes. Here is the full deep dive and migration guide.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/claude-skills-vs-mcp-vs-projects</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/claude-skills-vs-mcp-vs-projects.webp</image:loc>
      <image:title>Claude Skills vs MCP vs Projects: Which One Should You Use?</image:title>
      <image:caption>Claude Skills, MCP servers, and Projects solve different problems. Here is the honest comparison, token costs, and a decision framework for picking right.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/aws-s3-2026-files-vectors-and-beyond</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/aws-s3-files-2026.webp</image:loc>
      <image:title>Amazon S3 Files: AWS Just Turned Object Storage Into a File System</image:title>
      <image:caption>S3 Files lets you mount S3 buckets via NFS with sub-millisecond latency. Here is how it works, what it costs, and why AWS also killed SSE-C by default.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/claude-mythos-project-glasswing</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/claude-mythos-project-glasswing.webp</image:loc>
      <image:title>Claude Mythos and Project Glasswing: Anthropic&apos;s Locked-Down AI Model</image:title>
      <image:caption>Anthropic&apos;s new Claude Mythos model scores 93.9% on SWE-bench Verified and finds zero-days autonomously. Here is why it is not getting a public release.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/replacing-useeffect-data-fetching-server-actions</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/replacing-useeffect-data-fetching-server-actions.webp</image:loc>
      <image:title>Why I Replaced useEffect Data Fetching with Server Actions</image:title>
      <image:caption>I ripped useEffect data fetching out of my Next.js 16 app and replaced it with Server Components and Server Actions. Here is what broke and what got better.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/tail-call-optimization-explained</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/tail-call-optimization-explained.webp</image:loc>
      <image:title>Tail-Call Optimization Explained: Why Recursion Doesn&apos;t Have to Blow Your Stack</image:title>
      <image:caption>Learn how tail-call optimization lets you recurse without stack overflows. Covers TCO in Elixir, Scala, Clojure, and why Java still doesn&apos;t support it.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/axios-npm-supply-chain-attack-2026</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/axios-attack-timeline.webp</image:loc>
      <image:title>The Axios npm Hack: How North Korea Hijacked 100M Weekly Downloads</image:title>
      <image:caption>On March 31, 2026, Axios was hijacked on npm by North Korean hackers. Here is the full technical breakdown, how to check if you&apos;re affected, and how to protect your projects.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/agentic-payments-razorpay-npci-upi</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/agentic-payments-cover.webp</image:loc>
      <image:title>You Can Now Pay by Just Saying It. Here Is What Razorpay and NPCI Just Pulled Off</image:title>
      <image:caption>Razorpay and NPCI just launched Agentic Payments on Claude, letting AI complete UPI transactions on your behalf. Here is a breakdown of how it works, why India is the right place for it, and what it means for the future of commerce.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/ai-driven-anomaly-detection-security</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/ai-driven-security.webp</image:loc>
      <image:title>The Future of Security: AI-Driven Anomaly Detection with Spring AI</image:title>
      <image:caption>Move from static rules to dynamic behavioral analysis. Learn how to intercept Spring Security Lifecycle events and feed them into a local LLM or Vector DB to detect account takeover attempts in real-time.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/zero-trust-microservices-spring-security</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/zero-trust-microservices.webp</image:loc>
      <image:title>Zero Trust Architecture: Implementing Least Privilege in Spring Boot Microservices</image:title>
      <image:caption>Move beyond perimeter security. Learn how to implement mTLS, JWT propagation, and fine-grained Attribute-Based Access Control (ABAC) using custom AuthorizationManagers in Spring Security 6.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/full-stack-social-identity-spring-nextjs</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/full-stack-social-identity.webp</image:loc>
      <image:title>Full-Stack Social Identity: Spring Security 6.x + Next.js 16 + Auth.js</image:title>
      <image:caption>Building a secure &quot;Backend for Frontend&quot; (BFF) architecture using Next.js 16, Auth.js, and Spring Security 6.4 as a stateless OAuth2 Resource Server.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/spring-security-component-revolution</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/spring-security-component-revolution.webp</image:loc>
      <image:title>The Component Revolution: Mastering Spring Security 6.x Bean Migration</image:title>
      <image:caption>The definitive guide to migrating from WebSecurityConfigurerAdapter to the SecurityFilterChain bean model. Understand the &quot;why&quot;, master the &quot;how&quot;, and future-proof your security configuration.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/java-libraries-beyond-lombok</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/java-boilerplate-libraries/cover.webp</image:loc>
      <image:title>10 Essential Java Libraries to Reduce Boilerplate Code (Beyond Lombok)</image:title>
      <image:caption>Stop writing getters, setters, and mappers. Discover the essential Java libraries like MapStruct, Records, Retrofit, and jOOQ that will cut your codebase in half.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/hibernate-lazy-init-guide</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/lazy-init-guide/error-timeline.webp</image:loc>
      <image:title>Fixing LazyInitializationException in Spring Boot: The Right Way</image:title>
      <image:caption>The #1 error in JPA explained. Why open-in-view is bad, and how to use JOIN FETCH, @EntityGraph, and DTOs to fix it permanently.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/java-timezones-clock-guide</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/java-timezones-guide/chaos.webp</image:loc>
      <image:title>Handling Clock and Timezones Correctly in Java</image:title>
      <image:caption>Why LocalDateTime.now() destroys your tests and how to use java.time.Clock to handle timezones like a pro in production applications.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/spring-boot-testcontainers-guide</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/testcontainers-guide/cover.webp</image:loc>
      <image:title>Integration Testing with TestContainers in Spring Boot: A Practical Handbook</image:title>
      <image:caption>Stop writing brittle tests with H2. Learn how to use Testcontainers to run your integration tests against real Dockerized databases in Spring Boot 3.1+.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/spring-boot-cors-guide</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/spring-boot-cors-guide/cors-nightmare.webp</image:loc>
      <image:title>Solving Spring Boot CORS Errors Once and For All</image:title>
      <image:caption>The definitive guide to fixing Access-Control-Allow-Origin errors in Spring Boot. Learn the difference between @CrossOrigin, Global Config, and Security Filters.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/hello-proxy-ts-nextjs-16</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/nextjs-middleware-mastery/cover.webp</image:loc>
      <image:title>Goodbye middleware.ts, Hello proxy.ts: The Next.js 16 Migration Guide</image:title>
      <image:caption>Next.js 16 has killed `middleware.ts`. Learn how to migrate to `proxy.ts`, why auth in middleware is now considered unsafe, and how to master the new Node.js-based proxy layer.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/implementing-outbox-pattern-cdc-microservices</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/outbox-pattern-cdc/outbox-pattern-architecture.webp</image:loc>
      <image:title>Debezium Outbox Pattern: Implementing CDC in Microservices</image:title>
      <image:caption>Step-by-step guide to implementing the Transactional Outbox Pattern with Debezium CDC in microservices. Solve the Dual Write problem with reliable data consistency.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/sanitizer-lib-now-on-maven-central</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/sanitizer-lib-intro.webp</image:loc>
      <image:title>Sanitizer-Lib is Now Live on Maven Central</image:title>
      <image:caption>Great news for Java developers! Sanitizer-Lib, the library that eliminates input sanitization boilerplate, is now officially available on Maven Central. Here is how to add it to your project.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/the-day-react-patch-broke-the-internet</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/react2shell-header.webp</image:loc>
      <image:title>The Day a React Patch Broke the Internet</image:title>
      <image:caption>If you tried to open X (Twitter), Canva, or Discord on December 5th, you likely saw a 500 error. The internet didn&apos;t just blink; it stumbled hard. Here is the technical breakdown of the React2Shell outage.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/json-to-dto-converter</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/json-to-dto/main-interface.webp</image:loc>
      <image:title>JSON to DTO Converter: Instantly Generate Java Classes from JSON</image:title>
      <image:caption>Free online JSON to DTO converter. Instantly generate production-ready Java Records, Lombok classes, and Jackson-annotated DTOs from any JSON payload.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/google-antigravity</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/antigravity.webp</image:loc>
      <image:title>Google Antigravity: Why I Think It Changes Everything</image:title>
      <image:caption>My personal take on Google Antigravity, the new agentic AI platform, and what it means for the future of our craft.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/system-design-question-failed-candidates-2025</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/system-design-interview-rate-limiter.webp</image:loc>
      <image:title>The One System Design Question That Failed 80% of Candidates in 2025</image:title>
      <image:caption>It sounded simple: &quot;Design a Rate Limiter.&quot; But there was a twist that caught almost everyone off guard.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/building-modern-docs-generator-nextjs-16</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/docs-generator.webp</image:loc>
      <image:title>Building a Modern Documentation Generator with Next.js 16</image:title>
      <image:caption>I got tired of setting up docs for every project, so I built a documentation generator that actually makes it fun. Zero config, MDX support, dark mode, search—the whole deal.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/why-1-1-is-true-but-128-128-is-false-in-java</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/java-integer-caching.webp</image:loc>
      <image:title>Why `1 == 1` is True but `128 == 128` is False in Java — The Integer Caching Trap Explained</image:title>
      <image:caption>Discover the surprising behavior behind Java&apos;s Integer caching mechanism and why `==` comparisons can lead to unexpected results.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/my-thoughts-on-vibe-coding-2025</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/vibe-coding.webp</image:loc>
      <image:title>My Thoughts on Vibe Coding</image:title>
      <image:caption>A personal take on vibe coding—when it works, when it hurts, and how I used it on rabinarayanpatra.com to add dark mode and a blog audio feature.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/how-i-turned-daily-problem-solving-into-a-dsa-habit</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/dsa-daily-habit.svg</image:loc>
      <image:title>How I Turned Daily Problem Solving into a DSA Habit (and Stuck with It)</image:title>
      <image:caption>A first-person, friendly walkthrough of how I built a consistent daily DSA problem-solving habit, the routines I use to stay motivated, and the systems that keep me improving without burning out.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/java-interview-2025</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/java-interview-guide-2025.webp</image:loc>
      <image:title>Top Java Interview Questions for 2025: Quick Prep Guide</image:title>
      <image:caption>Currently interviewing for Java roles? Get the essential questions and answers I&apos;m seeing in 2025 interviews. Covers Virtual Threads, modern concurrency, memory management, and Spring Boot internals with practical examples.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/virtual-threads-java-25</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/virtual-threads-java-25.webp</image:loc>
      <image:title>Mastering Virtual Threads in Java 25: The Complete Guide to Lightweight Concurrency</image:title>
      <image:caption>Discover how Virtual Threads in Java 25 revolutionize concurrent programming. Learn practical implementation strategies, performance optimizations, and real-world use cases that will transform your Java applications.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/modern-java-spring-boot</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/modern-java-spring-boot.webp</image:loc>
      <image:title>Modern Java Development: Mastering Java 21+ Features and Spring Boot Best Practices in 2025</image:title>
      <image:caption>Discover the latest Java 21+ features including Virtual Threads, Pattern Matching, and Records. Learn advanced Spring Boot best practices, performance optimizations, and modern architectural patterns that every Java developer should know.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://www.rabinarayanpatra.com/blogs/sanitizer-lib-intro</loc>
    <image:image>
      <image:loc>https://www.rabinarayanpatra.com/images/blogs/sanitizer-lib-intro.webp</image:loc>
      <image:title>Sanitizer-Lib: The Java Library That Eliminates Input Sanitization Boilerplate Forever</image:title>
      <image:caption>Meet Sanitizer-Lib - a powerful Java library that automatically sanitizes your data with simple annotations. Zero configuration, Spring Boot ready, and enterprise-grade security for modern Java applications.</image:caption>
    </image:image>
  </url>
</urlset>