Karpenter v1 vs Cluster Autoscaler: A Production Migration Story
I’d been running Cluster Autoscaler on our production EKS cluster for years. It worked. It wasn’t exciting, it wasn’t cheap, but it …
Read Article →In-depth guides, insights, and best practices for modern software engineering
I’d been running Cluster Autoscaler on our production EKS cluster for years. It worked. It wasn’t exciting, it wasn’t cheap, but it …
Read Article →Find the longest substring of a string where characters appear in non-decreasing alphabetical order. If two substrings share the maximum …
Read Article →Find the longest substring of a string where characters are in non-decreasing alphabetical order. If multiple substrings share the …
Read Article →Given a lowercase string of letters (no spaces, no digits), return the length of the longest substring made only of vowels (aeiou). …
Given a lowercase string of letters (no spaces, no digits), return the length of the longest substring that contains only vowels (aeiou …
Given a lowercase word, return every permutation of its letters in alphabetical order. Do not use built-in permutation libraries. …
Read Article →Given a word (a string of lowercase letters), return all its permutations in alphabetical order. Do not use built-in permutation …
Read Article →Given a slice of positive integers, return the value with the most digits. If two or more values share the highest digit count, return …
Read Article →Given an array of positive integers, return the number with the most digits. If two or more numbers share the highest digit count, …
Read Article →Given an array of positive integers, return the number with the most digits. If two numbers have the same number of digits, return the …
Read Article →Single-account AWS is a ticking time bomb. I don’t say that lightly. I’ve watched it blow up firsthand, and I’ve spent more hours …
Read Article →eBPF is the biggest shift in Linux observability since strace. I don’t say that lightly. I’ve spent years wiring up monitoring stacks, …
Read Article →Security as a gate at the end of the pipeline is security theater. I’ve believed this for years, but it took watching a real incident unfold to …
Read Article →Tokio is Rust’s killer app for network services. I don’t say that lightly. After spending years building concurrent systems in Go and …
Read Article →You don’t know your system is resilient until you’ve broken it on purpose.
I believed our payment processing service was fault tolerant. …
Read Article →I’m going to say something that’ll upset a lot of people: pandas had its run. Polars is just better.
I don’t mean that lightly. I …
Read Article →I’ve spent years writing Python for DevOps tooling and Go for services. Python is a joy to write but painfully slow for anything compute-heavy. …
Read Article →Gateway API is what Ingress should have been from day one.
I don’t say that lightly. I’ve spent years wrangling Kubernetes Ingress …
Read Article →Bedrock is AWS finally getting AI right. I don’t say that lightly. I’ve watched AWS stumble through SageMaker’s complexity, watched …
Read Article →If you’re not running scheduled terraform plan, you have drift. You just don’t know it yet.
I learned this the hard way. A colleague made …
Read Article →Everything I’ve learned building on AWS since 2012, organized by domain.
This is the hub for everything I’ve written about Kubernetes. Whether you’re setting up your first cluster or optimizing a multi-tenant …
Read Article →I’ve been running Kubernetes in production for years now, and there’s a specific kind of pain that only hits you once you cross the …
Read Article →Last year I ported an image processing pipeline from JavaScript to Rust compiled to WebAssembly. The JS version took 1.2 seconds to apply a chain of …
Read Article →