Deep dives on building software — from the cluster up to the agent.
I’m Raveesh, a full stack builder. I run a Kubernetes cluster on my desk, build with MCP and agentic AI, and write down what I learn — in depth, with the code. More about me →
Kubernetes and Cloud Native
Kubernetes, homelabs and the CNCF landscape — run for real.
MCP and Agentic AI
The Model Context Protocol and AAIF projects.
Becoming a Full Stack Builder
The craft, and what it means if you are just starting out.
Experiments with Distributed Systems
Scale, and deep dives into how distributed systems behave.
Commerce and Agentic Commerce
Commerce systems, and what changes when agents become the buyers.
Latest
-
[dedo] 8: Dedo Breaking Rules
buf breaking compares descriptors, never option values, so a removed scope, a moved REST path or a renamed event type passes it. dedo v0.32.2 adds ten breaking rules for what Buf cannot see, and lets you write your own as…
More writing
-

What the Go Linker Does
What cmd/link does at the end of every go build, when linking actually happens, and why anything passed to -X can be…
-
![[dedo] 7: Forking dedo (You Probably Don’t Need To)](https://raveesh.me/wp-content/uploads/sites/2/2026/11/dedo-07-fork-hero.png)
[dedo] 7: Forking dedo (You Probably Don’t Need To)
You almost certainly don’t need to fork dedo: your conventions live in dedo.yaml, and everything you install is already pinned. If your…
-
![[dedo] 6: How fast is Dedo?](https://raveesh.me/wp-content/uploads/sites/2/2026/10/dedo-speed-v3-cores-rps.png)
[dedo] 6: How fast is Dedo?
dedo v0.15.0, measured from scratch: an MCP server in three commands, a house rule in five lines, 338 lint rules in 0.32…
-
![[dedo] 4: House Rules, Your Rules as Lint](https://raveesh.me/wp-content/uploads/sites/2/2026/11/dedo-04-hero-v0.32.png)
[dedo] 4: House Rules, Your Rules as Lint
Every organisation has conventions no public standard knows about. dedo lets you write them as CEL checks in dedo.yaml, share them from…
-
![[dedo] 3: Adding dedo to an Existing Service](https://raveesh.me/wp-content/uploads/sites/2/2026/10/dedo-03-hero.png)
[dedo] 3: Adding dedo to an Existing Service
dedo installs one layer at a time: annotations, lint, generators, runtime. Each layer pays for itself. Audit before you enforce.
-
![[dedo] 2: Getting Started: Todo Good and Todo Bad](https://raveesh.me/wp-content/uploads/sites/2/2026/10/dedo-02-hero.png)
[dedo] 2: Getting Started: Todo Good and Todo Bad
Two to-do services with the same interface. One follows every rule. One breaks every rule, and its tests show what each mistake…
-
![[dedo] 1: Define Once, Deploy Everywhere](https://raveesh.me/wp-content/uploads/sites/2/2026/10/dedo-01-hero.png)
[dedo] 1: Define Once, Deploy Everywhere
One .proto file can carry an API’s contract and its operational rules. A linter can make good architecture the easy path. This…
-

Why Is It v1 for a Namespace but apps/v1 for a Deployment?
If you’ve written more than a couple of Kubernetes manifests, you’ve probably copy-pasted these lines without thinking too hard about them:
![[dedo] 8: Dedo Breaking Rules](https://raveesh.me/wp-content/uploads/sites/2/2026/11/dedo-08-breaking-hero.png)
![[dedo] 5: Multi-Tenant SaaS Auth](https://raveesh.me/wp-content/uploads/sites/2/2026/10/dedo-05-hero.png)