Ultimate Go: Advanced Engineering Episode 5

Introduction In case you missed episode 4, Bill attempted to integrate current database sharing solutions to solve the “database ownership” problem his dependency manager faces. He tried providing copies of the database, implementing a load balancer and replication. While per...

Ultimate Go: Advanced Engineering Episode 6

Introduction In the last video, Bill left off talking about proof of work (PoW) algorithms. In a distributed and decentralized environment, PoW used to be the gold standard for a node to participate equitably in a Blockchain. However, with PoW as the number of nodes on the Blockc...

Understanding Go's Time Format

Introduction Most apps that work with time values eventually need to display time to a user. Go has a unique way of allowing you to specify how to display time values that is different from the C library function strftime. The strftime function tends to be the standard for langua...

Using Renovate to manage updates to `golangci-lint` versions

Although I used to recommend using a tools.go to track the dependency versions for golangci-lint, I've since learned why it's not the recommended route, and have gone back to the official install instructions. With the official install, you use a shell script to download this, wh...

Go and the case of the half-missing import

Ultimate Go: Advanced Engineering Episode 3

Introduction In episode 2, Bill designed a database for his dependency manager to enable Go developers to have reproducible,durable and secure builds. This database will house the hash value for each of the dependencies stored. During runtime, these hash values are compared with...

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...