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
245free 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 245 posts →
advanced topicsOct 4, 2026

Serving RFC 9110 Range Requests in Go Without an io.ReadSeeker

How kofiadeyemiq/byterange parses HTTP Range headers, caps range counts so a tiny request can't trigger a huge multipart response, and serves 206s from any Open(offset, length) source.

Read More →
advanced topicsOct 3, 2026

Arch-Specific SIMD in Go 1.27: Using the archsimd Package

Go 1.27 extends the archsimd experiment to arm64 and wasm. Picking the right intrinsic is the easy part; the Go you write around it is what decides whether the thing is fast.

Read More →
advanced topicsOct 1, 2026

Agentbox: the Go CLI patterns behind a self-hosted Claude Code and Codex workspace

How agentbox dispatches subcommands before flag.Parse, guards key rotation with syscall.Flock, and hides Claude Code and Codex behind one Go interface.

Read More →
advanced topicsSep 29, 2026

How gchat-go Structures a WebSocket Hub in Go

A walkthrough of akkovman/gchat-go: two goroutines per connection, ping-pong deadlines, and why http.Server.Shutdown leaves WebSockets running.

Read More →
advanced topicsSep 28, 2026

Agent Tincan in Go: Cobra Exit Codes, Context Deadlines, and MCP Config Discovery

A read through agent-tincan's Go CLI: typed errors mapped to exit codes, best-effort network calls capped at 5 seconds, and config sniffing that reads before it parses.

Read More →
advanced topicsSep 26, 2026

Go 1.27 Size-Specialized Allocation: Why Small Allocations Got Faster

Go 1.27 ships specialized mallocgc functions for allocations of 80 bytes or fewer. How size classes work, why 80 was the cutoff, and what the change means in practice.

Read More →
Read all 245 blog posts →