Devtrovert

Devtrovert

Home
Golang
System Design
Archive
Newsletters
About

Sitemap - 2024 - Devtrovert

Go EP20: sync.Cond, the Most Overlooked Sync Mechanism

Go EP19: sync.WaitGroup and The Interesting Alignment Problem

Go EP 18: Slice Is Basically an Array Wrapper

Go EP17: The Architecture of Go's sync.Pool

Go EP16: How Go Handles Key-Value Pair Storage in Maps

Go EP 15: sync.Mutex - Normal and Starvation Mode

Go EP14: Heap-allocated Defer, Stack-allocated Defer, Open-coded Defer

GO EP13: Vendoring, or go mod vendor: What Is It?

GO EP12: Go.mod File - Boring Stuff Made Easy

GO EP11: Go Commands - go get, go mod tidy,...

GO EP10: GOROOT, GOPATH, GOCACHE

Go EP9: How to Gracefully Shut Down Your Application

Go EP8: Handle errors while using defer to prevent silent failures

Go EP7: Goroutines Are Stackful

Go EP6: Keep contexts going with context.WithoutCancel()

Go EP5: Avoid context.Background(), Make Your Goroutines Promisable.

Go EP4: Skip the ‘Get’ Prefix For Getters

Go EP3: Pass Values, Not Pointers

Go EP2: Define interfaces in the consumer package, not the producer.

Go EP1: Avoid using math/rand, use crypto/rand for keys instead.

How to Design "Practical" APIs for Your Application?

Godoc and Pkgsite: How to Turn Your Code into Documents

31 Notes on Writing Good Comments in Go

Swagger in Go: A Pragmatic Guide

12 Slice Tricks to Enhance Your Go Toolbox

Switch in Go: 6 Ways to Use It

Errgroup Explained: Understanding Its Inner Workings

Go Errgroup: How to Use Goroutines Effectively

Goroutine Scheduler Revealed: Never See Goroutines the Same Way Again

© 2025 Phuong Le
Privacy ∙ Terms ∙ Collection notice
Start writingGet the app
Substack is the home for great culture

Share

Copy link
Facebook
Email
Notes
More