<?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 Jakub Jarosz</title>
    <link>/categories/go/</link>
    <description>Recent content in Go on Jakub Jarosz</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Thu, 15 Jan 2026 06:31:27 +0100</lastBuildDate>
    <atom:link href="/categories/go/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>50 Go Testing Mistakes</title>
      <link>/article/go-testing-mistakes/</link>
      <pubDate>Tue, 16 Sep 2025 10:49:54 +0100</pubDate>
      <guid>/article/go-testing-mistakes/</guid>
      <description>&lt;figure&gt;&lt;a href=&#34;https://store.jarosz.dev/b/gotestingmistakes&#34;&gt;&lt;img src=&#34;/article/go-testing-mistakes/50tests.webp&#34; width=&#34;270&#34; height=&#34;400&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Performance Tuning and Benchmarking</title>
      <link>/article/performance-tuning-and-benchmarking/</link>
      <pubDate>Sat, 02 Nov 2024 10:49:54 +0100</pubDate>
      <guid>/article/performance-tuning-and-benchmarking/</guid>
      <description>&lt;p&gt;Have you ever wondered how to determine if your Go code is performing at its best?&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;figure&gt;&lt;a href=&#34;https://store.jarosz.dev/b/gobenchmarking&#34;&gt;&lt;img src=&#34;/article/performance-tuning-and-benchmarking/cover.png&#34; width=&#34;270&#34; height=&#34;390&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Benchmarks help you spot slow code and fix it. They also help you choose the best data structures and algorithms. By the end of this book, you will know how to write benchmarks that guide your engineering decisions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Simplify Go Tests with cmp</title>
      <link>/code/simplify-go-tests-with-cmp/</link>
      <pubDate>Thu, 15 Jan 2026 06:31:27 +0100</pubDate>
      <guid>/code/simplify-go-tests-with-cmp/</guid>
      <description>The cmp package is the only package outside the Go std library that we need to test and document how the system behaves. But to ensure we describe tested behaviour, it’s good to run all the tests with gotestdox. So, what do your tests look like? Does everyone on your team understand what they test?</description>
    </item>
    <item>
      <title>Making Go Tests Nice &amp; Tidy</title>
      <link>/code/making-golang-tests-nice-and-tidy/</link>
      <pubDate>Thu, 18 Dec 2025 06:31:27 +0100</pubDate>
      <guid>/code/making-golang-tests-nice-and-tidy/</guid>
      <description>Having clear, easy-to-understand and rock-solid test preconditions is paramount. It&amp;rsquo;s like making sure your car lights and battery are working before swapping your credit card and signing up for the annual car inspection.</description>
    </item>
    <item>
      <title>Stop Fighting Your Go Tests: Simplify and Clarify</title>
      <link>/code/stop-fighting-your-golang-tests-simplify-and-clarify/</link>
      <pubDate>Mon, 10 Nov 2025 06:31:27 +0100</pubDate>
      <guid>/code/stop-fighting-your-golang-tests-simplify-and-clarify/</guid>
      <description>This time, we’re rolling up our sleeves to simplify the test setup, pick Go types that actually make sense, and stop confusing readers with constantly changing names.</description>
    </item>
    <item>
      <title>How to Remove Pollution From Go Tests</title>
      <link>/code/how-to-remove-pollution-from-golang-tests/</link>
      <pubDate>Thu, 30 Oct 2025 06:31:27 +0100</pubDate>
      <guid>/code/how-to-remove-pollution-from-golang-tests/</guid>
      <description>Why do we clutter our code? Are our standard tools sufficient? If so, we can move on to what truly matters—designing tests that accurately verify the desired behaviour.</description>
    </item>
    <item>
      <title>Go Testing Mistakes to Avoid</title>
      <link>/video/golang-testing-mistakes/</link>
      <pubDate>Wed, 15 Oct 2025 16:23:40 +0100</pubDate>
      <guid>/video/golang-testing-mistakes/</guid>
      <description>&lt;p&gt;Welcome to the Go podcast with host Dominic St-Pierre! In this episode, Dominic and I discuss the most common testing mistakes that Gophers make and explore my newly launched book, &amp;ldquo;&lt;a href=&#34;https://store.jarosz.dev/b/gotestingmistakes&#34;&gt;50 Go Testing Mistakes&lt;/a&gt;.&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Handling Go Errors In Tests</title>
      <link>/code/handling-golang-errors-in-tests/</link>
      <pubDate>Sat, 06 Sep 2025 06:31:27 +0100</pubDate>
      <guid>/code/handling-golang-errors-in-tests/</guid>
      <description>&lt;p&gt;Errors in Go are like the STOP sign. They send a strong signal to avoid disasters. Just like the Go error yelling &lt;strong&gt;don&amp;rsquo;t trust returned value, don&amp;rsquo;t use it&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Security, DevSecOps and Testing with Go</title>
      <link>/video/security-devsecops-with-go/</link>
      <pubDate>Thu, 04 Sep 2025 16:23:40 +0100</pubDate>
      <guid>/video/security-devsecops-with-go/</guid>
      <description>&lt;p&gt;Welcome to the Go podcast with host Dominic St-Pierre! In this episode, Dominic and I chat about using Go in cybersecurity, DevSecOps, and testing. Whether you’re an experienced developer or just curious about Go, there’s something for everyone. Let&amp;rsquo;s dive in!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Critical First Step in Go Tests</title>
      <link>/code/critical-first-step-in-go-tests/</link>
      <pubDate>Mon, 18 Aug 2025 06:31:27 +0100</pubDate>
      <guid>/code/critical-first-step-in-go-tests/</guid>
      <description>&lt;p&gt;&amp;ldquo;I have two news for you, bad and worse,&amp;rdquo; said the mechanic. &amp;ldquo;The battery is dead and I won&amp;rsquo;t get a new one until Monday. Forget about your annual inspection today,&amp;rdquo; he continued. &amp;ldquo;But&amp;hellip;&amp;rdquo; you started. &amp;ldquo;There is no but.&amp;rdquo; he cut short.&lt;/p&gt;&#xA;&lt;p&gt;No setup, no testing. Just like in your Go program.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Simple Trick To Speed Up Your Go Tests</title>
      <link>/code/simple-trick-to-speed-up-your-golang-tests/</link>
      <pubDate>Mon, 05 May 2025 05:31:27 +0100</pubDate>
      <guid>/code/simple-trick-to-speed-up-your-golang-tests/</guid>
      <description>We focus on fundamental parts of the &lt;code&gt;cmp&lt;/code&gt; package: checking equality and calculating diffs. With a small change, you increase test efficiency more than 7x. Yes, over 700% faster. Why work harder, not smarter?</description>
    </item>
    <item>
      <title>Go Testing: How to Communicate Clearly</title>
      <link>/code/golang-testing-how-to-communicate-clearly/</link>
      <pubDate>Wed, 30 Apr 2025 05:00:00 +0100</pubDate>
      <guid>/code/golang-testing-how-to-communicate-clearly/</guid>
      <description>In Go, we build packages - fundamental Lego-like blocks that we assemble in modules and use to build applications. That&amp;rsquo;s why it&amp;rsquo;s crucial we start designing packages by modelling their public APIs. Let&amp;rsquo;s roll up our sleeves, sharpen the scalpel and start the second code surgery. This time, we focus on tests.</description>
    </item>
    <item>
      <title>Don&#39;t Overload Your Brain: Write Simple Go</title>
      <link>/code/do-not-overload-your-brain-go-function-tips/</link>
      <pubDate>Tue, 08 Apr 2025 05:31:27 +0100</pubDate>
      <guid>/code/do-not-overload-your-brain-go-function-tips/</guid>
      <description>This week we do small refactoring to illustrate how we can improve code readability and reduce cognitive load.</description>
    </item>
    <item>
      <title>Benchmarking: What You Can&#39;t Miss in Go 1.24</title>
      <link>/code/benchmarking-what-you-cannot-miss-in-go-1.24/</link>
      <pubDate>Tue, 11 Mar 2025 06:00:27 +0100</pubDate>
      <guid>/code/benchmarking-what-you-cannot-miss-in-go-1.24/</guid>
      <description>&lt;p&gt;For us Go developers, writing less code means fewer opportunities to make mistakes. But how about achieving more by doing less? That sounds appealing. Isn&amp;rsquo;t it? And how about spending less time writing code to force the compiler not to optimise the benchmarking functions?&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Write Better Tests in Go</title>
      <link>/article/how-to-write-better-tests-in-go/</link>
      <pubDate>Mon, 20 Jan 2025 06:00:54 +0100</pubDate>
      <guid>/article/how-to-write-better-tests-in-go/</guid>
      <description>How do you know if what you are building is the right thing? How do you know if the product you just put into customers&amp;rsquo; hands doesn&amp;rsquo;t harm them? Don&amp;rsquo;t put them into hospital or worse, kill them?</description>
    </item>
    <item>
      <title>How To Handle Go Security Alerts</title>
      <link>/code/how-to-handle-go-security-alerts/</link>
      <pubDate>Tue, 24 Dec 2024 09:31:27 +0100</pubDate>
      <guid>/code/how-to-handle-go-security-alerts/</guid>
      <description>&lt;p&gt;&amp;ldquo;Our reports say your software is not secure and has critical and high vulnerabilities. Our delivery pipeline is not working. We can&amp;rsquo;t upgrade applications in production environments!&amp;rdquo;. You see Slack messages and Salesforce escalation tickets. It doesn&amp;rsquo;t look good.&lt;/p&gt;&#xA;&lt;p&gt;How do you react? What&amp;rsquo;s your next step?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Organizing Your Go Code: Tips for Beginners</title>
      <link>/code/organizing-your-golang-code-tips-for-beginners/</link>
      <pubDate>Wed, 11 Dec 2024 09:31:27 +0100</pubDate>
      <guid>/code/organizing-your-golang-code-tips-for-beginners/</guid>
      <description>&lt;p&gt;How should I organize my Go code? What directories to create? How many nesed levels? Where to put what files? How about tests and test data? Shall I follow this and that template? Could we automate project structure generation?&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Prevent Panics in Go</title>
      <link>/article/how-to-prevent-panics/</link>
      <pubDate>Wed, 04 Dec 2024 06:00:54 +0100</pubDate>
      <guid>/article/how-to-prevent-panics/</guid>
      <description>&lt;figure&gt;&lt;img src=&#34;/article/how-to-prevent-panics/panic.png&#34; width=&#34;180&#34; height=&#34;180&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Imagine you are sitting relaxed in a self-driving car. You are taking a sip of your afternoon tea. You are going to your friend&amp;rsquo;s wedding.&lt;/p&gt;&#xA;&lt;p&gt;You&amp;rsquo;re getting closer to a crossroad, and your car is about to change direction. Suddenly, the car detects an obstacle on the road—a fallen tree!&lt;/p&gt;&#xA;&lt;p&gt;How can you not panic?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Essential Tools for Go Developers</title>
      <link>/code/essential-tools-for-go-developers/</link>
      <pubDate>Sat, 23 Nov 2024 09:31:27 +0100</pubDate>
      <guid>/code/essential-tools-for-go-developers/</guid>
      <description>&lt;p&gt;Before writing Go programs, you must set up your editor and install essential tools. A short list includes &lt;code&gt;staticcheck&lt;/code&gt;, &lt;code&gt;gosec&lt;/code&gt;, &lt;code&gt;govulncheck&lt;/code&gt;, and &lt;code&gt;gofumpt&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Break Production on Black Friday</title>
      <link>/article/how-to-break-production-on-black-friday/</link>
      <pubDate>Fri, 22 Nov 2024 08:00:54 +0100</pubDate>
      <guid>/article/how-to-break-production-on-black-friday/</guid>
      <description>&lt;figure&gt;&lt;img src=&#34;/article/how-to-break-production-on-black-friday/kubectl-apply.png&#34; width=&#34;180&#34; height=&#34;180&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Users won&amp;rsquo;t do this! No way! Why would they enter such values? It doesn&amp;rsquo;t make sense! Does it sound familiar? How many times have you said it to yourself?&lt;/p&gt;&#xA;&lt;p&gt;Well&amp;hellip; You are about to see and learn how a missing test puts thousands of production Kubernetes systems in danger.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Damn! It Worked Last Week!</title>
      <link>/article/damn-it-worked-last-week/</link>
      <pubDate>Fri, 08 Nov 2024 10:00:54 +0100</pubDate>
      <guid>/article/damn-it-worked-last-week/</guid>
      <description>&lt;p&gt;It takes ages for the newsfeed to load. Scrolling on the tablet is slower than usual. Applications aren&amp;rsquo;t starting as quickly as they were a week ago.&lt;/p&gt;&#xA;&lt;p&gt;You&amp;rsquo;re getting frustrated. You recall the last change you pushed to production.  No, it couldn&amp;rsquo;t be that simple change. Are you sure?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Writing Secure Go Code</title>
      <link>/article/writing-secure-go-code/</link>
      <pubDate>Sat, 02 Nov 2024 10:49:54 +0100</pubDate>
      <guid>/article/writing-secure-go-code/</guid>
      <description>&lt;p&gt;What does it mean to keep security in mind when writing Go code? Answering this question in one short article seems impossible. For this reason, we&amp;rsquo;ll narrow it down to a few specific practices.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Communicating with tests</title>
      <link>/video/communicating-with-tests/</link>
      <pubDate>Tue, 04 Jul 2023 16:23:40 +0100</pubDate>
      <guid>/video/communicating-with-tests/</guid>
      <description>&lt;p&gt;In this episode, Graeme King hosted me to show practical examples of refactoring the test codebase.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building Go binaries with Goreleaser</title>
      <link>/video/releasing-go-applications-with-goreleaser/</link>
      <pubDate>Thu, 22 Jul 2021 16:23:40 +0100</pubDate>
      <guid>/video/releasing-go-applications-with-goreleaser/</guid>
      <description>&lt;p&gt;Building and releasing software shouldn&amp;rsquo;t be a tedious, manual, error-prone task. I am presenting an automated way to build and release Go libraries and command-line tools for different operating systems.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
