Ultimate Go: Advanced Engineering Episode 4

Introduction In episode 3, Bill needed to figure out how to share ownership of his dependency manager’s database in a secure and efficient manner. Bill is the only stakeholder with full access to his dependency manager’s database. That is, he is the only person with the abili...

Standalone test scripts

Wouldn't it be nice if we could run test scripts directly from the command line? The standalone testscript tool does exactly that. Let’s see how to use it to create simple, self-contained issue repros.

Ultimate Go: Advanced Engineering Episode 2

Introduction In episode 1, Bill finished by describing the dependency management conundrum Go faced in its early days. Prior to the Go team providing the module system, developers were on their own to find a solution. Engineers in the Go community did propose different solutions,...

The Go libraries that never failed us: 22 libraries you need to know

Did you have a situation when you lost a ton of time finding a Go library for your need? In theory, you can check lists like Awesome Go or make a choice based on GitHub stars. But Awesome Go contains over 2600 libraries, and popularity is not always the best indicator of library...

Ultimate Go: Advanced Engineering Episode 1

Introduction In this video, Bill will introduce the concepts of what a blockchain is, the benefits of a blockchain, and the network environment it operates in. Bill describes a blockchain as a single, append-only, transparent, publicly available and cryptographically auditable da...

Code coverage for your AWK programs

This article describes GoAWK's code coverage support, which was contributed by Volodymyr Gubarkov.

Poetry time! Go proverbs as limericks

The Go proverbs capture the essence of Go. Too concise for your taste? No worries, here is each proverb explained in a limerick.

AI times three—or how I made AI write a blog post for me

Writing a concurrency-safe hashmap in Go is dead easy, even an AI can do it! To prove this, I had three AI tools write this blog article, generate Go code, and create an opening image.

Comparing Go error values

Usually what matters about an error is that it’s not nil, but what if we want to know whether it’s some specific error value? For example, in a test? Let’s look at some of the right and wrong ways to do that.

The Best Go framework: no framework?

While writing this blog and leading Go teams for a couple of years, the most common question I heard from beginners was “What framework should I use?”. One of the worst things you can do in Go is follow an approach from other programming languages. Other languages hav...