The Ultimate Guide to Debugging With Go
The Go debugging course

The Ultimate Guide to Debugging With Go

The most important skill you were never taught. Being able to debug locally and in production is a critical skill for any Go engineer, but it is rarely taught explicitly.

View the curriculum →

8 modules · 50 lessons · Purchase once, access forever

The Ultimate Guide to Debugging With Go course cover

Watch the course trailer

Curriculum

Eight modules. No filler.

Concise lessons with practical advice. No experience with debugging necessary — we start from the basics and finish with advanced topics, with guided exercises along the way. Click a module to see its lessons.

Get the course — $99 →
01

Introduction

Welcome to the course — what debugging is and why we do it.

2
  • Welcome!
  • What is debugging and why do we do it?
02

Methods of Debugging — Debugging by Eye

Common errors, code patterns to watch for, pair programming, and a real production debugging story — with a guided exercise.

6
  • Introduction
  • Common errors & being aware of code patterns
  • Exercise
  • Exercise Solution
  • Pair Programming
  • Story Time - Production debugging example
03

Methods of Debugging — Logging

From simple local logging to production logging with slog, log levels, Kibana and Elasticsearch — plus warnings and a bonus httputil lesson.

8
  • Introduction to Logging
  • Logging Locally, the simple way
  • Logging for production: slog and log levels
  • Logging for production: slog, Kibana, Elasticsearch
  • Exercise
  • Exercise Solution
  • A couple of warnings on logging
  • Bonus Lesson: httputil
04

Methods of Debugging — The Debugger

Set up the debugger in GoLand and VSCode, read panic traces, and debug nil pointers, goroutines, tests, HTTP requests, and Go apps in Docker.

10
  • Introduction to the Debugger
  • Setting up the Debugger in GoLand
  • Setting up the debugger in VSCode
  • Reading panic traces & debugging nil pointer exceptions
  • Debugging goroutines
  • Debugging tests
  • Debugging a HTTP request
  • Exercise
  • Exercise Solution
  • Debugging a Go application in Docker
05

Debugging in Production — Metrics

What to measure, adding metrics to an API, Prometheus and Grafana dashboards — and a warning about measuring too much.

7
  • Introduction to Metrics
  • What should I measure?
  • Adding Metrics to an API
  • Intro to Prometheus; Building Dashboard in Grafana
  • Exercise
  • Exercise Solution
  • A warning about measuring too much
06

Debugging in Production — Tracing

Distributed tracing: adding traces to a Go API, tracing across services, and a warning on sampling.

6
  • Introduction to Distributed Tracing
  • Adding Traces to a Go API
  • Tracing across services
  • Exercise
  • Exercise Solution
  • A warning on Sampling
07

Debugging in Production — Profiling & Pprof

Profile the heap, CPU, and goroutines with pprof, hear how it 10x'd API throughput, plus a bonus on gotraceui & flight recording (Go 1.22).

10
  • Introduction to Profiling
  • Let's add Profiling to your Go Application
  • Profiling the Heap (Memory)
  • CPU tracing & pprof list
  • Profiling goroutine usage
  • Exercise
  • Exercise Solution
  • Should I leave pprof running always?
  • Story Time - How I used pprof to 10x API throughput
  • Bonus Lesson: gotraceui & flight recording (Go 1.22)
08

Wrapping Up

A thank you, and where to go next.

1
  • Thank you!

lessons per module

What you get

Practical lessons, guided exercises, no filler.

01

No filler content

Concise lessons with practical advice.

02

Basics to advanced

No experience with debugging necessary. We start from the basics and finish with advanced topics.

03

Guided exercises

Guided exercises along the way, each with a worked solution.

04

Yours forever

Purchase once, access forever. Always up to date — and you'll receive a certificate for completing the course!

14-day money-back guarantee.

If you didn't finish the course and feel it is not up to scratch, drop us an e-mail at hello@bytesizego.com and we'll issue you a refund within 14 days.

Why this course

The most important skill you were never taught.

Being able to debug locally and in production is a critical skill for any Go engineer, but it is rarely taught explicitly.

It has taken me many years of working with Go in production to master debugging with Go, and I want to accelerate your learning by teaching you everything I wish I had known when I started out.

Not convinced? Take a read of this blog.

Your instructor Matt Boyle - Debugging with Go Course Author

Matt Boyle

Matt Boyle is an experienced technical leader in the field of distributed systems, specializing in using Go. He has worked at huge companies such as Cloudflare and General Electric, as well as exciting high-growth startups such as Curve and Crowdcube.

In 2022, Matt published the best-selling book "Domain-Driven Design with Golang". It's available at all good book sellers.

Matt has been writing Go for production since 2018 and often shares blog posts and fun trivia about Go over on Twitter.

Master the skill you were never taught.

50 lessons, guided exercises, and a certificate on completion. Purchase once, access forever.

gRPC Course Cover for Go Developers
If you enjoyed this debugging course

Building Production-Ready Services with gRPC and Go

gRPC is the modern, high performance way to communicate across services. It is used by huge companies such as Google, Cloudflare and Netflix, and, after this course, maybe by your company too! Course — 56 Lessons.