11 tips for structuring your Go projects

When working with Go, you have three main building blocks to help organize your code: files, packages and modules. But as Go developers, one of the common challenges we have is knowing how to best combine these building blocks to structure a codebase. In this post, I'll share a...

Go 1.24 Release Candidate 2

#​539 — January 22, 2025 Unsub  |  Web Version Go Weekly Go 1.24 Release Candidate 2 Released — We’re another step down the road to the eventual release of Go 1.24, and the Go team are particularly keen for you to kick the tire...

Announcing GoReleaser v2.6

Happy new year! The first release of the year is here!

Sometimes print-based debugging is your only choice

We quit our jobs to help people write software more mindfully

Leaving a principal software engineer role while having a newborn kid, a mortgage to pay, and a house being built may not sound like the best idea. Still, I took a significant pay cut so I could make a living by educating people about software. Some people literally told me that...

Go 1.23.5-1 and 1.22.11-1 Microsoft builds now available

A new release of the Microsoft build of Go including security fixes is now available for download. The post Go 1.23.5-1 and 1.22.11-1 Microsoft builds now available appeared first on Microsoft for Go Developers.

An interactive tour of Go 1.24

#​538 — January 15, 2025 Unsub  |  Web Version Go Weekly An Interactive Tour of Go 1.24 — A list of all the significant new 1.24 features. Each is accompanied by interactive, runnable examples so you can see generic type aliases...

Accessing private Go modules in a Docker container

If you're building Docker containers which reference a private Go module, you'll likely need to work out a way to pass in credentials, so you don't have to build on your host machine. I first encountered this last March and as I've hit it again today, I thought I'm make sure I wr...

Reverse mode Automatic Differentiation

Automatic Differentiation (AD) is an important algorithm for calculating the derivatives of arbitrary functions that can be expressed by a computer program. One of my favorite CS papers is "Automatic differentiation in machine learning: a survey" by Baydin, Perlmutter,...

How to know when it's time to go

Leaving a job is never easy, and it’s a consequential decision. But when it’s time, it’s time. Here’s how to escape the comfort trap, and take the next step in your career.