The tradeoffs of Go version behavior in go.mod module files

Go version directives in go.mod files: some notes and crude usage numbers

Custom command-line flags with flag.Func

One of my favorite things about the recent Go 1.16 release is a small — but very welcome — addition to the flag package: the flag.Func() function. This makes it much easier to define and use custom command-line flags in your application. For example, if you want to...

The small web is beautiful

A vision for the "small web", small software, and small architectures. Also, a bonus rant about microservices.

Break things on purpose podcast

I had the privilage of sitting down with my friend Jason Yee as a guest on his podcast. Listen to the podcast at https://www.gremlin.com/blog/podcast-break-things-on-purpose-steve-francia-product-and-strategy-lead-at-google/ Transcript Jason Yee: Hey, everyone. Welcome to Build T...

Repository secure by design: how to sleep better without fear of security vulnerabilities

Thanks to the tests and code review, you can make your project bug-free. Right? Well… actually, probably not. That would be too easy. 😉 These techniques lower the chance of bugs, but they can’t eliminate them entirely. But does it mean we need to live with th...

Limiting what branches I track from an upstream Git repository

Go 1.16 will make system calls through libc on OpenBSD

Illustrating the importance of fully multi-core program building today

Coming in Go 1.16: ReadDir and DirEntry

A look at the new os.ReadDir function and os.DirEntry interface coming in Go 1.16, with a comparison to os.scandir in Python.