My Terminal Tells All
A personal searchable reference of commands I actually use, built from my real zsh history.
Where Prometheus Fails: Catching Kubernetes Restarts in Real Time
Standard Prometheus alerts are great for capacity planning, but they are too slow to catch crash logs in high-churn Kubernetes environments. Here is why and how I built Kivert to solve it.
Kubernetes Init Containers: What the Docs Don't Tell You
Init containers seem simple: they run in order, they finish, and your app starts. But in production, resource shadowing, restart loops, and silent deadlocks can easily trigger an on-call page.
Why Your Client Is Hitting Someone Else's Website
ALBs don’t have static IPs. When AWS recycles your old IP and a client’s DNS cache hasn’t caught up, their requests go to someone else’s workload. Here’s what causes it and how to fix it with IPAM.
Running Kali Inside Claude Code with UTM and MCP
How I got a full Kali Linux environment talking to Claude Code on my Mac, so I can run security tools through an AI that actually understands what it’s doing.
Ship EC2 Logs to CloudWatch Without the Gotchas
The CloudWatch Agent setup is five commands. The reasons it silently fails are what nobody writes about — so here’s the gotchas first, setup second.
Don't Keep Data Forever: A Practical Guide to Database TTLs
Sessions, OTPs, and temporary tokens are piling up in your database right now. Here’s how TTLs let the database clean them up automatically, and why that’s better than every alternative you’ve tried.
How to Give AWS Lambda a Static IP
Lambda’s outbound IPs change every invocation. Here’s the right way to give it a fixed IP using a NAT Gateway, and the common mistakes that will waste your afternoon.
Goodbye, Manual AWS Credentials
How a single command, aws configure sso, ended my twice-daily ritual of copy-pasting AWS credentials and gave me back ten minutes a day.
AWS AssumeRole: The Complete Guide for Cross-Account Access
The complete guide to AWS cross-account access - including trust relationships and IAM permissions both sides need