The series

Thinking in Go

Two books that fit together. The first teaches the language end to end; the second teaches you how to structure a service written in it so it still makes sense a year later.

2 books · 11 editions · Kindle, paperback and hardcover

The Complete Guide to Go Programming — cover
Book 1

The Complete Guide to Go Programming

From Basics to Advanced Concurrency

Go is small enough to read in an afternoon and deep enough to spend years on. This is the book that takes you from your first program to a service you would put in front of real traffic — 36 chapters across seven parts, with every listing runnable.

  • The language itself: types, composites, functions, methods, interfaces
  • Concurrency the way Go means it — goroutines, channels, context, the memory model
  • HTTP services, middleware, gRPC, databases and transactions
  • Logging, metrics, tracing, profiling, linting and code generation
  • Config, secrets, error design, Docker and deployment
  • Generics, reflection, and the parts of unsafe/cgo you should know exist
Hexagonal Architecture in Go — cover
Book 2

Hexagonal Architecture in Go

Ports, Adapters, and Services That Last

Most hexagonal-architecture writing comes from the Java world — DI containers, annotations, and diagrams full of boxes that map onto nothing in Go. This book builds the same idea out of what Go already gives you: implicit interfaces, constructor functions, and a main() that wires it all together.

  • One rule, applied without exception: dependencies point inward
  • Domain, ports and adapters as ordinary Go packages — no framework
  • A complete order-processing service, built end to end
  • Testing the hexagon, error handling across boundaries, transactions
  • Event-driven adapters and observability without leaking into the domain
  • When the pattern is overkill, and how to migrate a service that already exists