[ SECURITYLAB ]

SecurityLab track — runtime and distributed systems, kernel debugging, eBPF, Go concurrency, memory models, bootloaders, and assembly walkthroughs. Code-first, source-cited, mechanism-deep.

Long-form writing and video on runtime, distributed systems, and kernel internals — the layers below the application where most production reliability is actually decided.

Topics: Go runtime and concurrency, distributed systems patterns (RPC, queues, idempotency), kernel debugging with GDB/QEMU, eBPF, memory models, bootloaders, and assembly walkthroughs.

Companion to the HarrisonSecurityLab YouTube channel. Blog and video are listed below — most recent first.

Blog
Go Generics, One Year In: Which Promises Held, Which Didn't

Go Generics, One Year In: Which Promises Held, Which Didn't

Go 1.18 shipped generics in March 2022. Four years later, the honest picture: they're useful for a narrower set of problems than the community hoped, they fit naturally in a few places, and overuse them and your code gets worse. A production retrospective.

2026-03-18 8 min read
Blog
Go Profiling in Anger: pprof, Escape Analysis, and Inlining Without Magic

Go Profiling in Anger: pprof, Escape Analysis, and Inlining Without Magic

Most performance advice for Go is ritual — 'use sync.Pool,' 'avoid interface boxing,' 'preallocate slices.' Useful sometimes, hollow often. A production engineer's guide to profiling Go systems with pprof, reading escape analysis output, and understanding when the compiler actually inlines.

2026-03-12 8 min read
Blog
NATS vs Kafka vs MQTT: Same Category, Very Different Jobs

NATS vs Kafka vs MQTT: Same Category, Very Different Jobs

All three are 'messaging systems.' None of them is interchangeable with the others. A practical breakdown of NATS, Kafka, and MQTT — by the actual design axes that determine which one breaks when you misuse it.

2026-02-24 9 min read
Blog
Scale-Up vs Scale-Out: Why Every Language Wins Somewhere

Scale-Up vs Scale-Out: Why Every Language Wins Somewhere

The 'which language is fastest' benchmark wars miss the real question. Rust, Go, Java, and Python aren't competing on the same axis. They're tuned for different scaling strategies — and picking the wrong one costs you years.

2026-02-20 9 min read
Blog
Testing Real-World Go Backends Isn't What Many People Think

Testing Real-World Go Backends Isn't What Many People Think

The unit-vs-integration framing is a junior lens. Production Go backends need a different taxonomy: deterministic tests, contract tests, race tests, and fidelity tests. The ones that actually catch production bugs.

2026-02-18 10 min read