Go Time: Golang, Software Engineering cover image

Go Time: Golang, Software Engineering

Latest episodes

undefined
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!
undefined
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!
undefined
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!
undefined
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!
undefined
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!
undefined
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!
undefined
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!
undefined
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!
undefined
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!
undefined
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!

Get the Snipd
podcast app

Unlock the knowledge in podcasts with the podcast player of the future.
App store bannerPlay store banner

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode

Save any
moment

Hear something you like? Tap your headphones to save it with AI-generated key takeaways

Share
& Export

Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode