Miki Tebeka ๐ฌ [email protected], ๐ @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
GOROOTto~/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
- Creating go executables
- Injecting version
- Embedding assets
- Configuration & command line parsing
- Logging & metrics
- Writing secure Go code
-
collatz - Debugging goroutines
-
gosay - Building executables
-
spinner.go - Terminal spinner
-
grep.go - Terminal and command line
-
logging.go - Logging
-
log_design.go - Logger design
-
Using ldflags to Set Version Information for Go Applications
-
svu - Bump version
-
Command line & Options
-
Security
-
Reversim Summit - October 27,28
-
Knight Capital Group - Cost of configuration error
-
Generating Code -
go:generate -
embed package
-
Leek & Seek - A lot of diagnostic advices and tools
-
Diagnostics in the Go docs
-
Security Linters
-
Certificates
- mkcert for local development
- letsencrypt - Free certificates
-
OPA - Authorization
-
Validation
-
Code Structure
-
ANSI escape code - Colors in your terminal
-
libffi - Scary C code
- Does FFI
-
Terminals supporting graphics