
Go Time: Golang, Software Engineering
Your source for wide-ranging discussions from all around the Go community. Panelists include Mat Ryer, Jon Calhoun, Natalie Pistunovich, Johnny Boursiquot, Angelica Hill, Kris Brandow, and Ian Lopshire.
We discuss cloud infrastructure, distributed systems, microservices, Kubernetes, Docker... oh and also Go!
Some people search for GoTime or GoTimeFM and can't find the show, so now the strings GoTime and GoTimeFM are in our description too.
Latest episodes

Mar 18, 2021 • 1h 5min
go:embed
Carl (Director of Technology for Spotlight PA) and Wayne (Principal Engineer at GoDaddy) join Mat and Mark to talk about the new go:embed feature in Go 1.16. They discuss how and when to use it, common gotchas to watch out for, and some rather meaty unpopular opinions thrown in for good measure.
Join the discussionChangelog++ members save 4 minutes on this episode because they made the ads disappear. Join today!Sponsors:Code-ish by Heroku – A podcast from the team at Heroku, exploring code, technology, tools, tips, and the life of the developer. Check out episode 101 for a deep dive with Cornelia Davis (CTO of Weaveworks) on cloud native, cloud native patterns, and what is really means to be a cloud native application. Subscribe on Apple Podcasts and Spotify.
Equinix Metal - Proximity – Take your infrastructure further, faster. On March 3rd, join Equinix Metal for their first technical user conference called Proximity. It’s a “follow-the-sun” day of live-streamed technical demonstrations showcasing Equinix Metal’s partners and ecosystem. Visit metal.equinix.com/proximity
Retool – Retool makes it super simple to build back-office apps in hours, not days. The tool is is built by engineers, explicitly for engineers. Learn more and try it for free at retool.com/changelog
Featuring:Carl Johnson – Website, GitHub, Mastodon, XWayne Ashley Berry – Website, GitHub, XMat Ryer – Website, GitHub, LinkedIn, XMark Bates – Website, GitHub, XShow Notes:
Read the official reference documentation on golang.org
Carl also wrote about How to Use //go:embed
And learn more about its design in this Draft design video with Russ Cox
Something missing or broken? PRs welcome!

Mar 11, 2021 • 1h 31min
Talkin' 'bout code generation
O.G. Brian Ketelsen joins the panel to discuss code generation; programs that write programs. They also discuss IDLs, DSLs, overusing language features, generics, and more.
Also Brian plays his guitar. 🤘
Join the discussionChangelog++ members save 3 minutes on this episode because they made the ads disappear. Join today!Sponsors:Teleport – Quickly access any resource anywhere using a Unified Access Plane that consolidates access controls and auditing across all environments - infrastructure, applications, and data. Try Teleport today in the cloud, self-hosted, or open source at goteleport.com
LaunchDarkly – Test in production! Deploy code at any time, even if a feature isn’t ready to be released to your users. Wrap code in feature flags to get the safety to test new features and infrastructure in prod without impacting the wrong end users.
Equinix Metal - Proximity – Take your infrastructure further, faster. On March 3rd, join Equinix Metal for their first technical user conference called Proximity. It’s a “follow-the-sun” day of live-streamed technical demonstrations showcasing Equinix Metal’s partners and ecosystem. Visit metal.equinix.com/proximity
Featuring:Brian Ketelsen – GitHub, XMat Ryer – Website, GitHub, LinkedIn, XJon Calhoun – Website, GitHub, XKris Brandow – GitHub, XShow Notes:The panel dig deep on code generation in Go. Touching on the new go:embed feature in Go 1.16.
They also discuss IDLs (interface description language) and DSLs (domain specific languages) and the part they play in code generation.
Brian talks about how we’re all guilty of overusing language features, like channels (see Go channels are bad and you should feel bad for an example).
The panel refers to https://litestream.io/ at one point, as an example of a closed-open-source project, and you can read more about on the Litestream GitHub page.
Something missing or broken? PRs welcome!

Mar 4, 2021 • 1h 2min
Go at Clever
In this episode we explore how Clever started using Go. What technologies did Clever start with, how did they transition to Go, and what were the motivations behind those changes? We then explore some of the OS tech written by the team at Clever.
Join the discussionChangelog++ members save 3 minutes on this episode because they made the ads disappear. Join today!Sponsors:Teleport – Quickly access any resource anywhere using a Unified Access Plane that consolidates access controls and auditing across all environments - infrastructure, applications, and data. Try Teleport today in the cloud, self-hosted, or open source at goteleport.com
LaunchDarkly – Test in production! Deploy code at any time, even if a feature isn’t ready to be released to your users. Wrap code in feature flags to get the safety to test new features and infrastructure in prod without impacting the wrong end users.
Equinix Metal - Proximity – Take your infrastructure further, faster. On March 3rd, join Equinix Metal for their first technical user conference called Proximity. It’s a “follow-the-sun” day of live-streamed technical demonstrations showcasing Equinix Metal’s partners and ecosystem. Visit metal.equinix.com/proximity
Featuring:Rafael Garcia – GitHub, XNathan Leiby – GitHub, LinkedIn, XJon Calhoun – Website, GitHub, XShow Notes:
wag - a tool for generating Go web APIs using a subset of Swagger v2.
sphinx - http rate limiting tool.
leakybucket - leaky bucket implemented in Go.
microplane - CLI used to make git changes across multiple repos.
optimus - a library used to concurrently manipulate collections of data.
reposync
gitbot
Mo Repos, Mo Problems? How We Make Changes Across Many Git Repositories - a writeup by Nathan about how Clever uses the microplane CLI.
Something missing or broken? PRs welcome!

Feb 25, 2021 • 1h 14min
Indecent (language) Proposals: Part 2
This is the second part of a discussion about Go language proposals that may or may not make it into the language. Listen to part one as well!
Join the discussionChangelog++ members save 5 minutes on this episode because they made the ads disappear. Join today!Sponsors:Code-ish by Heroku – A podcast from the team at Heroku, exploring code, technology, tools, tips, and the life of the developer. Check out episode 101 for a deep dive with Cornelia Davis (CTO of Weaveworks) on cloud native, cloud native patterns, and what is really means to be a cloud native application. Subscribe on Apple Podcasts and Spotify.
Equinix Metal - Proximity – Take your infrastructure further, faster. On March 3rd, join Equinix Metal for their first technical user conference called Proximity. It’s a “follow-the-sun” day of live-streamed technical demonstrations showcasing Equinix Metal’s partners and ecosystem. Visit metal.equinix.com/proximity
Sourcegraph – Sourcegraph is universal code search for every developer and team. Easily search across all the code that matters to you and your organization: find example code, explore and read code, debug issues, and more. Head to info.sourcegraph.com/changelog and click the button “Try Sourcegraph now” to get started.
Featuring:Daniel Martí – Website, GitHub, LinkedIn, XRoberto Clapis – GitHub, XMat Ryer – Website, GitHub, LinkedIn, XJohnny Boursiquot – Website, GitHub, XShow Notes:The proposals discussed in this episode are:
20733 - Redefine range loop variables in each iteration
12854 - Type inferred composite literals
35304 - Anonymous struct literals
21496 - Even narrower: permit type elision in nested composite literals
6386 - Constants of arbitrary types
27975 - Immutable type qualifier
29036 - Make imported symbols predictable
Something missing or broken? PRs welcome!

Feb 18, 2021 • 1h 16min
The art of reading the docs
Documentation. You can treat it as a dictionary or reference manual that you look up things in when you get stuck during your day-to-day work OR (and this is where things get interesting) you can immerse yourself in a subject, domain, or technology by deeply and purposefully consuming its manuals cover-to-cover to develop expertise, not just passing familiarity.
In this episode we pull in perspectives and anecdotes from beginners and veterans alike to understand the impact of RTFM deeply. Also Sweet Filepath O’ Mine?!?!
Join the discussionChangelog++ members save 5 minutes on this episode because they made the ads disappear. Join today!Sponsors:Code-ish by Heroku – A podcast from the team at Heroku, exploring code, technology, tools, tips, and the life of the developer. Check out episode 101 for a deep dive with Cornelia Davis (CTO of Weaveworks) on cloud native, cloud native patterns, and what is really means to be a cloud native application. Subscribe on Apple Podcasts and Spotify.
Equinix Metal – Globally interconnected fully automated bare metal. Equinix Metal gives you hardware at your fingertips with physical infrastructure at software speed. This is the promise of the cloud delivered on Bare Metal. Get $500 in free credit to play with plus a rad t-shirt at info.equinixmetal.com/changelog.
Retool – Retool makes it super simple to build back-office apps in hours, not days. The tool is is built by engineers, explicitly for engineers. Learn more and try it for free at retool.com/changelog
Featuring:Ian Lopshire – GitHub, XJohnny Boursiquot – Website, GitHub, XKris Brandow – GitHub, XJerod Santo – GitHub, LinkedIn, Mastodon, XShow Notes:You could win Mark Bates’ Raspberry Pi 400! Thanks to Eric Miller for requesting this episode! You, too, can request episodes right here.
The career-changing art of reading the docs by @forrestbrazeal
Daniele Procida’s talk on documentation during PyCon Australia 2017
Accompanying doc
Something missing or broken? PRs welcome!

Feb 11, 2021 • 1h 3min
Indecent (language) Proposals: Part 1
In this episode, we discuss some proposed changes to Go covering a range of subjects, from magical interfaces, to enhancing range loops, make and new with inferred types, lazy values, and more. We also talk a lot about ints, so get this episode in your ears.
Join the discussionChangelog++ members save 4 minutes on this episode because they made the ads disappear. Join today!Sponsors:Teleport – Quickly access any resource anywhere using a Unified Access Plane that consolidates access controls and auditing across all environments - infrastructure, applications, and data. Try Teleport today in the cloud, self-hosted, or open source at goteleport.com
LaunchDarkly – Test in production! Deploy code at any time, even if a feature isn’t ready to be released to your users. Wrap code in feature flags to get the safety to test new features and infrastructure in prod without impacting the wrong end users.
Equinix Metal – Globally interconnected fully automated bare metal. Equinix Metal gives you hardware at your fingertips with physical infrastructure at software speed. This is the promise of the cloud delivered on Bare Metal. Get $500 in free credit to play with plus a rad t-shirt at info.equinixmetal.com/changelog.
Featuring:Daniel Martí – Website, GitHub, LinkedIn, XMat Ryer – Website, GitHub, LinkedIn, XKris Brandow – GitHub, XJohnny Boursiquot – Website, GitHub, XShow Notes:You could win Mark Bates’ Raspberry Pi 400!
The proposals we discuss are:
21670 - Have functions auto-implement interfaces with only a single method of that same signature
43557 - Function values as iterators
34515 - Extended type inference for make and new
37739 - Lazy values
19623 - Arbitrary precision ints
30613 - Checked integer types
Something missing or broken? PRs welcome!

Feb 4, 2021 • 58min
When Go programs end
Michael Knyszek from the Go team joins us to talk about what happens when a program ends. How are file handles cleaned up? When are deferred functions run, and when are they skipped entirely? Is there a way to terminate all running goroutines? Tune in to learn the answers to these questions and more!
Join the discussionChangelog++ members save 4 minutes on this episode because they made the ads disappear. Join today!Sponsors:Teleport – Quickly access any resource anywhere using a Unified Access Plane that consolidates access controls and auditing across all environments - infrastructure, applications, and data. Try Teleport today in the cloud, self-hosted, or open source at goteleport.com
LaunchDarkly – Test in production! Deploy code at any time, even if a feature isn’t ready to be released to your users. Wrap code in feature flags to get the safety to test new features and infrastructure in prod without impacting the wrong end users.
Equinix Metal – Globally interconnected fully automated bare metal. Equinix Metal gives you hardware at your fingertips with physical infrastructure at software speed. This is the promise of the cloud delivered on Bare Metal. Get $500 in free credit to play with plus a rad t-shirt at info.equinixmetal.com/changelog.
Featuring:Michael Knyszek – Website, GitHub, Mastodon, XMat Ryer – Website, GitHub, LinkedIn, XJon Calhoun – Website, GitHub, XShow Notes:
Make Ctrl+C Cancel the context.Context - An article by Mat Ryer discussing how to capture ctrl+c and cancel a context.
NotifyContext proposal - Our very own Mark Bates made the proposal for NotifyContext!
NotifyContext - docs for the NotifyContext functionality added in Go
12 Factor
Graceful shutdown in Go http server - an article discussing grateful shutdowns with Go HTTP servers.
kill linux man page - kill is a linux command mentioned on the show
os/signal - docs for the os/signal package in Go.
Something missing or broken? PRs welcome!

Jan 28, 2021 • 1h 26min
Why writing is important
In this episode we talk about various types of writing and how we as Go developers can learn from them. Whether it is planning and preparing to write, communicating with team members, or making our code clearer for future developers to read through style guides.
Join the discussionChangelog++ members save 6 minutes on this episode because they made the ads disappear. Join today!Sponsors:Code-ish by Heroku – A podcast from the team at Heroku, exploring code, technology, tools, tips, and the life of the developer. Check out episode 101 for a deep dive with Cornelia Davis (CTO of Weaveworks) on cloud native, cloud native patterns, and what is really means to be a cloud native application. Subscribe on Apple Podcasts and Spotify.
Equinix Metal – Globally interconnected fully automated bare metal. Equinix Metal gives you hardware at your fingertips with physical infrastructure at software speed. This is the promise of the cloud delivered on Bare Metal. Get $500 in free credit to play with plus a rad t-shirt at info.equinixmetal.com/changelog.
Sourcegraph – Sourcegraph is universal code search for every developer and team. Easily search across all the code that matters to you and your organization: find example code, explore and read code, debug issues, and more. Head to info.sourcegraph.com/changelog and click the button “Try Sourcegraph now” to get started.
LaunchDarkly – Test in production! Deploy code at any time, even if a feature isn’t ready to be released to your users. Wrap code in feature flags to get the safety to test new features and infrastructure in prod without impacting the wrong end users.
Featuring:Jon Calhoun – Website, GitHub, XAngelica Hill – GitHub, LinkedIn, XJohnny Boursiquot – Website, GitHub, XKris Brandow – GitHub, XShow Notes:
How language shapes the way we think | Lera Boroditsky
The Zen of Go - Article by Dave Cheney about how idiomatic Go code
diagrams.net (formerly draw.io) - A tool mentioned by Johnny
WebSequenceDiagrams.com - A tool mentioned by Johnny
-GopherCon 2019: Kris Brandow - The Gopher’s Manual of Style
Effective Go
Go Code Review Comments - Common code review comments for Go code
Something missing or broken? PRs welcome!

Jan 21, 2021 • 1h
CUE: Configuration superpowers for everyone
On this episode we learn how to Configure, Unify, and Execute things. What’s CUE all about? Well, it’s an open source language with a rich set of APIs and tooling for defining, generating, and validating all kinds of data: configuration, APIs, database schemas, code, … you name it.
Now that we’ve copy/pasted the project’s description… let’s dig in and learn how we can use CUE to make our Go programs better!
Join the discussionChangelog++ members save 5 minutes on this episode because they made the ads disappear. Join today!Sponsors:Code-ish by Heroku – A podcast from the team at Heroku, exploring code, technology, tools, tips, and the life of the developer. Check out episode 101 for a deep dive with Cornelia Davis (CTO of Weaveworks) on cloud native, cloud native patterns, and what is really means to be a cloud native application. Subscribe on Apple Podcasts and Spotify.
Equinix Metal – Globally interconnected fully automated bare metal. Equinix Metal gives you hardware at your fingertips with physical infrastructure at software speed. This is the promise of the cloud delivered on Bare Metal. Get $500 in free credit to play with plus a rad t-shirt at info.equinixmetal.com/changelog.
Retool – Retool makes it super simple to build back-office apps in hours, not days. The tool is is built by engineers, explicitly for engineers. Learn more and try it for free at retool.com/changelog
Featuring:Marcel van Lohuizen – GitHub, LinkedIn, XPaul Jolly – Website, GitHub, XRoger Peppe – GitHub, XMat Ryer – Website, GitHub, LinkedIn, XShow Notes:
CUE’s website
Something missing or broken? PRs welcome!

Jan 14, 2021 • 1h 12min
We're talkin' CI/CD
Continuous integration and continuous delivery are both terms we have heard, but what do they really mean? What does CI/CD look like when done well? What are some pitfalls we might want to avoid? In this episode Jérôme and Marko, authors of the book “CI/CD with Docker and Kubernetes” join us to share their thoughts.
Join the discussionChangelog++ members save 4 minutes on this episode because they made the ads disappear. Join today!Sponsors:Teleport – Quickly access any resource anywhere using a Unified Access Plane that consolidates access controls and auditing across all environments - infrastructure, applications, and data. Try Teleport today in the cloud, self-hosted, or open source at goteleport.com
LaunchDarkly – Test in production! Deploy code at any time, even if a feature isn’t ready to be released to your users. Wrap code in feature flags to get the safety to test new features and infrastructure in prod without impacting the wrong end users.
Equinix Metal – Globally interconnected fully automated bare metal. Equinix Metal gives you hardware at your fingertips with physical infrastructure at software speed. This is the promise of the cloud delivered on Bare Metal. Get $500 in free credit to play with plus a rad t-shirt at info.equinixmetal.com/changelog.
Featuring:Marko Anastasov – Website, GitHub, LinkedIn, XJérôme Petazzoni – GitHub, XJon Calhoun – Website, GitHub, XKris Brandow – GitHub, XShow Notes:
CI/CD with Docker and Kubernetes - A free book about CI/CD written by Jérôme & Marko
Sysbox - A tool mentioned by Jérôme on the show
Tilt - A tool mentioned on the show
Semaphore - The SaaS CI company that Mark is the co-founder of.
Something missing or broken? PRs welcome!