Skip to content
ExponaBLOG
Series · Day 100 of 100

Go Programming & Production APIs

  1. 01
    Why Go is great for backend services: a practical guide
    Simple language, fast binaries and concurrency built in.
  2. 02
    Setting up a Go project: real-world lessons and examples
    Modules, layout and tooling.
  3. 03
    Go syntax essentials: a practical guide for developers
    The basics in one post.
  4. 04
    Slices and maps in Go: a practical guide for developers
    The two collection types you use every day.
  5. 05
    Structs and methods in Go: practical tips and trade-offs
    Go's way to model data and behavior.
  6. 06
    Go interfaces explained: real-world lessons and examples
    Implicit interfaces make Go code flexible.
  7. 07
    Go error handling: a practical guide for developers
    Errors are values. Handle them explicitly.
  8. 08
    panic and recover: what every Go developer should know
    When to panic — almost never.
  9. 09
    Go pointers explained: a practical guide for developers
    Pointers without the fear.
  10. 10
    Goroutines vs threads: a practical guide for developers
    Why Go handles thousands of concurrent tasks easily.
  11. 11
    Go channels explained: a practical guide for developers
    Communicate between goroutines safely.
  12. 12
    The select statement in Go Programming & Production APIs
    Coordinate multiple channels.
  13. 13
    Worker pools in Go: a practical guide for developers
    Process jobs concurrently with bounded resources.
  14. 14
    sync.WaitGroup and Mutex: a hands-on guide for engineers
    Basic synchronization tools.
  15. 15
    context.Context in Go: a practical guide for developers
    Cancellation, deadlines and request values.
  16. 16
    Race conditions and the race detector: a practical guide
    Find data races before production does.
  17. 17
    Golang REST API tutorial: a hands-on guide for engineers
    An HTTP API with the standard library.
  18. 18
    Choosing a Go web framework: what developers should know
    stdlib, chi, Gin or Echo?
  19. 19
    JSON in Go: everything engineers need to know in practice
    Encode and decode with struct tags.
  20. 20
    Middleware in Go: a practical guide for developers
    Wrap handlers for logging, auth and recovery.
  21. 21
    Request validation in Go: a hands-on guide for engineers
    Validate input before using it.
  22. 22
    Structured logging with slog: Go lessons from production
    The standard library logger since Go 1.21.
  23. 23
    Organizing a Go project: real-world lessons and examples
    Structure that scales without over-engineering.
  24. 24
    Go dependency injection: real-world lessons and examples
    No framework needed.
  25. 25
    Configuration in Go services: what developers should know
    Environment-based config done right.
  26. 26
    Database access in Go: a practical guide for developers
    database/sql, pgx and sqlc.
  27. 27
    sqlc: type-safe SQL in Go — patterns, pitfalls and fixes
    Write SQL, get Go functions.
  28. 28
    GORM: when to use an ORM — practical tips and trade-offs
    Productivity vs control.
  29. 29
    Database transactions in Go: what developers should know
    Consistent multi-step writes.
  30. 30
    Database migrations in Go: practical tips and trade-offs
    Version your schema.
  31. 31
    Connection pooling in Go: a hands-on guide for engineers
    Tune database/sql pools.
  32. 32
    Redis with Go: concepts, trade-offs and production lessons
    Caching and rate limiting.
  33. 33
    JWT authentication in Go: a hands-on guide for engineers
    Secure APIs with tokens.
  34. 34
    Password hashing in Go: a practical guide for developers
    Store passwords safely.
  35. 35
    CORS in Go APIs: concepts, trade-offs and production lessons
    Allow your frontend, block the rest.
  36. 36
    Rate limiting in Go: a practical guide for developers
    Protect your API.
  37. 37
    Testing in Go: concepts, trade-offs and production lessons
    Built-in testing that is fast and simple.
  38. 38
    Testing HTTP handlers in Go: what developers should know
    httptest makes it easy.
  39. 39
    Mocking in Go: concepts, trade-offs and production lessons
    Fakes over frameworks.
  40. 40
    Integration tests with Testcontainers in Go: a deep dive
    Test against real databases.
  41. 41
    Benchmarks in Go: a practical guide for developers
    Measure before optimizing.
  42. 42
    Fuzz testing in Go: a practical guide for developers
    Find edge cases automatically.
  43. 43
    Profiling Go with pprof: real-world lessons and examples
    Find CPU and memory hotspots.
  44. 44
    Reducing allocations in Go: patterns, pitfalls and fixes
    Less garbage, faster code.
  45. 45
    Go garbage collector basics: what developers should know
    Understand GC to tune it.
  46. 46
    gRPC with Go: concepts, trade-offs and production lessons
    Fast, typed service-to-service APIs.
  47. 47
    Protocol Buffers basics: real-world lessons and examples
    Compact, versioned message formats.
  48. 48
    gRPC vs REST: a practical Go guide for working engineers
    Pick the right API style.
  49. 49
    Graceful shutdown in Go: real-world lessons and examples
    Finish in-flight requests before exiting.
  50. 50
    Health checks for Go services: best practices explained
    Liveness and readiness endpoints.