<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Gürkan UÇAR</title>
    <link>https://gurkanucar.com/</link>
    <description>Recent content on Gürkan UÇAR</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Sun, 09 Aug 2026 12:00:00 +0300</lastBuildDate>
    <atom:link href="https://gurkanucar.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Adapter and Strategy: Keeping External Services Outside the Domain</title>
      <link>https://gurkanucar.com/posts/clean-architecture-adapter-and-strategy-spring-boot/</link>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/posts/clean-architecture-adapter-and-strategy-spring-boot/</guid>
      <description>Two different external companies, two incompatible APIs, one domain model. The Adapter pattern gives them a common language in Spring Boot, while Strategy decides which one should run: at startup with @ConditionalOnProperty or per request with a factory.</description>
    </item>
    <item>
      <title>Clean Code: Guard Clauses and Early Return</title>
      <link>https://gurkanucar.com/posts/clean-code-guard-clauses-early-return/</link>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/posts/clean-code-guard-clauses-early-return/</guid>
      <description>How to turn nested if-else blocks into readable code with guard clauses and early return, shown on a real airline check-in scenario.</description>
    </item>
    <item>
      <title>Kafka or RabbitMQ? What the Message&#39;s Lifecycle Changes</title>
      <link>https://gurkanucar.com/posts/kafka-vs-rabbitmq/</link>
      <pubDate>Sun, 09 Aug 2026 12:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/posts/kafka-vs-rabbitmq/</guid>
      <description>The differences between Kafka and RabbitMQ, starting from what happens to a message inside the broker; then the same scenario built on both, to make &amp;#39;why this one, and what would have happened with the other&amp;#39; concrete.</description>
    </item>
    <item>
      <title>An Async Email Sending System: A Stack-Independent Design</title>
      <link>https://gurkanucar.com/posts/async-email-sending-system-design/</link>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/posts/async-email-sending-system-design/</guid>
      <description>How to design an async email system that does not tie your workflow to the provider, while handling duplicate sends and silent losses: atomic enqueue, idempotent claim, stuck-job recovery, retry and retention.</description>
    </item>
    <item>
      <title>Chain of Responsibility: Turning Complex Rules Into a Pipeline</title>
      <link>https://gurkanucar.com/posts/chain-of-responsibility-spring-boot/</link>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/posts/chain-of-responsibility-spring-boot/</guid>
      <description>Instead of managing many business rules in one service, use Chain of Responsibility and a pipeline to make the rules independent, testable and easy to extend.</description>
    </item>
    <item>
      <title>Facade Pattern: Hiding Complex Subsystems Behind One Door</title>
      <link>https://gurkanucar.com/posts/facade-pattern-spring-boot/</link>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/posts/facade-pattern-spring-boot/</guid>
      <description>Instead of dealing with payment, ticketing, baggage, notification and loyalty systems one by one in a booking flow, the Facade Pattern puts the whole workflow behind a single interface.</description>
    </item>
    <item>
      <title>Mediator Pattern: Managing the Mess Between React Components</title>
      <link>https://gurkanucar.com/posts/mediator-pattern-react-zustand-checkout/</link>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/posts/mediator-pattern-react-zustand-checkout/</guid>
      <description>In React, components that keep affecting each other get messy fast — prop drilling and long callback chains. Let&amp;#39;s see how to keep all that coordination in one place with the Mediator Pattern and Zustand.</description>
    </item>
    <item>
      <title>The N&#43;1 Query Problem: A Silent Performance Trap in ORMs</title>
      <link>https://gurkanucar.com/posts/n-plus-one-query-jpa-hibernate-spring-boot/</link>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/posts/n-plus-one-query-jpa-hibernate-spring-boot/</guid>
      <description>Running hundreds of SQL queries without noticing it: why the N&#43;1 problem happens, and how to fix it in Spring Boot and JPA with JOIN FETCH, EntityGraph, batch fetching and DTO projection.</description>
    </item>
    <item>
      <title>About</title>
      <link>https://gurkanucar.com/about/</link>
      <pubDate>Thu, 06 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://gurkanucar.com/about/</guid>
      <description>&lt;img src=&#34;https://gurkanucar.com/images/gurkan-ucar_hu_3f8793ec2194bd09.webp&#34;
       srcset=&#34;https://gurkanucar.com/images/gurkan-ucar_hu_3f8793ec2194bd09.webp 300w&#34;
       sizes=&#34;132px&#34;
       width=&#34;300&#34; height=&#34;300&#34;
       alt=&#34;Gürkan UÇAR&#34; loading=&#34;eager&#34; decoding=&#34;async&#34; class=&#34;about-portrait&#34;&gt;
&lt;p&gt;I&amp;rsquo;m a Software Engineer with a strong background in Java development. I started programming in high school and now work at &lt;strong&gt;Turkish Airlines Technology&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;My skills include Spring Boot, MongoDB, PostgreSQL, Kafka, Redis, and Websocket for real-time communications.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Everything This Blog Can Render</title>
      <link>https://gurkanucar.com/posts/markdown-and-shortcodes/</link>
      <pubDate>Wed, 01 Jan 2020 09:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/posts/markdown-and-shortcodes/</guid>
      <description>A working reference for every formatting feature, shortcode and embed available on this site — callouts, tabs, steps, diagrams, maths, terminal recordings and the plain markdown underneath it all.</description>
    </item>
  </channel>
</rss>
