Go Time: Golang, Software Engineering

Go Time: Golang, Software Engineering

By Changelog MediaTechnology
Download on the App Store

Go Time: Golang, Software Engineering episodes

  • 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 discussion

    Changelog++ 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, X
    • Wayne Ashley Berry – Website, GitHub, X
    • Mat Ryer – Website, GitHub, LinkedIn, X
    • Mark Bates – Website, GitHub, X

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

      1 hr 6 min
    • 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 discussion

      Changelog++ 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, X
      • Mat Ryer – Website, GitHub, LinkedIn, X
      • Jon Calhoun – Website, GitHub, X
      • Kris Brandow – GitHub, X

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

      1 hr 31 min
    • 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 discussion

      Changelog++ 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, X
      • Nathan Leiby – GitHub, LinkedIn, X
      • Jon Calhoun – Website, GitHub, X

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

        1 hr 2 min
      • 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 discussion

        Changelog++ 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, X
        • Roberto Clapis – GitHub, X
        • Mat Ryer – Website, GitHub, LinkedIn, X
        • Johnny Boursiquot – Website, GitHub, X

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

          1 hr 15 min
        • 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 discussion

          Changelog++ 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, X
          • Johnny Boursiquot – Website, GitHub, X
          • Kris Brandow – GitHub, X
          • Jerod Santo – GitHub, LinkedIn, Mastodon, X

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

            1 hr 16 min
          • 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 discussion

            Changelog++ 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, X
            • Mat Ryer – Website, GitHub, LinkedIn, X
            • Kris Brandow – GitHub, X
            • Johnny Boursiquot – Website, GitHub, X

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

              1 hr 4 min
            • 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 discussion

              Changelog++ 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, X
              • Mat Ryer – Website, GitHub, LinkedIn, X
              • Jon Calhoun – Website, GitHub, X

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

                58 min
              • 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 discussion

                Changelog++ 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, X
                • Angelica Hill – GitHub, LinkedIn, X
                • Johnny Boursiquot – Website, GitHub, X
                • Kris Brandow – GitHub, X

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

                  1 hr 26 min
                • 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 discussion

                  Changelog++ 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, X
                  • Paul Jolly – Website, GitHub, X
                  • Roger Peppe – GitHub, X
                  • Mat Ryer – Website, GitHub, LinkedIn, X

                  Show Notes:

                  • CUE’s website
                  • Something missing or broken? PRs welcome!

                    1 hr 1 min
                  • 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 discussion

                    Changelog++ 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, X
                    • Jérôme Petazzoni – GitHub, X
                    • Jon Calhoun – Website, GitHub, X
                    • Kris Brandow – GitHub, X

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

                      1 hr 13 min

                    About Go Time: Golang, Software Engineering

                    From the publisher's feed

                    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.

                    More shows like Go Time: Golang, Software Engineering

                    Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

                    Syntax - Tasty Web Development Treats

                    983 Listeners