Topics
Check out the topics that interest you.
Basics
Types, slices, maps, structs and interfaces, and the small decisions that make Go code read like Go instead of Java with different braces.
Concurrency
Goroutines are cheap to start and expensive to get wrong. Channels, mutexes, context and the leaks and deadlocks waiting for anyone who skips the details.
Web
Servers, handlers, middleware, templates, cookies and sessions on net/http, plus the parts of a real website the tutorials leave out.
APIs
Designing JSON, REST and gRPC interfaces that other people have to live with: versioning, pagination, validation, errors and clients.
Testing
Table-driven tests, fakes over mocks, fuzzing, benchmarks and the habits that make a suite worth running on every save.
Databases
Talking to Postgres, MySQL, SQLite, Redis and friends without leaking connections, hand-building queries or fighting your migrations.
Performance
Profile first, then change something. pprof, allocations, the garbage collector, escape analysis and benchmarks that hold up in production.
Generics
Type parameters, constraints and iterators, and the honest answer to whether this particular function needed them at all.
DevOps
Getting a Go binary out the door and keeping it alive: containers, cross-compiling, CI pipelines, systemd, releases and rollbacks.
Security
Input you should not trust, crypto you should not roll yourself, TLS, secrets, dependency scanning and how Go code actually gets exploited.
Standard Library
The batteries that ship with Go. Check here before you add a dependency, because the answer is often already in the box.
Tooling
The go command, vet, linters, formatters, code generation, editors and the Git habits that keep a repository tidy.
Modules
go.mod, versions, replace directives, workspaces and private repos, plus what to do when a dependency goes sideways.
Networking
Sockets below HTTP: TCP and UDP servers, TLS, DNS, timeouts, proxies, WebSockets and protocols you write yourself.
Architecture
Project layout, package boundaries, dependency injection and when to split a service. Opinions, with the cost of each one stated.
Data Processing
Parsing, transforming and streaming text, CSV, JSON, logs and binary files, and pushing a lot of it through a small amount of memory.
Embedded
Go on a Raspberry Pi, a microcontroller or a router: GPIO, sensors, tiny binaries and what to do when there is no operating system.
Desktop
Windows, menus and system trays in Go, from native toolkits to a web view in a box, and how to package the result for real users.
Gin
The most downloaded Go web framework. Routing, binding, middleware and how to keep a Gin app from becoming one giant main package.
Chi
A small router that stays out of net/http's way. Composable middleware, sub-routers and why many teams stop looking after it.
Echo
A tidy, batteries-included framework with strong binding and middleware. What it adds over the standard mux, and what it costs.
Fiber
Express-style Go built on fasthttp. Fast, familiar to Node developers, and different from net/http in ways that bite.
Gorilla
Mux, sessions, WebSocket and CSRF toolkits that a decade of Go services still run on. What to keep and what to replace.
Cobra
The library behind kubectl and the GitHub CLI. Commands, flags, completions, Viper config and a layout that survives growth.
Bubble Tea
Terminal UIs with the Elm architecture. Models, messages, Lip Gloss styling and components that do not flicker.
Fyne
Native-feeling desktop and mobile apps from one Go codebase. Widgets, layouts, themes and packaging for every platform.
Wails
Go on the backend, a web frontend in a native window. Bindings, events, builds and how it compares with Electron.
Kubernetes
Writing Go that talks to the cluster: client-go, controllers, operators, admission webhooks and the tests that keep them honest.