<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Go on Jamal Yusuf</title><link>https://jamal.dev/tags/go/</link><description>Recent content in Go on Jamal Yusuf</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 17 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jamal.dev/tags/go/index.xml" rel="self" type="application/rss+xml"/><item><title>The Boring Go Layer Between Your RAG Demo and Production</title><link>https://jamal.dev/writing/go-rag-ingestion-pipelines/</link><pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate><guid>https://jamal.dev/writing/go-rag-ingestion-pipelines/</guid><description>&lt;p&gt;RAG demos are seductive. Chunk a PDF. Embed. Retrieve. Watch the answer sparkle. Applause. Next slide.&lt;/p&gt;
&lt;p&gt;Production RAG is a &lt;strong&gt;pipeline problem&lt;/strong&gt; — documents that change, access policies that differ by team, embeddings that stale, audits that ask where a paragraph came from three quarters ago. The demo never shows that part. The on-call engineer lives there.&lt;/p&gt;
&lt;p&gt;I keep choosing Go for the unglamorous middle between source systems and vector indexes. Not because Python cannot embed. Because &lt;strong&gt;operations is a language choice too&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Validating Agent Outputs in Go Before They Touch Production</title><link>https://jamal.dev/writing/go-validate-agent-outputs/</link><pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate><guid>https://jamal.dev/writing/go-validate-agent-outputs/</guid><description>&lt;p&gt;An agent that sounds right is the most dangerous kind of wrong.&lt;/p&gt;
&lt;p&gt;I have seen it in healthcare workflows — confident JSON, clean prose, a downstream system that accepts the payload and only screams twenty minutes later when reconciliation fails. The model did its job. The &lt;strong&gt;system&lt;/strong&gt; failed to treat probability like probability.&lt;/p&gt;
&lt;p&gt;In Go, I fix that with a boring layer between the model and the world: &lt;strong&gt;validate before side effects&lt;/strong&gt;. Always.&lt;/p&gt;</description></item><item><title>Context Is the Kill Switch: Go, Cancellation, and LLM Timeouts</title><link>https://jamal.dev/writing/go-context-llm-timeouts/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://jamal.dev/writing/go-context-llm-timeouts/</guid><description>&lt;p&gt;The first time I watched an agent runaway eat a month&amp;rsquo;s inference budget in an afternoon, nobody blamed the model. They should have blamed &lt;strong&gt;the missing kill switch&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The model kept going because nothing told it to stop. Tool calls chained. Retries compounded. Goroutines — or their equivalent — waited politely for a provider that had already left the building.&lt;/p&gt;
&lt;p&gt;In Go, the kill switch has a name: &lt;code&gt;context.Context&lt;/code&gt;. And I think it is the most underrated tool in production LLM orchestration.&lt;/p&gt;</description></item><item><title>Why Go Remains the Best Language for LLM Orchestration</title><link>https://jamal.dev/writing/go-llm-orchestration/</link><pubDate>Sun, 03 May 2026 00:00:00 +0000</pubDate><guid>https://jamal.dev/writing/go-llm-orchestration/</guid><description>&lt;p&gt;I have orchestrated LLM workloads in more than one language. Python gets you to demo fast. Go gets you to &lt;strong&gt;sleep&lt;/strong&gt; — or at least to on-call with fewer surprises.&lt;/p&gt;
&lt;p&gt;That is not ideology. It is fifteen years of distributed systems scar tissue talking.&lt;/p&gt;
&lt;h2 id="the-concurrency-advantage"&gt;The concurrency advantage&lt;/h2&gt;
&lt;p&gt;Agent orchestration is not one request. It is dozens of concurrent flows — tool calls, retrieval hops, validation steps, retries with independent timeout budgets — all competing for resources while a human waits on the other end.&lt;/p&gt;</description></item><item><title>The Go Advantage for Production Agentic Systems</title><link>https://jamal.dev/writing/go-advantage-agentic-systems/</link><pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate><guid>https://jamal.dev/writing/go-advantage-agentic-systems/</guid><description>&lt;p&gt;Agentic systems are distributed systems wearing a chat costume. The sooner you accept that, the fewer 3 a.m. pages you earn.&lt;/p&gt;
&lt;p&gt;I have been building Go backends since 2011 — Kafka pipelines, membership APIs, payment flows, the unglamorous center of enterprise operations. When multi-agent workflows arrived, I did not reach for a new religion. I reached for &lt;strong&gt;the same primitives that kept the event backbone alive&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="why-go-for-agent-orchestration"&gt;Why Go for agent orchestration&lt;/h2&gt;
&lt;p&gt;Multi-agent workflows are coordination problems: fan-out, join, timeout budgets, partial failure, human escalation. Go&amp;rsquo;s concurrency model — goroutines, channels, context cancellation — maps to those problems without pretending parallelism is free.&lt;/p&gt;</description></item></channel></rss>