go podcast() - podcast cover

go podcast()

Dominic St-Pierre
15 minutes news, tips, and tricks on the Go programming language.

Episodes

027: Debugging in Go with Matt Boyle

I chatted with Matt Boyle about debugging Go code. Matt is creating a course about this topic and discussing debugging as a tool you may add to your toolbelt. Links The Ultimate Guide to Debugging With Go Domain-Driven Design with Golang Matt on Twitter aka X Goland Insiders (Go Twitter community) As always, if you'd like to support this podcast the best way is to purchase my courses / talk about them. I have 2 courses on Go and here's a direct discount for podcast listeners....

Feb 05, 202439 minEp. 27

026: We can do better with interviews and onboarding

I believe we can do better regarding software engineer interviews and this entire process (also including onboarding). I think companies that will be mediocre at those two aspects will have a hard time with younger programmers, which I fully support.

Jan 25, 202421 minEp. 26

025: Iterators are coming to Go

Iterators are going to be useful to process large amount of data without having to load an entire slice or maps in memory but instead create iterators that can be used from a for item := range myIterators(). If you'd like to support this show and/or are interested in Go courses I have, here's a direct discount link specially for listeners of this show.

Jan 17, 202417 minEp. 25

024: Do you understand this weird production behavior?

Something absurd happened in 2024 for one of my consulting client's production web application, and this code for a time. The time zero value is behaving differently than it has been since 2018. Date has a value: No date, zero value I launched my new course Build a Google Analytics in Go , if you're interested and/or want to support this show that's how to do it....

Jan 10, 202419 minEp. 24

023: Reaction to reddit post on null pointer error in Go

I react to the post on the Go subreddit of last week talking about a null pointer error occuring in production for a Go program. This is the YouTube video I made. If you'd want to support this podcast, I have Go courses available for purchase here, I just launch my latest course Build a Google Analytics in Go with a 50% discount for listener of this show....

Jan 03, 202419 minEp. 23

022: What to answer to "Why Go?"

Typical reasons to use Go might sounds exciting for us used to Go, but might not be as attractive for people that haven't experienced Go yet and might not realize they have some small heritants that Go fixes/improves. I've pre-launched my new course call Build a Google Analytics in Go , as listener to this podcast you're getting a 50% off during pre-sale, the course is due to launch before the end of December. If you want to support this show, purchasing the course is the best way, also talking ...

Dec 19, 202325 minEp. 22

021: Why I had to work 30h straight in 2002

Things were very different when I started as a junior developer. This is a story of an out of the ordinary day where worked from ~9h am to 11am (the next day), the two of us that were in charge of everything at a small financial company. This one has nothing to do with Go, but I thought it was worth telling as a story. I'm soon to launch (pre-launch) my next course Build a Google Analytics in Go. If you're interested make sure to sign-up for the newsletter on my store. https://store.dominicstpie...

Dec 06, 202320 minEp. 21

020: Discipline is required to build long-live software

As we're building more and more of distributed systems I believe that one trait / culture successful team will require is discipline. Personal opinion, we tend to complicate our lives in the last decade compare to what things were before. But without an extra attention to some details, it will be a nightmare to maintain systems in the long run. As always, if you'd like to support the show the best way is to purchase my course . Sharing it also very much appreciated....

Nov 23, 202316 minEp. 20

019: Dependencies maintenance in Go

I talk about dependencies management in Go. How to keep your dependencies up-to-date and how to check if there's any updates available. What to do when a package change their major version. List all packages and latest versions: $ go list -m -u all Update all packages to their latest minor versions: $ go get -u ./... If you'd like to support this podcast consider buying a copy of my course Build SaaS apps in Go ....

Jul 14, 202314 minEp. 19

018: WebAssembly runner, a real-world use case

I was toying with the idea of using WebAssembly runner as a plugin / extension mechanism from a Go (host) program to extend the capabilities of a program at runtime. * min/max bult-ins coming in 1.21: https://tip.golang.org/ref/spec#Min_and_max * wazero: https://github.com/tetratelabs/wazero * wasmr: https://github.com/wasmerio/wasmer-go * StaticBackend: https://github.com/staticbackendhq/core

Jun 30, 202322 minEp. 18

Help your OSS with GitHub CLI, Codespaces and linters

I'm trying to make my open source backend API project StaticBackend as easy as possible to contribute. Couple of things I've added lately was worth mentionning. GitHub Codespaces is helpful and nicely done. It goes 1-step further than Docker and make contributing to an open source project a simple task, especially for small and quick 1-time contribution. This couple with GitHub CLI, which I admit, have just starting using it. And linters to make sure the quality of the code is as high as it can ...

May 29, 202318 minEp. 17

016: What I'd hope WASM brought to web dev

I talk about what I'd love to see coming to web development. While WebAssembly can be used as an alternative to JavaScript, I believe we're not looking into the real problems related to building web application.

May 08, 202323 minEp. 16

015: How do you put things in production?

It has been a rough last 4 months for me and I finally get a chance to restart publishing episodes. In this episode I talk a bit about what I've seen so far as process / flow for deploing software in production. Going from the old days when I started as a junior software dev where we were pushing straight into prod to what I discovered at a big organization where putting something in production spread accross multiple days and involves a lot of people. I'd like to hear how things are working for...

Mar 27, 202324 minEp. 15

014: We should contribute more to open source

This is the last episode of 2022. Those are my thoughts about how I think we should try to help more as user of open source project and librairies. This episode content was inspired by the Gorilla Web Tool Kit archiving their Go projects. On that note, I'll be back with more Go content on January, and will try to keep my 1 episode per two weeks plan for 2023. Thank you!

Dec 23, 202218 minEp. 14

013: Go's concurrency to the rescue

Go's worker queue pattern: type WorderPool struct { queue chan int } func (wp *WorkerPool) start() { for i := 0; i < 500; i++ { go funcIO { for id := range wp.queue { doSomething(id) } }() } } func (wp *WorkerPool) add(id int) { wp.queue <- id } Go 1.20 errors.Join / multiple unwrap error My course: Build SaaS apps in Go Best way to show support for the pod is by sharing it around and buying my course....

Nov 30, 202215 minEp. 13

012: Concurrency isn't Go main selling point

Let's talk about Go's concurrency. It's a powerful tool to have at your disposal but a hard one to master and use correctly. The tweet that inspired this episode, I thought it was a recent one though... Reach out on Twitter Build SaaS apps in Go If you want to support the pod the best way is to purchase my course (thanks)....

Nov 16, 202215 minEp. 12

011: Options where to deploy your Go servers

At beginning I was deploying my Go servers to a DigitalOcean droplet. But for the last 3 years I'm enjoying Render , which listen to my git push and automatically deploy app for me in a blue-green deployment. If you enjoy my podcast have a look at the following: - Build SaaS apps in Go , my course on building web application in Go - StaticBackend , an open-source Go backend server API - @dominicstpierre on Twitter...

Oct 28, 202227 minEp. 11

010: internal package gotchas

I recently created an exportable Go package from StaticBackend, an open source backend API which was self-hosted. I ended up using the internal package way to heavily and this design decision bite me when I decided to create an exportable package. Now all things that needed to be expose that was in the internal package had to be refactored into their own packages. Links: StaticBackend repo Go package...

Sep 27, 202215 minEp. 10

009: Set variables at build time with -LDFLAGS

Usage of -ldflags: go build -ldflags "-X main.varName=from_build" -o mycli Inside your code: var varName string func main() { fmt.Println(varName) // prints "from_build" } Here's what I'm using for StaticBackend -v flag: go build -ldflags \ "-X github.com/staticbackendhq/core/config.BuildTime=$(shell date +'%Y-%m-%d.%H:%M:%S') \ -X github.com/staticbackendhq/core/config.CommitHash=$(shell git log --pretty=format:'%h' -n 1) \ -X github.com/staticbackendhq/core/config.Version=$(shell git describe ...

Aug 10, 202215 minEp. 9

008: The day my Go service got csharpify

If you'd like to join the dev of StaticBackend a Firebase alternative I'm building in Go you're welcome, there's a discord if you'd want to chat. https://github.com/staticbackendhq/core If you'd like to checkout my course called Build SaaS apps in Go or want to support this show, that's the best way. If you're on Twitter make sure to follow me: https://twitter.com/dominicstpierre

Jul 19, 202219 minEp. 8

007: Is Go's database/sql verbosity that bad?

sqlx: https://github.com/jmoiron/sqlx sqlboiler: https://github.com/volatiletech/sqlboiler If you're looking to learn how to build web API with Go, checkout my course on building SaaS in Go .

Jul 01, 202227 minEp. 7

006: Build softwares that stand the test of time

I've been maintaining 20 years old systems for a long time now. I've been working with legacy applications in .NET. To me Go has some great advantages built-in by design that should help in 10-15 years from now when the applications that are created today will be on maintenance mode.

Apr 25, 202213 minEp. 6

005: Spring arriving, so is Go 1.18 and Generics

What are you thinking about Generics? What about 3rd party libraries that will pop from everywhere once Go 1.18 launched? Personally, I'll appreciate what the std lib offers and will wait before writing generics code, making sure I really need it. I'm currently working on a free and open-source self-hosted Firebase alternative - if such things sound interesting, please join the Discord group and contribution are very welcome (it's written in Go of course). This is my course on Building SaaS apps...

Mar 04, 202215 minEp. 5

004: Using interfaces for major refactor

If you'd like to check the code, the PR is still active. StaticBackend repo: https://github.com/staticbackendhq/core My course on Building SaaS in go Share episode topic idea with me on Twitter @dominicstpierre

Feb 17, 202216 minEp. 4

003: Pointers or !Pointers, stack, and heap

We go over what are pointers and when to use or not use them. For instance, this is probably not a good use for pointers. func main() { var i int = 10 abc(&i) } func abc(i *int) { *i = 15 } In my opinion any dereferencing is probably bad. Better way: func main() { var i int = 10 i = abc(i) } func abc(i int) int { return 15 } I also try to give some basics info regarding the stack and heap and why pointers might not be seen as an optimization. I have a course on building SaaS in Go . Follow m...

Feb 03, 202217 minEp. 3

002: Project structure & package name

Don't stress too much about having the "proper" project structure to the point where you might over-engineer or be paralyzed by the thought of doing something wrong. It's just hard, and even 5+ years of Go experience will not ensure you're creating the optimal packages and structure. It's an art mixed with preferences that become a little easier with time but remain challenging. I wrote a getting started with Go guide that cover a little about project structure and how to get started with Go . I...

Jan 20, 202217 minEp. 2

001: Error handling in Go

Wrapping error: fmt.Errorf("error trying to do X: %w", err) Package errors: https://pkg.go.dev/errors Example of not using the happy path at 1st indentation: try { if (user.HasAccessTo(Admin) { if (somethingElse()) { // happy path } else {} } else {} } catch(Exception ex) { // what really happened, and where? } An example of happy path in idiomatic Go: ok, error := hasAccessTo(user, ADMIN) if err != nil || !ok { // handle not access } if !somethingElse() { // handle something else false } // Hap...

Jan 10, 202217 minEp. 1
For the best experience, listen in Metacast app for iOS or Android
Open in Metacast