<?xml version="1.0" encoding="UTF-8"?><rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>Golang Archives | Ciprian Mandache</title>
<atom:link href="https://ciprian.51k.eu/coding/golang/feed/" rel="self" type="application/rss+xml" /><link></link>
<description>Software Engineer and more</description>
<lastBuildDate>Thu, 14 May 2026 05:28:15 +0000</lastBuildDate>
<language>en-US</language>
<sy:updatePeriod>
hourly	</sy:updatePeriod>
<sy:updateFrequency>
1	</sy:updateFrequency><image>
<url>https://ciprian.51k.eu/wp-content/uploads/2019/02/cropped-terminal-icon-32x32.png</url><title>Golang Archives | Ciprian Mandache</title><link></link>
<width>32</width>
<height>32</height>
</image>
<item><title>slog-configurator: Same Zero-Config Logging, Now on the Standard Library</title><link>https://ciprian.51k.eu/slog-configurator-stdlib-logging-zero-config/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Wed, 29 Apr 2026 23:25:03 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[configuration]]></category>
<category><![CDATA[go]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[helper]]></category>
<category><![CDATA[logging]]></category>
<category><![CDATA[package]]></category>
<category><![CDATA[quickie]]></category>
<category><![CDATA[slog]]></category>
<category><![CDATA[stdlib]]></category>
<category><![CDATA[wrapper]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/slog-configurator-stdlib-logging-zero-config/</guid><description><![CDATA[<img
width="300" height="163" src="https://ciprian.51k.eu/wp-content/uploads/2026/04/360_F_1527695117_xLoJujJNYHNRJsEANNICi3tVN367XcMB-300x163.webp" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/wp-content/uploads/2026/04/360_F_1527695117_xLoJujJNYHNRJsEANNICi3tVN367XcMB-300x163.webp 300w, https://ciprian.51k.eu/wp-content/uploads/2026/04/360_F_1527695117_xLoJujJNYHNRJsEANNICi3tVN367XcMB.webp 661w" sizes="(max-width: 300px) 100vw, 300px" />A while back I wrote about logrus-configurator — a small package that auto-configures logrus from environment variables so you stop copy-pasting the same setup boilerplate into every Go project. It ...]]></description>
</item>
<item><title>proxq: Async HTTP for Backends That Won&#8217;t Stop Timing Out</title><link>https://ciprian.51k.eu/docker-proxq-async-http-queue-for-slow-backends/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Wed, 29 Apr 2026 23:23:53 +0000</pubDate>
<category><![CDATA[Containers]]></category>
<category><![CDATA[Golang]]></category>
<category><![CDATA[api-gateway]]></category>
<category><![CDATA[async]]></category>
<category><![CDATA[asynq]]></category>
<category><![CDATA[container]]></category>
<category><![CDATA[docker]]></category>
<category><![CDATA[go]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[http]]></category>
<category><![CDATA[infrastructure]]></category>
<category><![CDATA[llm]]></category>
<category><![CDATA[microservices]]></category>
<category><![CDATA[proxy]]></category>
<category><![CDATA[queue]]></category>
<category><![CDATA[redis]]></category>
<category><![CDATA[reverse proxy]]></category>
<category><![CDATA[self-hosted]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/docker-proxq-async-http-queue-for-slow-backends/</guid><description><![CDATA[<img
width="300" height="213" src="https://ciprian.51k.eu/wp-content/uploads/2026/04/shot-of-a-little-boy-standing-in-a-corner-at-home-300x213.webp" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" fetchpriority="high" srcset="https://ciprian.51k.eu/wp-content/uploads/2026/04/shot-of-a-little-boy-standing-in-a-corner-at-home-300x213.webp 300w, https://ciprian.51k.eu/wp-content/uploads/2026/04/shot-of-a-little-boy-standing-in-a-corner-at-home.webp 612w" sizes="(max-width: 300px) 100vw, 300px" />Some HTTP requests take forever. LLM completions, image generation, video transcoding, big report builds, slow webhook processors — they all sit there chewing on something while your reverse proxy in ...]]></description>
</item>
<item><title>aichteeteapee: A Go HTTP Library Named By Someone Who Thinks Spelling Things Out Is Funny</title><link>https://ciprian.51k.eu/aichteeteapee-a-go-http-library-named-by-someone-who-thinks-spelling-things-out-is-funny/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Sat, 18 Apr 2026 04:24:37 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[api]]></category>
<category><![CDATA[go]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[http]]></category>
<category><![CDATA[library]]></category>
<category><![CDATA[middleware]]></category>
<category><![CDATA[Open Source]]></category>
<category><![CDATA[server]]></category>
<category><![CDATA[websocket]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=1161</guid><description><![CDATA[<img
width="300" height="295" src="https://ciprian.51k.eu/wp-content/uploads/2026/04/D4cxln0-f1c9d0d2-1a40-4de5-b9fd-9551ea38a6ef-300x295.webp" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/wp-content/uploads/2026/04/D4cxln0-f1c9d0d2-1a40-4de5-b9fd-9551ea38a6ef-300x295.webp 300w, https://ciprian.51k.eu/wp-content/uploads/2026/04/D4cxln0-f1c9d0d2-1a40-4de5-b9fd-9551ea38a6ef-1024x1005.webp 1024w, https://ciprian.51k.eu/wp-content/uploads/2026/04/D4cxln0-f1c9d0d2-1a40-4de5-b9fd-9551ea38a6ef-768x754.webp 768w, https://ciprian.51k.eu/wp-content/uploads/2026/04/D4cxln0-f1c9d0d2-1a40-4de5-b9fd-9551ea38a6ef.webp 1200w" sizes="(max-width: 300px) 100vw, 300px" />Say it out loud: aichteeteapee. Go on. Sound it out. Aitch-tee-tee-pee. Yeah. That&#8217;s HTTP. I named my Go HTTP library by spelling &#8220;HTTP&#8221; phonetically and published it with a straight ...]]></description>
</item>
<item><title>oapixconstgen: Make Your OpenAPI Spec the Source of Truth for Go Constants</title><link>https://ciprian.51k.eu/oapixconstgen-make-your-openapi-spec-the-source-of-truth-for-go-constants/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Wed, 28 Jan 2026 05:22:03 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[cli]]></category>
<category><![CDATA[code generation]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[openapi]]></category>
<category><![CDATA[yaml]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/oapixconstgen-make-your-openapi-spec-the-source-of-truth-for-go-constants/</guid><description><![CDATA[<img
width="300" height="228" src="https://ciprian.51k.eu/wp-content/uploads/2026/01/Screenshot_2026-05-14_08-27-38-300x228.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/wp-content/uploads/2026/01/Screenshot_2026-05-14_08-27-38-300x228.png 300w, https://ciprian.51k.eu/wp-content/uploads/2026/01/Screenshot_2026-05-14_08-27-38.png 553w" sizes="(max-width: 300px) 100vw, 300px" />x-constants: int: defaultPageSize: &#38;defaultPageSize 20 maxPageSize: &#38;maxPageSize 100 uint: minPasswordLength: &#38;minPasswordLength 8 float64: requestTimeout: &#38;requestTimeout 30.5 string: defaultLocale: &#38;defaultLocale "en-US" bool: enableCache: &#38;enableCache true // Code generated by oapixconstgen. DO ...]]></description>
</item>
<item><title>PIrateRF: Turning a $20 Raspberry Pi Zero Into an RF TX Swiss Army Knife</title><link>https://ciprian.51k.eu/piraterf-turning-a-20-raspberry-pi-zero-into-an-rf-tx-swiss-army-knife/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Mon, 06 Oct 2025 23:25:49 +0000</pubDate>
<category><![CDATA[Embedded]]></category>
<category><![CDATA[Golang]]></category>
<category><![CDATA[Radio]]></category>
<category><![CDATA[amateur radio]]></category>
<category><![CDATA[ham radio]]></category>
<category><![CDATA[pirate rf]]></category>
<category><![CDATA[pizero]]></category>
<category><![CDATA[pocket radio transmission]]></category>
<category><![CDATA[radio transmission]]></category>
<category><![CDATA[raspberry pi]]></category>
<category><![CDATA[rf tx]]></category>
<category><![CDATA[web ui]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=975</guid><description><![CDATA[<img
width="300" height="300" src="https://ciprian.51k.eu/wp-content/uploads/2025/10/piraterf-huge-300x300.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/wp-content/uploads/2025/10/piraterf-huge-300x300.png 300w, https://ciprian.51k.eu/wp-content/uploads/2025/10/piraterf-huge-150x150.png 150w, https://ciprian.51k.eu/wp-content/uploads/2025/10/piraterf-huge-768x768.png 768w, https://ciprian.51k.eu/wp-content/uploads/2025/10/piraterf-huge.png 1024w" sizes="(max-width: 300px) 100vw, 300px" />Remember when software-defined radio transmission required expensive hardware, complicated software, and a PhD to configure? Yeah, fuck that. I built PIrateRF to prove you can turn a $20 Raspberry Pi ...]]></description>
</item>
<item><title>servicepack: The Go Framework That Actually Understands How Real Development Works</title><link>https://ciprian.51k.eu/servicepack-the-go-framework-that-actually-understands-how-real-development-works/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Wed, 17 Sep 2025 21:02:53 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[architecture]]></category>
<category><![CDATA[boilerplate]]></category>
<category><![CDATA[code structure]]></category>
<category><![CDATA[framework]]></category>
<category><![CDATA[go]]></category>
<category><![CDATA[go framework]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[microservices]]></category>
<category><![CDATA[monolith]]></category>
<category><![CDATA[service-based]]></category>
<category><![CDATA[single-repo microservices]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=972</guid><description><![CDATA[<img
width="300" height="171" src="https://ciprian.51k.eu/wp-content/uploads/2025/10/Screenshot_2025-10-07_00-00-49-300x171.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/wp-content/uploads/2025/10/Screenshot_2025-10-07_00-00-49-300x171.png 300w, https://ciprian.51k.eu/wp-content/uploads/2025/10/Screenshot_2025-10-07_00-00-49-1024x584.png 1024w, https://ciprian.51k.eu/wp-content/uploads/2025/10/Screenshot_2025-10-07_00-00-49-768x438.png 768w, https://ciprian.51k.eu/wp-content/uploads/2025/10/Screenshot_2025-10-07_00-00-49.png 1238w" sizes="(max-width: 300px) 100vw, 300px" />Look, I&#8217;ve built a lot of shit in Go. Worked on microservices that were basically just glorified HTTP handlers talking to each other across Docker networks. Debugged race conditions at ...]]></description>
</item>
<item><title>gofindimpl: Stop Grep-ing for Go Interface Implementations Like a Damn Amateur</title><link>https://ciprian.51k.eu/gofindimpl-stop-grep-ing-for-go-interface-implementations-like-a-damn-amateur/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Thu, 11 Sep 2025 04:07:24 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[cli-tool]]></category>
<category><![CDATA[finder]]></category>
<category><![CDATA[go interface]]></category>
<category><![CDATA[go tool]]></category>
<category><![CDATA[implementation]]></category>
<category><![CDATA[interface]]></category>
<category><![CDATA[tool]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=963</guid><description><![CDATA[<img
width="300" height="124" src="https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-11_07-06-31-300x124.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-11_07-06-31-300x124.png 300w, https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-11_07-06-31.png 500w" sizes="(max-width: 300px) 100vw, 300px" />Look, if you&#8217;ve ever wasted more than 5 minutes trying to hunt down which structs actually implement a Go interface, you already know this pain. It&#8217;s like trying to debug ...]]></description>
</item>
<item><title>Commander: Bcuz Go&#8217;s os/exec Made Me Want to Shart on My Laptop&#8217;s Screen</title><link>https://ciprian.51k.eu/commander-bcuz-gos-os-exec-made-me-want-to-shart-on-my-laptops-screen/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Sun, 07 Sep 2025 23:11:25 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[command execution]]></category>
<category><![CDATA[commander]]></category>
<category><![CDATA[exec wrapper]]></category>
<category><![CDATA[execution manager]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[package]]></category>
<category><![CDATA[process manager]]></category>
<category><![CDATA[shell]]></category>
<category><![CDATA[shell exec]]></category>
<category><![CDATA[stream]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=955</guid><description><![CDATA[<img
width="300" height="115" src="https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-08_02-03-32-300x115.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-08_02-03-32-300x115.png 300w, https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-08_02-03-32.png 627w" sizes="(max-width: 300px) 100vw, 300px" />Let&#8217;s be fucking honest here – if you&#8217;ve ever tried to do anything serious with Go&#8217;s&#160;os/exec&#160;package, you know it&#8217;s about as user-friendly as a cactus suppository. Want to stream output ...]]></description>
</item>
<item><title>ctxerrors: Because Go&#8217;s Error Handling Doesn&#8217;t Have to Be Complete Shit</title><link>https://ciprian.51k.eu/ctxerrors-because-gos-error-handling-doesnt-have-to-be-complete-shit/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Sun, 07 Sep 2025 15:20:44 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[context]]></category>
<category><![CDATA[contexterrors]]></category>
<category><![CDATA[ctx]]></category>
<category><![CDATA[debugging]]></category>
<category><![CDATA[error]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[library]]></category>
<category><![CDATA[package]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=945</guid><description><![CDATA[<img
width="300" height="187" src="https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-07_18-20-01-300x187.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-07_18-20-01-300x187.png 300w, https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-07_18-20-01-768x478.png 768w, https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-07_18-20-01-480x300.png 480w, https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-07_18-20-01-640x400.png 640w, https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-07_18-20-01.png 870w" sizes="(max-width: 300px) 100vw, 300px" />Look, I&#8217;m gonna be straight with you. Go&#8217;s error handling is fucking verbose, and debugging without context is like trying to find your keys in a pitch-black room while drunk. ...]]></description>
</item>
<item><title>Stop Fighting logrus Configuration: Meet logrus-configurator</title><link>https://ciprian.51k.eu/stop-fighting-logrus-configuration-meet-logrus-configurator/</link>
<dc:creator><![CDATA[psyb0t]]></dc:creator>
<pubDate>Wed, 08 Nov 2023 12:59:00 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[configuration]]></category>
<category><![CDATA[go]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[helper]]></category>
<category><![CDATA[logging]]></category>
<category><![CDATA[logrus]]></category>
<category><![CDATA[package]]></category>
<category><![CDATA[quickie]]></category>
<category><![CDATA[wrapper]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/?p=941</guid><description><![CDATA[<img
width="300" height="190" src="https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-07_15-58-03-300x190.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-07_15-58-03-300x190.png 300w, https://ciprian.51k.eu/wp-content/uploads/2025/09/Screenshot_2025-09-07_15-58-03.png 698w" sizes="(max-width: 300px) 100vw, 300px" />⚠️ Archived in favor of slog-configurator. Go&#8217;s standard library now ships log/slog, which covers everything logrus offered with proper context propagation and zero third-party dependencies. logrus-configurator still works and existing ...]]></description>
</item>
</channel>
</rss>
<!--
*** This site runs WP Super Minify plugin v2.0.1 - http://wordpress.org/plugins/wp-super-minify ***
*** Total size saved: 3.229% | Size before compression: 19449 bytes | Size after compression: 18821 bytes. ***
-->