#projectlighthouse
- Go bindings to systemd socket activation, journal, D-Bus, and unit files
- The One Billion Row Challenge in Go: from 1m45s to 3.4s in nine solutions
./go-1brc -cpuprofile=cpu.prof -revision=1 measurements-10000000.txt >measurements-10000000.outtalk about profiling after some time
- Context is an important thing
- Project [[Distributed Message Queue]] with UI
- Profiling
- What is Go bad at
- Introduction to Go / Why Golang / Consider Golang
- Setting up environment
- Go 101: Values, Variables & Data Types
- Sclar data types
- int, float, rune
- Compound data types
- Array, slice, map
- Overflow issue
- Sclar data types
- Go 101: Control Flow (if-then-else, switch), loops
- Go 101: Functions
- Go 101: Error handling
- fmt.Errorf()
- Errors wrap
- Go 101: Write a program (morse code LED)
- Some stuff about golang, difference in make(), var and :=
- Go 101: Introduction to package 9. Show golang package 10. Show cloudflare package
- Read from a file, introduction to structs, do some basic aggregation like counting lines
- Introduction to testing (simple)
- When we need to have different operations, make it a CLI, add flags
- Proper error handling, testing, proper exit codes (refer HTTP Status Codes along, what should we do here)?
- Unicode and runes, handling multiple erros, Decoupling & io.Reader
- Read large file
- Parallelisim
- Introuduction to concurrency, channels, mutex
- Make the concurrent one parallel
- profiling tool
Keep it simple :) Write a program. This chapter must focus more on mutex and similar concurrency related topics.
- Create an HTTP server
- Json encoding, http handleFunc, make sure to mention return when there is early return
- Proper HTTP error handling
Web app for pokemon game!
- REST Api
- gRPC (auth server)
- Containers & Production Grade Containers
- E2E testing
- RBAC
- Automated API documentation
- Kubernetes
- Production grade kubernetes deployment
- Rollback strategies
- CORS
- Proper HTTP headers, proper content type
- Caching
- Compression
- Concurrent connections, request body
- Structured logging + contextual logging
- Log levels
- Centralised logging
- Sensitive data protection
- Key metrics: RPS, Error rate, Latency, Resource usage
- Prometheus, Grafana
- Alerting
- LB
Another branch will start in data structures and algorithms. This branch will show Arrays, linked lists, recursion, sorting, binary search tree, trees, backtracking, hashmap, DP, graphs and bit manipulation