An Engineer's musings
Notes on building software — languages, tooling, and how things work under the hood, with the occasional tangent. Kotlin and the JVM show up often, but each post is really just a careful look at an idea worth understanding.
Latest posts
-
I Stopped My 2019 Intel MacBook Pro From Bleeding Battery Overnight — Here's What Actually Worked An Intel Mac draining ~28% overnight wasn't the failing battery — it was one Continuity feature holding the CPU awake. The one-toggle fix, with measured results. -
Diagnosing a Sluggish Intel Mac: A Field Manual Eight terminal commands that tell you why an Intel Mac feels slow — swap, memory pressure, runaway CPU, rogue VMs, and sleep blockers — and how to read each one. -
Coroutines: Asynchronous Code That Reads Like It Isn't An introduction to Kotlin coroutines — suspend functions, why they read sequentially, structured concurrency with async and await, and what suspension actually does. -
Operator Overloading, Kept on a Leash Kotlin allows operator overloading but only through a fixed set of conventionally-named functions: plus, get, invoke, contains, and friends — power with guardrails. -
let, run, apply, also, with: Picking the Right Scope Function The five scope functions decided by two questions — how the object is referenced (this or it) and what the block returns (the result or the object itself).