Writing
Blog.
Thoughts on infrastructure, cloud, and engineering
- Articles 26
- Total Views 1,545
- Avg. Read 8 min
- Topics 56
Featured Article
- design-systems
- frontend
- architecture
- ui
Everything I Know About Style Guides, Component Libraries, and Design Systems
A deep dive into creating scalable design systems and component libraries that help teams build consistent, maintainable, and beautiful user interfaces.
All articles
25
- Jul 25, 2026 argocd
Argo CD config management plugins: the escape hatch I keep reaching for
Notes from wiring CMP sidecars into a GPU fleet rollout: what plugin.yaml actually does, a SOPS plugin and a CUE plugin that earn their keep, and the ways all of this bites in production.
11 min read 27 views - Jun 27, 2026 sre
Five nines is a boring number
Five nines is 5.26 minutes of downtime a year, which rules out heroics by arithmetic. Looking back two years later at what actually moved the number, what only looked like reliability work, and why almost all of it came from changing client behavior rather than adding capacity.
9 min read 31 views - Jun 13, 2026 ebpf
eBPF on a robot fleet at under 1% CPU
Notes on a Rust and Aya agent that captured scheduler, disk, and socket metrics across a fleet of warehouse robots: why devices are the worst observability target, how the CPU budget became a test, and the map that filled up and made everything look wonderful.
10 min read 42 views - May 23, 2026 cue
MIG profiles are a bin-packing problem you solve with types
GPU partitioning config is a combinatorial mess where a wrong answer does not crash, it just leaves very expensive silicon idle. Why Helm values files could not hold it, and what happened when I moved the whole thing into CUE constraints.
8 min read 29 views - May 9, 2026 terraform
Where Terraform ends and Argo CD begins
Two weeks into a lights-out GitOps rewrite for a GPU fleet, the hard question is not which tool to use, it is which tool owns what. The line I drew, the gray zone where every argument actually happens, and why the bootstrap handoff is a real design decision.
9 min read 44 views - Apr 25, 2026 rust
Sub-millisecond overhead at 100K req/s: what Tokio taught me about tail latency
A retrospective on the gRPC gateway I ran at Sales Marker: the p99 budget that shaped every decision, the Tokio habits that held it, and the discovery that our worst tail latency lived in HTTP/2 flow control rather than in our code.
11 min read 34 views - Apr 11, 2026 gpu
The node that lies: cordon, drain, recycle before it corrupts inference
A GPU node with intermittent NVLink faults quietly returned wrong inference results for most of a day without ever failing a health check. This is the controller we built so it cannot happen twice: DCGM signals in, a policy engine deciding cordon versus drain versus recycle, checkpoint-aware draining, and the false positives that cost me eleven nodes.
10 min read 37 views - Mar 22, 2026 gpu
Xid 79 and friends: a field guide to dying GPUs
What Xid errors actually are, which ones mean a GPU is about to die and which ones are just an application bug that wakes you up for nothing, how correctable and uncorrectable ECC differ, why row-remap-pending is the canary, and the dcgm-exporter metrics and alert rules I settled on.
11 min read 42 views - Mar 8, 2026 gpu
First month with a 10 MW GPU fleet: everything I had to unlearn
Notes from five weeks on an accelerator fleet: why compute measured in megawatts breaks CPU-land instincts, what DCGM and Xid and MIG mean day to day, and the naive question I asked in week one that reframed the whole job.
9 min read 44 views - Feb 21, 2026 kubernetes
A Prometheus metric walks into Karpenter
CPU requests are fiction, so scaling on pending pods is scaling on fiction. Notes on a small controller that fed real Prometheus signals into Karpenter capacity, held 99.99% at 98% utilization, and flapped badly before it did.
9 min read 42 views - Feb 7, 2026 observability
Leaving Datadog at 2 TB/hour: the bill that made us build our own
The renewal quote that started it, the order we migrated in (Loki, then Mimir, then Tempo), everything that broke on the way, and the honest ledger with hindsight.
10 min read 52 views - Dec 30, 2025 year-in-review
2025 in review: two thousand vCPUs and one quiet pager
A year-ender written in an empty Tokyo office: the numbers that held, the two things I shipped that mattered, the failure I did not see coming, and what has been pulling at my curiosity all year.
7 min read 50 views - Dec 21, 2025 advent-of-code
Advent of Code as a performance sport
Puzzles unlock at 2pm in Tokyo, which makes December a lunch-break sport. Notes on the rig, the day 15 run that finished second globally, and why unreadable code is fine for exactly one month a year.
7 min read 52 views - Nov 8, 2025 observability
Self-hosting LGTM, one year in: the honest ledger
A year of running Loki, Mimir and Tempo ourselves at over 2 TB an hour: what the infrastructure actually costs, how much upgrade toil is real, what it feels like to be on call for your own observability, and what I would do differently.
9 min read 65 views - Sep 20, 2025 hiring
Interviewing SREs in Tokyo: what I actually ask
Two years on the hiring side of an SRE loop in Tokyo: the questions I dropped, the four I kept, and what a candidate correcting themselves twenty minutes late taught me about signal.
9 min read 72 views - Aug 9, 2025 sre
Teaching deploys to read the SLO first
A single deploy ate a third of a monthly error budget in fifty minutes. So I wired multi-window burn-rate queries into the pipeline as a promotion gate, plus a watcher that reverts on fast burn. Honest notes on what it catches and where it is still duct tape.
8 min read 60 views - Jun 28, 2025 kubernetes
98% utilization without paging anyone
Idle capacity is organizational anxiety, billed hourly. How priority classes, bin-packing discipline and a predictive capacity loop let us run a 2000 vCPU estate near full without trading away availability.
8 min read 68 views - May 17, 2025 rust
Rust is my infrastructure language and I'm done apologizing for it
The stock objections to Rust in infrastructure, answered from three systems I actually shipped: a rate limiter, an eBPF agent on a robot fleet, and the gRPC gateway I run today. Including the places I still reach for Go and Python.
8 min read 65 views - Apr 5, 2025 sre
The router that failed over by itself
Why we put a layer-4 router under long-lived gRPC traffic instead of another L7 proxy, and why the routing was the easy part. Health scoring, split-brain protection, failback hysteresis, and the AZ brownout we found out about from a graph at standup.
9 min read 68 views - Feb 22, 2025 prometheus
Every exporter is a liability
An exporter is production code with a scrape target stapled to it, and most teams audit neither half. Notes from running a 50K samples/second metrics pipeline: the cardinality incident, drop rules that actually work, and the quality bar I ended up enforcing.
9 min read 79 views - Jan 18, 2025 competitive-programming
Competitive programming made me a worse engineer, then a better one
Contests gave me habits that broke production code and instincts that now save it. A story about a rate limiter I could not read, and what I kept after I stopped writing like a contestant.
8 min read 76 views - Dec 8, 2024 kubernetes
Kubernetes Networking Deep Dive: Understanding Service Types
A comprehensive guide to Kubernetes networking and all service types with detailed explanations, use cases, and architecture diagrams.
6 min read 90 views - Mar 10, 2024 react
Past, Present, and Future of React State Management
A comprehensive look at the evolution of state management in React applications, from Redux to React Server Components.
2 min read 85 views - Feb 20, 2024 rust
Rust Is The Future of JavaScript Infrastructure
Why Rust is taking over the JavaScript tooling ecosystem, and what this means for web developers.
3 min read 97 views - Mar 23, 2023 introduction
Welcome to my new blog!
Introducing the new blog - A journey into AI, ML, and software engineering.
5 min read 94 views