Ken Muse
Pinning VS Code Extensions to Fight Supply Chain Attacks
When the axios npm library was compromised in March 2026, it reminded me that the dependencies we trust every day can turn on us without warning. That got me thinking – what about the extensions running in my IDE? They auto-update silently, they have access to my filesystem and credentials, and I never review the changes. If you’ve ever updated a tool without a second thought, this post is for you.

Read this article

Rootless Docker and Its Hidden Security Trade-Offs
Rootless Docker sounds like the perfect answer to container security – no more root daemon, no more worry. If you look at how it actually works under the hood, the story is more nuanced than most teams realize. In this post, I walk through user namespaces and UID mapping, dig into why kernel developers have concerns about the attack surface, and explain what you’re actually giving up when you enable rootless and set seccomp=unconfined and apparmor=unconfined.

Read this article

How Docker Uses Root Privileges
Ever wondered what’s really happening when Docker runs your containers? It turns out the daemon needs some serious privileges to do its job. I wrote this post to trace the path from the Docker daemon through the Unix socket, image builds, and BuildKit – showing you exactly where root access comes into play and why every step depends on it.

Read this article

Building Container Isolation From the Linux Kernel Up
Ever wondered why Docker commands need sudo or docker group membership? The answer is baked into the Linux kernel itself. I wrote this post to peel back the curtain on what a container actually is. You’ll recreate container-style process isolation from scratch using standard command-line tools – building your own namespaces and cgroups by hand to see exactly what’s happening under the hood.

Read this article

How Temperature, Top-K, Top-P, and Min-P Control LLM Output
If you’ve ever adjusted an AI temperature slider without really knowing what it does, you’re not alone. These settings appear across AI tools and model APIs, but the actual mechanics rarely come with a clear explanation beyond “higher is more creative.” I wrote this post to change that. In it, I break down how Large Language Models select their next word, walk through the math behind softmax, and explain how temperature, Top-K, Top-P, and Min-P each shape the output – so you can tune these settings with confidence instead of guessing.

Read this article