#​457 — April 25, 2023

Unsub  |  Web Version

Together with  Courier logo

Go Weekly

How to Troubleshoot Memory Leaks with Grafana Pyroscope — Explore common causes of memory leaks in Go and learn to use Pyroscope, an open source continuous profiling solution, itself written in Go, to find and fix such leaks.

Cyril Tovena (Grafana Labs)

Go Integration Testing with Courage and Coverage — A tale of integrating test coverage tracking into an active Go project as part of pushing the overall coverage from a worrying 50% to a somewhat better 76%. Go 1.20’s new coverage profiling support is also showcased.

Vladimir Dementyev

Add a Full-Featured Notification Center to Your Go App in Minutes — With out-of-box user preferences and inbox, comprehensive API, web-based template designer, and automated delivery flows.

Courier.com sponsor


⏪  Revisiting Some Greatest Hits

When To Use Generics — Some general guidelines for when to use generics that boils down to one simple guideline: If you find yourself writing the exact same code multiple times, where the only difference between the copies is that the code uses different types, consider whether you can use a type parameter.

Ian Lance Taylor

Getting Familiar with Workspaces — Remember Go 1.18’s other big feature? Workspaces. Workspaces “let you work on multiple modules simultaneously without having to edit go.mod files for each module.” Beth broke down how to get started.

Beth Brown (Go Team)

A Simple Overview of Authentication Methods for Kubernetes Clusters — Kubernetes has a wide range of authentication methods. We will detail each of them and their uses in this article.

Teleport | goteleport.com sponsor

▶  How to Monitor Your Go App with Prometheus
Anthony GG

🛠 Code & Tools

Ooze: A Go Mutation Testing Tool — Fuzz testing messes around with the input to a testing scenario, but mutation testing goes one step further and changes the actual implementation of the code! The key idea is that if code can be changed but tests still pass, there’s something amiss.

Guilherme J. Tramontina

gops: List and Diagnose Currently Running Go Processes — Works with any Go-built processes but if your program can start the diagnostics agent then extra information can be obtained.

Go Team

“Our Backend Team Loves Encore!” — See how Lizza used Encore's development platform to 3x delivery speed and save 100+ hours of DevOps work per month.

Encore sponsor

Jet 2.10: Type Safe SQL Builder with Code Generation — A database access solution consisting of a type-safe SQL builder with code generation and automatic query result data mapping. It supports PostgreSQL, MySQL, CockroachDB, MariaDB and SQLite.


Hermes: A Document Management System — The folks at Hashicorp have open-sourced a tool to support their writing culture, including workflow approval, full-text search, and more. This introductory blog post shows off what it looks like.


Cobra 1.7: A Framework for Building Modern CLI Apps — A significant project in the Go CLI space oriented around structure, subcommand based CLIs, flags, generating man pages, etc. It was originally created for Hugo but is now used by numerous projects.

Steve Francia



Find a Job Through Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.

🧑‍💻 Got a job listing to share? Here's how.

🕹 And for after work hours..

Roboden: A Real Time Strategy Game — An 'indirect control' real-time strategy game about robot colonies written in Go using the Ebitengine 2D game library. Thanks to WebAssembly you can play it in the browser but native downloads are available, as is the source code.