Latest · AI Engineering
How to Test Go Code That Calls an LLM
Non-determinism does not have to mean untestable. Wrapping the model behind an interface, faking it in unit tests, golden files for prompt assembly, and the small…
32 articles · Go · Backend · Performance
Practical tutorials on Go, backend architecture, performance and DevOps — every post built around code you can run.
Latest · AI Engineering
Non-determinism does not have to mean untestable. Wrapping the model behind an interface, faking it in unit tests, golden files for prompt assembly, and the small…
AI Engineering
Prompt caching is a prefix match, and one stray timestamp can silently disable it. How cache breakpoints, TTLs and the usage fields actually work — and how to build…
AI Engineering
How LLM tool use really works in Go: the agentic loop, the SDK's tool runner, parallel tool calls, bounded concurrency, returning errors as tool results, and the…
AI Engineering
A practical guide to wiring Claude into a Go service with the official SDK: content blocks, adaptive thinking, streaming, context deadlines, typed errors and the…
Go Programming
Protect your Go HTTP APIs with token bucket rate limiting: per-client limiters, middleware, the standard rate limit headers, client-side throttling and when to move…
Go Programming
Stop spawning unbounded goroutines. A practical guide to worker pools in Go using channels, sync.WaitGroup and errgroup.SetLimit — with error propagation,…
Go Programming
How to shut down a Go HTTP server without dropping in-flight requests: signal.NotifyContext, Server.Shutdown, draining background workers, and the timeouts that make…
Go Programming
Replace fmt-style logging with Go's built-in log/slog package: JSON handlers, levels, context-aware loggers, grouped attributes and request-scoped fields, with…
Go Programming
A practical guide to Go error handling — wrapping with %w, sentinel errors, custom error types, errors.Is and errors.As, and where each one belongs in a real…
Go Programming
Wondering why use Golang? Explore nine practical reasons — speed, concurrency, tooling and more — that make Go a top choice for modern back-end systems.