Join 5,000+ Go developers

The best place to learn Go on the internet

Bite-sized lessons, deep courses, and a gamified practice app — everything you need to go from "Hello, World" to production systems.

ByteSizeGo gopher mascot
One useful email at a time — no spam, unsubscribe anytime.
176+interactive exercises
251free blog posts
30+hours of courses
New

Learn Go the Fun Way with GoFlow

Master Go through bite-sized, interactive exercises. Earn XP, build streaks, and level up your skills — one lesson at a time.

  • 176+ interactive exercises you can finish in minutes
  • Earn XP, keep daily streaks, and level up your gopher
  • Real Go code from day one — no setup required
Free to start — no card required
+10 XP
🔥 7⚡ 240 XP
❤️ 5
Fill in the blank
func main() {   msg := "Hello, Gopher!"   fmt.Println(msg) }
fmt.Printlnlog.Fatalprint()
GoFlow Gopher Mascot
Courses

Go deep, one course at a time

Production-focused video courses used by engineers at some of the biggest companies in the world.

Free List

58 Companies Hiring Go Engineers in 2026

Careers pages, remote policies, and how each company uses Go in production.

Google Cloudflare Docker Shopify Datadog HashiCorp +52
Join 5,000+ Go developers
Blog

Latest from the blog

Read all 251 posts →
advanced topicsOct 11, 2026

How once Caches Command Output in Go: Unix Sockets, HMAC Keys, and Wall-Clock Expiry

A walkthrough of alex0ptr/once, a Go CLI that caches stdout in a background daemon over a Unix socket, with HMAC cache keys and wall-clock expiry.

Read More →
advanced topicsOct 9, 2026

How godiff Parses Large Git Patches Fast in Go

A look at godiff's Go internals: bufio.Scanner buffer limits, single-pass patch parsing, and bounded word-level diffs.

Read More →
advanced topicsOct 8, 2026

kube-bmc: Modeling Server Hardware as Kubernetes CRDs in Go

How kube-bmc exposes IPMI and Redfish baseboard controllers as Kubernetes objects, and which Go API patterns transfer well to other operators.

Read More →
advanced topicsOct 7, 2026

Testing a Stellar Corridor Monitor in Go: Snapshots, Injected Clocks, and Exit Codes

Three tricks stellar-pathfinder uses to keep a Stellar corridor monitor testable in Go: recorded HTTP snapshots with hashes, clocks passed as arguments, and exit codes that mean something.

Read More →
advanced topicsOct 6, 2026

How uptimy/agent Builds Its HTTP API with net/http, ServeMux Patterns, and Context Keys

No router library, no framework. Just net/http and a few patterns from uptimy/agent worth copying: method-aware routes, a typed context key, a login that does the same expensive password work for unknown users, and one blank import that saves you a production bug.

Read More →
advanced topicsOct 5, 2026

How Gemini-Config-Checker Uses Go to Find and Drive a Chromium Browser

The Go patterns behind Gemini-Config-Checker: injecting os.Getenv and exec.LookPath so path discovery is unit-testable, build tags for the registry lookup, and why the configs stay as maps.

Read More →
Read all 251 blog posts →