
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
      <title>Emin Vergil&#39;s Blog</title>
      <link>https://eminvergil.vercel.app/blog</link>
      <description>Blogging about backend development, cloud, and software architecture.</description>
      <language>en-us</language>
      <managingEditor>eminvergil@outlook.com (Emin Vergil)</managingEditor>
      <webMaster>eminvergil@outlook.com (Emin Vergil)</webMaster>
      <lastBuildDate>Sat, 27 Sep 2025 00:00:00 GMT</lastBuildDate>
      <atom:link href="https://eminvergil.vercel.app/feed.xml" rel="self" type="application/rss+xml"/>
      
  <item>
    <guid>https://eminvergil.vercel.app/blog/opentelemetry-dotnet-aspire</guid>
    <title>Adding OpenTelemetry to Your .NET Core Project</title>
    <link>https://eminvergil.vercel.app/blog/opentelemetry-dotnet-aspire</link>
    <description>OpenTelemetry is a popular open-source library for improving the observability of your applications. It provides a vendor-agnostic standard for collecting telemetry data—metrics, logs, and traces—so you can understand exactly what your code is doing in production. In this article, I&#39;ll show you how to quickly integrate OpenTelemetry into an existing .NET Core project, define the data you want to collect, and use the Aspire Dashboard to visualize all your traces.</description>
    <pubDate>Sat, 27 Sep 2025 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>OpenTelemetry</category><category>Dotnet</category><category>Aspire</category><category>Aspir8</category><category>Microservices</category><category>Kubernetes</category><category>Docker Desktop</category><category>Helm</category><category>.NET Core</category><category>.NET</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/aspire-elasticsearch</guid>
    <title>Integrating Elasticsearch with .NET Aspire</title>
    <link>https://eminvergil.vercel.app/blog/aspire-elasticsearch</link>
    <description>Elasticsearch is great for searching and indexing data quickly. It’s built on top of Lucene and provides a powerful way to search through your data. In this blog post, we’ll focus on Elasticsearch integration with .NET Aspire.</description>
    <pubDate>Sun, 02 Mar 2025 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Dotnet</category><category>Aspire</category><category>Aspir8</category><category>Microservices</category><category>Docker Desktop</category><category>.NET Core</category><category>.NET</category><category>Elasticsearch</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/phidata-multi-agent-team-job-search</guid>
    <title>Building a Multi-Agent Team for Job Search with PhiData</title>
    <link>https://eminvergil.vercel.app/blog/phidata-multi-agent-team-job-search</link>
    <description>In this tutorial, we’ll create a job search agent that collaborates with two specialized agents: HackerNews Researcher Agent and Web Search Agent. We’ll be using Gemini as our AI model and give the agent candidate details to help find the best job matches.</description>
    <pubDate>Sun, 16 Feb 2025 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>AI</category><category>Agents</category><category>PhiData</category><category>Python</category><category>Gemini</category><category>DuckDuckGo</category><category>SQL</category><category>AI Agents</category><category>team</category><category>multi agent team</category><category>job search</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/phidata-agent</guid>
    <title>Creating an AI Agent using PhiData Framework</title>
    <link>https://eminvergil.vercel.app/blog/phidata-agent</link>
    <description>In this post, we will explore the PhiData framework and how it can be used to create an AI agent. We will walk through a simple example of building a quote generator agent using the PhiData framework.</description>
    <pubDate>Mon, 27 Jan 2025 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>AI</category><category>Agents</category><category>PhiData</category><category>Python</category><category>Gemini</category><category>DuckDuckGo</category><category>SQL</category><category>AI Agents</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/aspire-kubernetes-helm</guid>
    <title>Deploying .NET Aspire Microservices to Kubernetes with Aspir8 CLI and Helm</title>
    <link>https://eminvergil.vercel.app/blog/aspire-kubernetes-helm</link>
    <description>Kubernetes is widely used for modern applications due to its auto-scaling, easy deployment, and cloud-native features. Microsoft is also pushing .NET to be more cloud-native. Recently, they introduced **.NET Aspire**, a toolset designed to make cloud-native development easier.</description>
    <pubDate>Wed, 15 Jan 2025 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Dotnet</category><category>Aspire</category><category>Aspir8</category><category>Microservices</category><category>Kubernetes</category><category>Docker Desktop</category><category>Helm</category><category>.NET Core</category><category>.NET</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/single-database-multi-tenancy-ef-core</guid>
    <title>Implementing Single Database Multi-Tenancy with EF Core Global Query Filters</title>
    <link>https://eminvergil.vercel.app/blog/single-database-multi-tenancy-ef-core</link>
    <description>Multi-tenancy is a design pattern where a single instance of an application serves multiple tenants. This blog post will demonstrate how to implement single database multi-tenancy using Entity Framework Core with global query filters</description>
    <pubDate>Mon, 18 Nov 2024 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>.Net Core</category><category>.Net</category><category>Dotnet</category><category>Entityframework Core</category><category>Global Query Filters</category><category>Multi-Tenancy</category><category>Multi-Tenant</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/mongodb-efcore</guid>
    <title>Integrating MongoDB with .NET Using the EF Core Provider</title>
    <link>https://eminvergil.vercel.app/blog/mongodb-efcore</link>
    <description>The MongoDB EF Core provider enables .NET developers to use Entity Framework Core (EF Core) with MongoDB.</description>
    <pubDate>Sat, 19 Oct 2024 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Dotnet</category><category>MongoDB</category><category>Entity Framework Core</category><category>.NET</category><category>.NET Core</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/gridfs-bucket-design-pattern</guid>
    <title>MongoDB GridFS and the Bucket Design Pattern</title>
    <link>https://eminvergil.vercel.app/blog/gridfs-bucket-design-pattern</link>
    <description>When dealing with large files in MongoDB, you might encounter challenges with storage and retrieval. This is where GridFS and the bucket design pattern come into play. Let&#39;s break down these concepts in simple terms and see how to implement them using C# and .NET.</description>
    <pubDate>Tue, 15 Oct 2024 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Dotnet</category><category>MongoDB</category><category>GridFS</category><category>Bucket Design Pattern</category><category>.NET</category><category>.NET Core</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/dotnet-go-garbage-collection</guid>
    <title>Garbage Collection: .NET vs Go</title>
    <link>https://eminvergil.vercel.app/blog/dotnet-go-garbage-collection</link>
    <description>Both .NET and Go employ automatic memory management through garbage collection (GC), but their approaches differ significantly.</description>
    <pubDate>Sun, 29 Sep 2024 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Dotnet</category><category>Garbage Collection</category><category>.NET</category><category>.NET Core</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/redis-pub-sub-aspire-dotnet</guid>
    <title>Implementing Redis Pub/Sub with .NET Aspire: A Simple Guide</title>
    <link>https://eminvergil.vercel.app/blog/redis-pub-sub-aspire-dotnet</link>
    <description>Implementing Redis Pub/Sub with .NET Aspire: A Simple Guide</description>
    <pubDate>Sun, 01 Sep 2024 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Dotnet</category><category>Aspire</category><category>Aspir8</category><category>Redis</category><category>Pub/Sub</category><category>.NET Core</category><category>.NET</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/aspire-azure-emulators</guid>
    <title>Azure Emulators In Dotnet Aspire Development</title>
    <link>https://eminvergil.vercel.app/blog/aspire-azure-emulators</link>
    <description>Azure Emulators provide developers with a way to test their .NET Aspire applications locally, without incurring cloud costs or requiring an internet connection. These emulators replicate the behavior of Azure services, allowing developers to write and debug code as if it were running in the cloud.</description>
    <pubDate>Sat, 24 Aug 2024 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Dotnet</category><category>Aspire</category><category>Aspir8</category><category>Microservices</category><category>Azure</category><category>Emulator</category><category>Azure Emulators</category><category>.NET Core</category><category>.NET</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/aspire-kubernetes-deployment</guid>
    <title>Simplifying Microservice Deployment with Aspire and Aspir8</title>
    <link>https://eminvergil.vercel.app/blog/aspire-kubernetes-deployment</link>
    <description>Aspire and Aspir8 are powerful tools that leverage Kubernetes to make deploying microservices easier for developers across various cloud environments. Let&#39;s walk through setting up and using these tools.</description>
    <pubDate>Sun, 11 Aug 2024 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Dotnet</category><category>Aspire</category><category>Aspir8</category><category>Microservices</category><category>Kubernetes</category><category>Rancher Desktop</category><category>.NET Core</category><category>.NET</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/scalar</guid>
    <title>An Alternative to Swagger in .NET 9: Scalar</title>
    <link>https://eminvergil.vercel.app/blog/scalar</link>
    <description>Microsoft has decided to remove the built-in Swagger support (Swashbuckle) from .NET 9.</description>
    <pubDate>Mon, 22 Jul 2024 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>dotnet</category><category>dotnet 9</category><category>swagger</category><category>scalar</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/background-jobs-dotnet</guid>
    <title>Background Jobs in .NET</title>
    <link>https://eminvergil.vercel.app/blog/background-jobs-dotnet</link>
    <description>Background jobs are tasks that run &quot;behind the scenes&quot; in your application. They handle work that doesn&#39;t need to happen immediately or that might take a long time to complete.</description>
    <pubDate>Sun, 21 Jul 2024 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Dotnet</category><category>Background Jobs</category><category>.NET Core</category><category>.NET</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/deployment-to-linux</guid>
    <title>Deploying .NET Applications on Linux: A Step-by-Step Guide with systemd and Caddy</title>
    <link>https://eminvergil.vercel.app/blog/deployment-to-linux</link>
    <description>It&#39;s easy to use cloud providers for deployment, but managing your own gives you full control over your environment. This lets you customize your setup, keep things simple, and learn more about the process. You can also optimize your app for performance and security based on your needs.</description>
    <pubDate>Sat, 20 Jul 2024 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>dotnet</category><category>deployment</category><category>linux</category><category>caddy server</category><category>vps</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/dotnet-migration</guid>
    <title>How to Successfully Migrate from .NET Framework to .NET Core</title>
    <link>https://eminvergil.vercel.app/blog/dotnet-migration</link>
    <description>Let&#39;s say you are working at a company, and there is an application written in the .NET Framework that has been in use for 15 years and is now considered legacy. How can we modernize this application using current technologies?</description>
    <pubDate>Tue, 16 Jul 2024 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Dotnet</category><category>Migration</category><category>.NET Framework</category><category>.NET Core</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/grpc-dotnet</guid>
    <title>gRPC in .NET</title>
    <link>https://eminvergil.vercel.app/blog/grpc-dotnet</link>
    <description>In this blog, we will cover how to implement a gRPC service using .NET.</description>
    <pubDate>Tue, 16 Jul 2024 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Dotnet</category><category>gRPC</category><category>Envoy Proxy</category><category>Microservices</category><category>.NET</category><category>.NET Core</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/masstransit-saga</guid>
    <title>Saga Implementation Using MassTransit Framework</title>
    <link>https://eminvergil.vercel.app/blog/masstransit-saga</link>
    <description>In microservices development, we often deal with complex code for handling transactions between services, typically involving verbose try-catch blocks. To ensure consistency in distributed systems, the Saga pattern offers a straightforward approach. Today, I&#39;ll walk you through implementing this pattern using MassTransit, a reliable framework for orchestrating distributed systems.</description>
    <pubDate>Tue, 13 Feb 2024 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Dotnet</category><category>Saga</category><category>MassTransit Framework</category><category>MassTransit</category><category>Microservices</category><category>.NET</category><category>.NET Core</category><category>Saga State Machines</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/dotnet-chiseled-image</guid>
    <title>My Experiences with .NET Chiseled Images</title>
    <link>https://eminvergil.vercel.app/blog/dotnet-chiseled-image</link>
    <description>.NET Chiseled Image is a new image type that Microsoft announced during the .NET Conf 2023 keynote. This image type offers improvements in both performance and security. In this article, I will share my experiences with it.</description>
    <pubDate>Wed, 24 Jan 2024 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Docker</category><category>Dotnet</category><category>Chiseled</category><category>Security</category><category>Optimization</category><category>Performance</category><category>Containers</category><category>.NET Core</category><category>.NET</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/streamable-dotnet</guid>
    <title>How to Create a Streamable Data Endpoint in .NET for Progressive Loading?</title>
    <link>https://eminvergil.vercel.app/blog/streamable-dotnet</link>
    <description>How to Create a Streamable Data Endpoint in .NET for Progressive Loading?</description>
    <pubDate>Sun, 05 Mar 2023 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>JavaScript</category><category>Dotnet</category><category>Next.js</category><category>transfer-encoding</category><category>Streamable</category><category>.NET</category><category>.NET Core</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/url-shortener</guid>
    <title>How to design a URL Shortener in dotnet ?</title>
    <link>https://eminvergil.vercel.app/blog/url-shortener</link>
    <description>URL shortening is a technique on the World Wide Web in which a Uniform Resource Locator(URL) may be made substantially shorter while still directing users to the required page. This is achieved by using a redirect that links to the web page associated with a long URL.</description>
    <pubDate>Sun, 26 Feb 2023 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Dotnet</category><category>URL Shortener</category><category>System Design</category><category>.NET</category><category>.NET Core</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/cloudflare-workers</guid>
    <title>What is Cloudflare Worker ?</title>
    <link>https://eminvergil.vercel.app/blog/cloudflare-workers</link>
    <description>Cloudflare Workers is a serverless platform that allows you to run code quickly in response to HTTP requests. It&#39;s a useful tool for developers looking to add features to their websites or apps. You can use it to create simple API endpoints, scrape data from websites, or improve your site&#39;s performance. In this article, we&#39;ll go over the basics of how Cloudflare Workers work, how to set them up, and the best use cases for them.</description>
    <pubDate>Sun, 19 Feb 2023 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Cloudflare</category><category>Workers</category><category>Serverless</category><category>Edge</category><category>Functions</category><category>Cloudflare Workers</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/session-localstorage</guid>
    <title>What Is the Difference Between Session Storage and Local Storage?</title>
    <link>https://eminvergil.vercel.app/blog/session-localstorage</link>
    <description>Local storage and session storage are two important tools for web developers that allow them to store data in a user&#39;s web browser.</description>
    <pubDate>Sun, 08 Jan 2023 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>javascript</category><category>session storage</category><category>local storage</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/reddit-rss</guid>
    <title>How to Create a Service to Fetch Reddit RSS in Node.js?</title>
    <link>https://eminvergil.vercel.app/blog/reddit-rss</link>
    <description>In today&#39;s world, staying up-to-date with the latest news and discussions on various topics can be overwhelming. Fortunately, there are many online communities and forums where people can share their thoughts and ideas, such as Reddit. With its vast collection of subreddits covering almost every imaginable topic, Reddit is a great source of information and entertainment for millions of users worldwide.</description>
    <pubDate>Mon, 12 Dec 2022 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Node.js</category><category>Scheduler Service</category><category>Reddit-RSS</category><category>RSS</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/haproxy-docker</guid>
    <title>What is HAProxy ?</title>
    <link>https://eminvergil.vercel.app/blog/haproxy-docker</link>
    <description>Example setup of a HAProxy server with Docker and Node.js</description>
    <pubDate>Sun, 06 Nov 2022 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>HAproxy</category><category>Docker</category><category>Containers</category><category>Node</category><category>Http</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/supabase</guid>
    <title>How to setup Supabase in React ? And Some Useful Tips</title>
    <link>https://eminvergil.vercel.app/blog/supabase</link>
    <description>Supabase is an open source Firebase alternative. Start your project with a Postgres Database, Authentication, instant APIs, Real-time subscriptions and Storage. The difference between Firestore database and Supabase Postgres database is that Firestore is NoSQL database whereas Supabase is relational database.</description>
    <pubDate>Tue, 26 Jul 2022 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Supabase</category><category>REST API</category><category>TypeScript</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/nginx-docker</guid>
    <title>How to Create a Simple Nginx Web Server?</title>
    <link>https://eminvergil.vercel.app/blog/nginx-docker</link>
    <description>Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.</description>
    <pubDate>Sat, 09 Jul 2022 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Nginx</category><category>Docker</category><category>Containers</category><category>Node.js</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/spotify-api</guid>
    <title>How to Get a Client Credential Token from Spotify Using Node.js?</title>
    <link>https://eminvergil.vercel.app/blog/spotify-api</link>
    <description>Spotify has a web API that we can use in our applications. In this article, I will show you how to use the Spotify REST API and make requests to some endpoints. You can check the API reference [here](https://developer.spotify.com/documentation/web-api/).</description>
    <pubDate>Tue, 03 May 2022 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Spotify API</category><category>REST API</category><category>Node.js</category><category>JavaScript</category><category>Client Credentials</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/what-is-valtio</guid>
    <title>What Is Valtio? How to Set Up for a React Project?</title>
    <link>https://eminvergil.vercel.app/blog/what-is-valtio</link>
    <description>Valtio is a global state management library for React. Valtio is similar to other state management libraries such as Redux or Context API where you have a global context but it is much simpler to setup.</description>
    <pubDate>Tue, 03 May 2022 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>valtio</category><category>state</category><category>management</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/setup-redux-for-react</guid>
    <title>How to Set Up Redux in a React Project?</title>
    <link>https://eminvergil.vercel.app/blog/setup-redux-for-react</link>
    <description>Redux is a state management library commonly used with JavaScript frameworks like React. It helps manage the global state of an application in a predictable way by centralizing all the state in a single store.</description>
    <pubDate>Sun, 24 Apr 2022 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>redux</category><category>state</category><category>management</category>
  </item>

  <item>
    <guid>https://eminvergil.vercel.app/blog/nodejs-scheduler-service</guid>
    <title>How to Create a Scheduler Service in Node.js?</title>
    <link>https://eminvergil.vercel.app/blog/nodejs-scheduler-service</link>
    <description>You can write a scheduler service in most modern frameworks, such as .NET Core, Elixir, Node.js, Go, etc. In this example, I will use Node.js. To follow this example, you need to have basic knowledge of JavaScript.</description>
    <pubDate>Mon, 18 Apr 2022 00:00:00 GMT</pubDate>
    <author>eminvergil@outlook.com (Emin Vergil)</author>
    <category>Node.js</category><category>Scheduler service</category>
  </item>

    </channel>
  </rss>
