Rust vs Go: Better Together

While others may see Rust and Go as competitive programming languages, neither the Rust nor the Go teams do. Quite the contrary, our teams have deep respect for what the others are doing, and see the languages as complimentary with a shared vision of modernizing the state of soft...

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