writing

Everything long-form, newest first.

Custom roles in a nutshell

Built-in Azure roles are cut for jobs, not tasks. How to find the few actions a task needs, why the first custom role gets made by hand, and how to move role definitions into Terraform with an identity of their own.2026-10-21 · 11 minazureidentityrbacterraform

Privileged access with PIM

Eligible instead of member, the activation policy and what it asks of the person activating, the three PIM systems that share a name, and why the approval step cannot be automated, only made faster.2026-09-25 · 14 minazureidentityrbacgovernance

Security groups at scale

Assigned versus dynamic membership, nesting that keeps the group count sane, groups managed from Terraform by convention, and the line between creating groups and managing who is in them.2026-09-18 · 13 minazureidentityrbacterraform

Azure identity, from startup to enterprise

Permissions inherit downward and nothing lower takes them back. That one rule decides when direct assignments stop working, when you need security groups, and when you need PIM and administrative units. A maturity ladder with the symptoms that tell you which rung you are on.2026-09-11 · 12 minazureidentityrbacgovernance

The 14-day soak window

Why we deliberately wait 14 days before adopting any new dependency version, how security advisories bypass the hold, and what the delay actually costs.2026-05-22 · 2 minrenovategovernance

How AI grows me

Coding gives you reps every day. Architecture and leadership do not. Thirteen architecture katas, a leadership trainer that role-plays the hard conversation back at you, and a Friday audit that refuses the phrase "good week" without evidence.2026-05-15 · 7 minaiworkflow

How AI knows me

Four layers that make an AI assistant useful across four roles: a learned-instincts loop, a brand-voice profile built from 300 Slack messages, auto-detected operating modes, and the ten guardrail sections nobody talks about.2026-04-27 · 5 minaiworkflow