Miki Tebeka 📬 miki@353solutions.com.com, 𝕏 @tebeka, 👨 mikitebeka, ✒️blog
- Advanced JSON
- Custom serialization
- Missing vs empty values
- Streaming JSON
- HTTP clients
- Request body
- Streaming
- Authentication
- HTTP servers
- Dependency injection
- Writing middleware
- Streaming responses
- Routing
- value.go - Custom serialization
- vm.go - Missing vs empty
- logs.go - Steaming JSON
- client.go - HTTP Clients
- Installing Multiple Versions of Go
- You can set
GOROOT
to~/sdk/go1.24.3
, see GoLand instructions here
- You can set
- Year 2038 Problem
- Method Sets
- mapstructure -
map[string]any
-> struct - Server Side Events in Go
- Chunked Transfer Encoding
- JSON Lines
- HTTP Status Cats
- Fixing For Loops in Go 1.22
- JSON - The Fine Print
- Benchmarking & profiling
- tokenizer
- Performance tips & tricks
- Optimizing memory
- tokenizer - Benchmark, profile, CPU & memory
- store - cache & serialization
- matrix - CPU cache friendly
- playground - This & that ☺
- The Architecture of Open Source Applications - Including a book on performance
- Plain Text - Fun talk about Unicode
- Regular Expression Matching Can Be Simple And Fast
- Locality of Behaviour
- Rules of Optimization Club
- Computer Latency at Human Scale
- So you wanna go fast
- High Performance Go
- Miki's Optimization Overview
- A Benchmarking Checklist
- A Guide to the Go Garbage Collector
- hey
- Garbage Collection In Go : Part I - Semantics
- benchstat
- Channel semantics
- Goroutine pools
- The "sync" & "sync/atomic" packages
- Handling panics in goroutines
-
counter.go - The race detector, mutex,
sync/atomic
-
token.go - Refresh token, using
RWMutex
-
token.go - Refresh token, using channels
-
pmap.go - Parallel map
-
payment.go -
sync.Once
-
pool.go - Resource pool &
sync.Pool
-
taxi_check.go - Convert sequential to concurrent, pool
-
go_chan.go - Channel semantics, goroutines
-
worker_pool.go - Goroutine pool, return channel
-
fan_in.go - Fan in pattern
-
panic.go - Guarding against panics
- automaxprocs
- x/time/rate - Rate limiter
- The race detector
- errgroup
- Data Race Patterns in Go
- Go Concurrency Patterns: Pipelines and cancellation
- Go Concurrency Patterns: Context
- Curious Channels
- The Behavior of Channels
- Channel Semantics
- Why are there nil channels in Go?
- Amdahl's Law - Limits of concurrency
- Computer Latency at Human Scale
- Concurrency is not Parallelism by Rob Pike
- Scheduling in Go by Bill Kennedy
- conc: better structured concurrency for go
- GopherCon Israel 2025 Videos
- lru-cache
- singleflight
- huh - UI in terminal
- Uses bubbletea
- Pointer vs value semantics
- Embedding structs
- Interfaces in depth
- The empty interface and type assertions
- Iterators
-
driver.go - Why you can't do inheritance
-
game.go - Structs, methods & interfaces
-
error.go - When an interface is nil
-
sha1.go - Combining io.Reader & io.Writer
-
wc.go - Implement io.Writer
-
logger.go - Keeping interface small with reflection
-
site.go - Sub routers
-
client_test.go - Mocking http.RoundTripper
-
empty.go - The empty interface (
any
) -
stats.go - Generics
-
iter.go - Iterators
- Feynman Algorithm
- Generics can make your Go code slower
- Coroutines for Go by Russ Cox
- sort examples - Read and try to understand
- When to use generics
- Generics tutorial
- Generic Interfaces
- Methods, interfaces & embedded types in Go
- Methods & Interfaces in the Go tour
- wrapMiddle in Ardan Labs service
- chi - Example of chaining middleware
- List of file signatures
- Method Sets