News
Clean Code in Go (Part 4): Package Architecture, Dependency Flow, and Scalabilit...
- Use `internal/` for private business logic- Define interfaces where you use them, not where you implement- Keep import graph f...
Clean Code in Go (Part 2): Structs, Methods, and Composition Over Inheritance
Go offers composition through embedding, interfaces without explicit implementation, and clear rules for methods. The difference b...
What Are Generics? An Introduction for Beginners
In this article we’ll introduce the new language features. We won’t try to cover all the details, but we will hit all the importan...
Go: Can It Mitigate Supply Chain Attacks?
All together this means it’s possible to build rich, complex applications with just a handful of dependencies. No matter how good...
Clean Code: Functions and Error Handling in Go: From Chaos to Clarity [Part 1]
- Keep functions under 50 lines (The Screen Rule)- One function = one responsibility - Use early returns instead of nested if st...
A Guide to Familiarize Yourself With Workspaces in Go
Workspaces in Go 1.18 let you work on multiple modules simultaneously without having to edit go.mod files for each module. Each mo...
Building a Simple REST API in Go Without Frameworks
This guide walks through building a simple RESTful API in Go from scratch—no frameworks, just Go’s net/http package. It covers set...
How to Organize Your Go Projects Like a Pro
Learn how to structure Go code the right way: from single-file projects to packages, internal modules, and proper imports, explain...
Go: When Should You Use Generics? When Shouldn't You?
To be clear, I’ll provide general guidelines, not hard and fast rules. Use your own judgement. But if you aren’t sure, I recommend...
Here's What You Need to Know About Vulnerability Management for Go
Go provides tooling to analyze your codebase and surface known vulnerabilities. This tooling is backed by the Go vulnerability dat...
