Millie K Advanced Golang Programming 2024 | Work
Deep Write-Up: Millie K – Advanced Go Programming 2024
Project B: eBPF Integration with Go
Learn to attach Golang userspace programs to eBPF hooks in the Linux kernel. Monitor network packets or filesystem changes without modifying application code.
Target Audience
- Senior backend engineers building low-latency trading systems or SRE tooling.
- Open-source maintainers of Go infrastructure (e.g., proxies, databases, schedulers).
- Developers transitioning from Rust/C++ who need Go’s GC but refuse to sacrifice predictability.
7. Expected Outcomes
Upon completion, participants will be able to: millie k advanced golang programming 2024
- Diagnose and resolve concurrency bugs with confidence.
- Optimize CPU and memory usage using profiling tools.
- Design reusable, generic libraries without sacrificing performance.
- Implement production-ready observability (logs, metrics, traces).
- Understand Go runtime decisions (scheduling, GC) to write more predictable code.
Project A: The Event Sourcing Engine
Build an event store that processes 1 million events/second using: Deep Write-Up: Millie K – Advanced Go Programming
- Partitioned channels with priority queues.
- Write-ahead logs (WAL) with
mmap syscalls.
- Snapshotting for state recovery.
Module 1: The Runtime & Memory Model Deep Dive
To write high-performance Go, one must understand the cost of abstraction. SQL: use database/sql with prepared statements
5. Testing, fuzzing, and contract tests
- Table-driven tests: concise, maintainable cases with descriptive names.
- Property-based testing & fuzzing: use go test -fuzz for inputs; integrate with CI.
- Mocking: prefer dependency injection and small interfaces; use generated mocks (mockgen) for complex cases.
- Integration tests: run against ephemeral containers (testcontainers) or local in-memory alternatives.
- Golden files & contract tests: validate API responses, protobuf compatibility checks.
7. Databases & persistence
- SQL: use database/sql with prepared statements, context, and sqlx or ent (ORM/graph-based) for mapping.
- Transactions: keep transactions short; retry idempotent ops with exponential backoff.
- Connection pools: tune MaxOpenConns/MaxIdleConns to match DB and app concurrency.
- Migrations: use tools like goose, migrate; embed SQL-migrations or use go:embed.
- NoSQL: use idiomatic drivers, consider consistency/latency tradeoffs.
Module 2: Advanced Concurrency Patterns
Concurrency is Go’s selling point, but advanced usage requires strict discipline to prevent leaks and race conditions.