News
How to Organize Your Go Projects Like a Pro
Learn how to structure Go code the right way: from single-file projects to packages, internal modules, and proper imports, explain...
Go: When Should You Use Generics? When Shouldn't You?
To be clear, I’ll provide general guidelines, not hard and fast rules. Use your own judgement. But if you aren’t sure, I recommend...
Here's What You Need to Know About Vulnerability Management for Go
Go provides tooling to analyze your codebase and surface known vulnerabilities. This tooling is backed by the Go vulnerability dat...
Go Project Templates: How to Get Started
Anyone can write templates, which are packaged and distributed as modules, leveraging the Go module proxy and checksum database fo...
Tracing Go’s Garbage Collection Journey: Reference Counting, Tri-Color, and Beyo...
Garbage collection (GC) is one of the most critical components of any modern programming language runtime.
Everything You Need to Know About All Comparable Types
In this blog post, we hope to shine some light on the language mechanics behind all comparable types.
A Beginner's Guide to Code Coverage for Go Integration Tests
In this blog post we’ll give an example of how these new features work, and outline some of the use cases and workflow for collect...
A Tour of Slog: Everything You Need to Know About Structured Logging With Slog
By including structured logging in the standard library, we can provide a common framework that all the other structured logging p...
Go Concurrency Face-Off: Channels vs Mutexes
Demystify when to use channels and when to use mutexes, and why blindly following "Go concurrency patterns" can backfire.
Building a Go Dependency Scanner From Scratch
Build a Go dependency scanner with the standard library: parse go.mod, query OSV for vulnerabilities, and analyze licenses.