
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
      <title>Ozgur&#39;s blog</title>
      <link>https://ozgurgurcan.com/blog</link>
      <description>Ozgur Gurcan&#39;s personal website &amp; engineering blog — deep dives into backend systems, distributed architectures, and pragmatic tooling.</description>
      <language>en-us</language>
      <managingEditor>ozgurgurcan1996@gmail.com (Ozgur Gurcan)</managingEditor>
      <webMaster>ozgurgurcan1996@gmail.com (Ozgur Gurcan)</webMaster>
      <lastBuildDate>Thu, 17 Sep 2026 00:00:00 GMT</lastBuildDate>
      <atom:link href="https://ozgurgurcan.com/feed.xml" rel="self" type="application/rss+xml"/>
      
  <item>
    <guid>https://ozgurgurcan.com/blog/ditching-paas-self-hosting-my-stack-with-coolify</guid>
    <title>Ditching PaaS: Self-Hosting My Personal Stack on Coolify with Docker and Traefik</title>
    <link>https://ozgurgurcan.com/blog/ditching-paas-self-hosting-my-stack-with-coolify</link>
    <description>Why and how I migrated my personal projects to a self-hosted Coolify instance, setting up multi-stage Docker builds, automated SSL via Traefik, and Git push-to-deploy.</description>
    <pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate>
    <author>ozgurgurcan1996@gmail.com (Ozgur Gurcan)</author>
    <category>coolify</category><category>self-hosting</category><category>docker</category><category>devops</category><category>nextjs</category>
  </item>

  <item>
    <guid>https://ozgurgurcan.com/blog/building-an-autonomous-code-review-bot-with-mcp-and-n8n</guid>
    <title>Building an Autonomous AI Code Review Bot with MCP, n8n, and Vector Search</title>
    <link>https://ozgurgurcan.com/blog/building-an-autonomous-code-review-bot-with-mcp-and-n8n</link>
    <description>How we automated contextual merge request reviews by combining Model Context Protocol (MCP), vector embeddings over our documentation, and Slack workflows.</description>
    <pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate>
    <author>ozgurgurcan1996@gmail.com (Ozgur Gurcan)</author>
    <category>ai</category><category>mcp</category><category>n8n</category><category>automation</category><category>productivity</category>
  </item>

  <item>
    <guid>https://ozgurgurcan.com/blog/java-25-and-spring-boot-4-virtual-threads</guid>
    <title>Upgrading to Java 25 &amp; Spring Boot 4: Concurrency, Virtual Threads, and Latency Tuning</title>
    <link>https://ozgurgurcan.com/blog/java-25-and-spring-boot-4-virtual-threads</link>
    <description>Lessons from upgrading 16+ production microservices to Java 25 and Spring Boot 4: diagnosing carrier thread pinning, tuning HikariCP connection pools for virtual threads, and achieving SonarQube Grade A.</description>
    <pubDate>Wed, 05 Nov 2025 00:00:00 GMT</pubDate>
    <author>ozgurgurcan1996@gmail.com (Ozgur Gurcan)</author>
    <category>java</category><category>spring-boot</category><category>virtual-threads</category><category>performance</category><category>jvm</category>
  </item>

  <item>
    <guid>https://ozgurgurcan.com/blog/multi-datacenter-active-active-at-scale</guid>
    <title>Multi-Datacenter Active-Active Architecture: Running 7M RPM on the Checkout Path</title>
    <link>https://ozgurgurcan.com/blog/multi-datacenter-active-active-at-scale</link>
    <description>Architectural breakdown of running checkout services active-active across two datacenters at 7M RPM: XDCR conflict resolution, Kafka mirroring, progressive zone shutdowns, and holding p99 at 63ms under chaos testing.</description>
    <pubDate>Thu, 18 Sep 2025 00:00:00 GMT</pubDate>
    <author>ozgurgurcan1996@gmail.com (Ozgur Gurcan)</author>
    <category>distributed-systems</category><category>multi-datacenter</category><category>active-active</category><category>kafka</category><category>couchbase</category><category>chaos-engineering</category>
  </item>

  <item>
    <guid>https://ozgurgurcan.com/blog/zero-downtime-database-migration-couchbase-to-postgresql</guid>
    <title>Zero-Downtime Database Migration: From Couchbase to PostgreSQL</title>
    <link>https://ozgurgurcan.com/blog/zero-downtime-database-migration-couchbase-to-postgresql</link>
    <description>How we migrated a critical production service from Couchbase to PostgreSQL with zero downtime, dual-write synchronization, and automated consistency verification.</description>
    <pubDate>Wed, 14 May 2025 00:00:00 GMT</pubDate>
    <author>ozgurgurcan1996@gmail.com (Ozgur Gurcan)</author>
    <category>architecture</category><category>postgresql</category><category>couchbase</category><category>database-migration</category><category>zero-downtime</category>
  </item>

  <item>
    <guid>https://ozgurgurcan.com/blog/dynamic-limit-allocation-on-32tb-data-with-bigquery</guid>
    <title>Analyzing 32 TB of Coupon Data: Designing Dynamic Allocation to Eliminate System Waste</title>
    <link>https://ozgurgurcan.com/blog/dynamic-limit-allocation-on-32tb-data-with-bigquery</link>
    <description>How querying a 32 TB coupon analytics dataset in BigQuery exposed massive promotional waste, unmasked a silent country-level zero-coupon script bug, and inspired an automated dynamic allocation algorithm.</description>
    <pubDate>Wed, 22 Jan 2025 00:00:00 GMT</pubDate>
    <author>ozgurgurcan1996@gmail.com (Ozgur Gurcan)</author>
    <category>bigquery</category><category>data-engineering</category><category>algorithms</category><category>optimization</category><category>backend</category>
  </item>

  <item>
    <guid>https://ozgurgurcan.com/blog/taming-the-n-plus-1-problem-at-scale</guid>
    <title>Taming the N+1 Query Problem at 4 Million Requests Per Minute</title>
    <link>https://ozgurgurcan.com/blog/taming-the-n-plus-1-problem-at-scale</link>
    <description>Redesigning our core domain data model: embedding related entities into single documents to eliminate up to 200 DB reads per request and saving 780 GB of disk.</description>
    <pubDate>Wed, 20 Nov 2024 00:00:00 GMT</pubDate>
    <author>ozgurgurcan1996@gmail.com (Ozgur Gurcan)</author>
    <category>system-design</category><category>performance</category><category>distributed-systems</category><category>high-throughput</category>
  </item>

  <item>
    <guid>https://ozgurgurcan.com/blog/resilience-patterns-for-event-driven-architectures</guid>
    <title>Resilience Patterns for High-Throughput Event-Driven Systems</title>
    <link>https://ozgurgurcan.com/blog/resilience-patterns-for-event-driven-architectures</link>
    <description>Lessons learned from peak campaign traffic: implementing transactional outbox, idempotent consumers, circuit breakers, and bulkhead isolation in Spring Boot.</description>
    <pubDate>Thu, 12 Oct 2023 00:00:00 GMT</pubDate>
    <author>ozgurgurcan1996@gmail.com (Ozgur Gurcan)</author>
    <category>kafka</category><category>spring-boot</category><category>resilience</category><category>event-driven</category><category>distributed-systems</category>
  </item>

    </channel>
  </rss>
