Posts

Year
Topic

Dependency Injection in Go Without Frameworks

Manual DI, functional options, Wire code generation, and why Go doesn't need Spring-style containers. Practical patterns for building testable, maintainable applications.

Why Our Microservice Needed a Circuit Breaker (And How We Built It)

Real latency cascades we encountered, how they took down our system, and the circuit breaker implementation that saved us.

When to Go Distributed: Real Talk on Building Systems with Go

After years building distributed systems, here's my honest take on when you should consider the complexity, and why Go excels when you do.

Context Propagation Patterns in Large Go Codebases

When to pass context, when not to, and the common mistakes that lead to leaked goroutines, missed cancellations, and debugging nightmares.

Structuring a Go Monolith So It Can Become Microservices Later

Practical module boundaries, package organization, and the patterns that make future decomposition possible without rewriting everything.

Simplified Clean Architecture in Go

A practical guide to implementing Clean Architecture in Golang with real examples and best practices for building modular, testable backend services.

Building REST APIs with Go

Learn how to build production-ready REST APIs using Go's standard library and best practices.

Understanding Go Interfaces

A deep dive into Go's interface system and how it enables polymorphism and flexible code design.

Getting Started with Go

An introduction to the Go programming language and why it's great for building web applications.

Designing Service Boundaries and API Contracts

Where you draw service boundaries — and how you treat the contracts between them — decides whether a system is genuinely decoupled or a distributed monolith wearing microservice clothes. On data ownership, coupling, and evolving contracts without breaking consumers.