Skip to content
package gobackend

Practical Go & Backend Engineering

Learn Go by building production systems. Practical guides on Go, APIs, PostgreSQL, microservices, cloud, testing and performance.

funcFeatured()[]Article

View all →

funcLatest()[]Article

Go

Defer, Panic, and Recover in Go

How defer actually schedules a call, what panic does to the call stack, why recover only works inside a deferred function, and the real-world pattern of recovering from panics in HTTP middleware — with diagrams.

7 min
Go

Error Handling in Go: Custom Errors, Wrapping, and errors.Is/As

Why Go treats errors as ordinary values instead of exceptions, how to build custom error types, how wrapping with %w preserves the original cause, and how errors.Is and errors.As actually work — with diagrams.

6 min
Go

Go Modules and Packages: Setting Up and Structuring a Go Project

What a Go module actually is, how go.mod and go.sum work, how packages and import paths map to directories, and how to structure a project before you write your first real program.

6 min
Go

Pointers in Go: When to Use *T and Why

What a pointer actually is, why Go passes everything by value by default, and the concrete rule for when a function or method should take a pointer instead of a copy — with diagrams.

6 min
Go

Slices, Arrays, and Maps in Go: How They Actually Work

Why a slice is a small header pointing at a backing array, what append actually does when it grows, why slicing can alias memory you didn't mean to share, and how Go's maps behave — with diagrams.

6 min
Go

Structs, Methods, and Composition in Go

How to define your own types with structs, attach behavior with methods, and build up functionality through embedding instead of inheritance — with diagrams and real examples.

5 min

funcTopics()[]Category

New here? Follow the Go roadmap for a structured path through all of it.

Open Source

GoBackend Starter

A production-oriented Go backend template: Chi, PostgreSQL, SQLC, JWT authentication, structured logging, Docker, and tests — the same architecture used throughout the articles on this site.

GoPostgreSQLSQLCDockerJWTTesting
View the project

$ git clone github.com/gobackend-dev/gobackend-starter

$ cd gobackend-starter

$ cp .env.example .env

$ docker compose up

# API running at localhost:8080

funcWhyGoBackend()[]Reason

Production-first

Every guide is built around real systems, not toy examples.

Backend-focused

Go, PostgreSQL, microservices, and the operational details in between.

No fluff

Problem, reasoning, implementation, and trade-offs — nothing padded.

Tested code

Examples reflect the standard library and code that actually compiles.

Get practical Go & backend engineering articles

One email when a new guide ships. No spam, unsubscribe anytime.

Newsletter signup isn't live yet — check back soon.