Jon Calhoun Avatar

Jon Calhoun

Jon started programming at an early age (around 8-9) when introduced to Apple Basic. Since then he has been hooked, learning about web development, scripting levels in videos games, algorithm competitions, and more. He eventually discovered Go and loved the language, but felt the resources for newcomers was lacking which lead to him starting to create videos, tutorials, and other educational resources. Some of his more popular courses include Gophercises, a course composed of mini coding exercises each designed to teach something unique aspects of Go, and Web Development with Go, an in depth course that teaches how to build production grade web applications from the ground up in Go.

PA, USA · Twitter · GitHub · Website

Go Time Go Time #113

Go at Cloudflare

Jaana, Jon, and Mat are joined by John Graham-Cumming, the CTO of Cloudflare, to discuss Go at Cloudflare along with John’s unique involvement in Gordon Brown’s apology to Alan Turing. How did Cloudflare get started with Go? What problems do they use Go for and when to they turn to other languages? And how exactly did John’s petition for an apology to Turing get so popular?

Go Time Go Time #112

defer GoTime()

Mat, Carmen, and Jon are joined by Dan Scales to talk about Mat’s favorite keyword in Go - defer. Where did the defer statement come from? What problems can it solve? How has it shaped how we write Go code? How are other languages solving similar problems? And what exactly was changed in Go 1.14 to improve the performance of defer?

Go Time Go Time #106

Code editors and language servers

In this episode we talk with Ramya Rao about code editors and language servers. We share our thoughts on which editor we use, why we use it, and why we’d switch. We also discuss what a language server is and why it matters in connecting editors and the languages they support. We also dive into various ways to be effective with VS Code including shortcuts, plugins, and more.

Jon Calhoun calhoun.io

Why can't we settle on a single application structure in Go?

Go Time panelist Jon Calhoun ruminates on a conversation started on episode 94 of the show:

The goal of this article is it explore why exactly there isn’t a single app structure that is recommended to new Gophers, and the overall goal of this series is help newcomers to Go understand what choices are available to them so they can get started a little easier.

Go Time Go Time #98

Generics in Go

Mat, Johnny, Jon, and special guest Ian Lance Taylor discuss generics in Go. What are generics and why are they useful? Why aren’t interfaces enough? How will the standard library change if generics are added to Go? How has the community contributed to generics? If generics are added, how will this negatively affect the language?

Go Time Go Time #94

Structuring your Go apps

Jon, Mat, Johnny, and special guest Cory LaNou discuss the ins and outs of structuring Go programs. Why is app structure so important? Why is it hard to structure Go apps? What happens if we get it wrong? Why do we confuse folder structures with application design? How should a new Go app be structured?

Go Time Go Time #89

The art of execution

Panelists Mat Ryer, Johnny Boursiquot, Jon Calhoun, and guest panelist Egon Elbre discuss what they build, why, and how they do it. Everybody has their own unique process for getting things done, so today we’re going to learn about them. Too often processes get in the way and slow things down. How do we look for signs of those slow downs? How do we create a space where people are free to discuss their thoughts and struggles?

Go Time Go Time #85

Go for beginners

How do beginners learn Go? This episode is meant to engage both non-Go users that listen to sister podcasts here on Changelog, or any Go-curious programmers out there, as well as encourage those that have started to learn Go and want to level up beyond the basics. On this episode we’re aiming to answer questions about how to learn Go, identify resources that are available, and where you can go to continue your learning journey.

0:00 / 0:00