<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>golang on </title>
    <link>https://felipecooper.dev/en/tags/golang/</link>
    <description>Recent content in golang on </description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-US</language>
    <lastBuildDate>Wed, 23 Jul 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://felipecooper.dev/en/tags/golang/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Profiling: Debugging a Real Goroutine Leak</title>
      <link>https://felipecooper.dev/en/posts/goroutine_leak/</link>
      <pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate>
      
      <guid>https://felipecooper.dev/en/posts/goroutine_leak/</guid>
      <description>🧠 When a Goroutine Won’t Die: Debugging a Real Goroutine Leak with pprof Goroutines are one of Go&amp;rsquo;s most powerful features. They&amp;rsquo;re lightweight, cheap, and easy to spin up. But that power comes with responsibility: if you forget to stop them, goroutines can quietly accumulate until your service starts to choke.
This is the story of how I discovered a real goroutine leak in production after a library update — and how I tracked it down using pprof, debugged the root cause, and submitted a pull request to fix it.</description>
    </item>
    
    <item>
      <title>Goroutines: Worker Pool Pattern</title>
      <link>https://felipecooper.dev/en/posts/golang_worker_pool/</link>
      <pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>https://felipecooper.dev/en/posts/golang_worker_pool/</guid>
      <description>Worker Pool Pattern Hey everyone! How’s it going? This is my first post here on the blog in a series that I&amp;rsquo;m excited to share with you about concurrency models using Golang. For today, I’ve chosen to introduce a model known as the Worker Pool. But what exactly is a worker pool?
Basically, it’s a concept where each goroutine – also called workers – waits to receive tasks to execute. This model brings several advantages and disadvantages, but before we dive into that, let’s try to visualize how this works.</description>
    </item>
    
  </channel>
</rss>
