Blog
Deep dives, not overviews
Articles on Power BI, DAX, TMDL, Row-Level Security, and Microsoft Fabric — written for people who already know what a semantic model is.
PL-300 Episode 3: Design the Data Model
PL-300 Episode 3: star, snowflake and galaxy schemas, properties, relationships, role-playing dimensions, date tables, calculated columns and tables, with M and DAX.
DP-700 Episode 5: Loading Patterns & Choosing Tools
DP-700 study guide to loading data in Fabric: full and incremental loads, dimensional models, streaming patterns, and how to choose a data store and transformation tool.
DP-700 Episode 4: Orchestrate Processes
DP-700 study guide to orchestration in Fabric: Dataflow Gen2 vs pipeline vs notebook, schedules, event triggers, parameters, expressions and notebook patterns.
PL-300 Episode 2: Transform & Load Data in Power Query
PL-300 Episode 2: set data types, add columns, group, pivot, unpivot, append, merge, build fact and dimension tables, and choose what loads, with screenshots.
DP-700 Episode 3: Security & Governance
DP-700 study guide to Fabric security: workspace and item access, RLS, CLS, OLS, folder access, masking, sensitivity labels, endorsement, audit logs and OneLake security.
DP-700 Episode 2: Lifecycle Management
DP-700 study guide to Git version control, warehouse database projects and deployment pipelines in Fabric, with 12 diagrams, exam traps and practice scenarios.
Spark Basics
Spark explained in plain English: rows, columns, partitions, lazy plans, shuffles and everyday terms, shown on one small table with 11 visuals.
From Connection to Confidence: Getting, Connecting & Profiling Data in Power BI
Microsoft Data Days 2026 | PL-300 Certification Series — Part 01
DP-700: Fabric Overview & Workspace Settings
DP-700 study guide for Spark, domain, OneLake and Apache Airflow workspace settings in Fabric, with ten diagrams, exam traps and practice scenarios.
Fabric Overview, Domains, Workspaces & OneLake
Fabric in four ideas: the platform, domains for ownership, workspaces for access and OneLake for storage, explained with eight diagrams and a cheat sheet.
Why Your Fabric Data Agent Gives Wrong Answers (And How Data Enrichment Fixes It)
A practical look at descriptions and synonyms in Power BI semantic models — and what's actually happening under the hood
Building a Better Microsoft Fabric Data Agent: Instructions, Visual Policy, and Cost-Aware Design
Connecting a semantic model to a Fabric Data Agent is the easy part. The real work starts when the agent needs to understand what your business actually means.
From Demo to Reusable Framework: Translytical Write-Back in Power BI
How I combined Power BI task flows, Fabric User Data Functions and versioned SQL storage to build commentary that works at any business grain.
Building a Generic Power BI Commentary Writeback Framework with Fabric User Data Functions and Databricks in a Composite Model
A practical pattern for adding governed, auditable writeback commentary to Power BI using Fabric User Data Functions and Databricks. We can also leverage Fabric Warehouse or any other DB.
Microsoft Fabric Data Agent Security: What Actually Protects Your Data?
RLS, CLS, OLS, identity, permissions, and why prompt instructions should never become your security boundary.
Microsoft Fabric Data Agent Governance: From POC to Production
Securing the data is only the beginning. Production Data Agents also need controlled identities, lifecycle management, evaluation, privacy, networking, and change governance.
Import vs. DirectQuery vs. Direct Lake
What each storage mode actually does under the hood, and how to pick one for a model instead of defaulting to Import out of habit.
DAX Filter Modifier Functions
ALL, ALLEXCEPT, ALLSELECTED, KEEPFILTERS, and REMOVEFILTERS: what each one actually changes about the filter context, and the mistake that trips people up.
Power Query: Append vs. Merge Query
Two ways to combine queries that look similar and aren't — when each one is the right, and only, choice.