Writing

Blogs, four maintained guides, a monthly newsletter and short videos on Power BI and Microsoft Fabric, all from client work.

  • Guide · Microsoft FabricSetting up DevOps for Microsoft Fabric

    Everything a Fabric team sets up on both sides, the tenant settings and workspaces in Fabric and the service principal and pipeline in Azure, taught through one worked example.

  • Guide · Microsoft FabricDeployment patterns for Microsoft Fabric and Power BI

    Five ways work reaches production, from a single workspace to a build that deploys from a repository, with the chooser, what each one costs, and the signal that you have outgrown it.

  • Guide · Microsoft FabricFabric workspace architecture patterns

    Six workspace patterns, from per-user Power BI licences to a federated domain mesh, with a chooser, the trade-offs, and the point at which each one breaks down.

  • Guide · Microsoft FabricA complete naming convention for Microsoft Fabric

    One naming pattern covering every Fabric item type, every pipeline activity, and the variables, parameters and connections most conventions leave out.

  • Blog · Microsoft FabricHow I make a semantic model Copilot-ready

    A small open-source toolkit for making Microsoft Fabric semantic models Copilot-ready, rule-based descriptions, synonyms, safe renames, no AI calls.

  • Blog · Microsoft FabricHow I add descriptions and synonyms to a model

    A rule-based generator that adds plain-English descriptions and synonyms to a Fabric semantic model: safe, reviewable, and Copilot-ready in an afternoon.

  • Blog · Microsoft FabricHow I rename a published model safely

    Rename objects on a published Microsoft Fabric semantic model safely, with impact reports, DAX validation, and connected reports rewritten end-to-end.

  • Blog · Microsoft FabricDirect Lake on OneLake just went GA. Here's how I'd audit and migrate.

    Direct Lake on OneLake hit GA this month. The two flavours, the security shift you can't roll back, and a safe audit-validate-migrate workflow with