Skip to main content

Editorial index

Archive

Every published note in reverse chronological order. Use topic hubs when you want a curated path; use this page when you want the full timeline.

42 postsNewest first

All posts

  1. POC public vs MVP private: networking as architecture for agent apps

    How to stage agent webapps from a public POC to a private MVP without pretending env files are a network design.

  2. Rename the estate once: workspace naming is architecture

    Argue that inconsistent workspace display-name prefixes create operational tax and that a one-time rename with stable catalog names is cheaper than perpetual translation layers.

  3. Env files are not environments: isolate with Azure CLI discipline

    Show how collapsing redundant env templates and treating Azure CLI subscriptions/resource groups as the real isolation boundary prevents POC/MVP config drift.

  4. Language gates belong in CI, not in code review folklore

    Argue for native CI linters and language test gates so white-label and locale regressions fail the build before demos do.

  5. Feature toggles beat hard-coded agent IDs

    Replace hard-coded agent catalogs with product feature flags plus per-agent overlay rows for scope, starters, export prefixes, and access arrays.

  6. Genie readiness is a modeling problem, not a prompt problem

    What has to be true in naming, modeling, and catalog descriptions before conversational analytics tools like Genie produce trustworthy answers.

  7. Type each column once, as early as you dare

    Argue for typing published columns in bronze (or the earliest stable layer) and banning ritual CAST in silver and gold.

  8. Signing in is not authorization: app access is not agent access

    Why enterprise agent webapps need separate control planes for shell sign-in, agent catalog access, and knowledge corpus entitlements, and how Entra app roles on the API make that enforceable.

  9. Canvas apps at platform scale: push work to Dataverse

    How to keep canvas apps maintainable at scale by following Microsoft reference guidance: fewer mega-screens, less chatty data access, more Dataverse-side work.

  10. Legacy to lakehouse: semantic parity is the real migration

    Why lakehouse migrations fail on NULL versus zero, float pennies, and type rebase settings, and how to treat parity as a contract.

  11. AI import UX is governance: default-deny uncertain rows

    Generalize section-aware AI import so uncertain matches stay deselected by default and users must opt in to incomplete rows.

  12. Row counts lie: validate MLVs column by column

    Push migration checklists to per-column tables and type-aware aggregates so MLV cutovers catch semantic drift early.

  13. SCD2 is a product question: point-in-time deployed state with MLVs

    Explain why location and classification history for measuring points should be SCD2 Materialized Lake Views before anyone builds devices as of reports.

  14. Most NEE warnings are noise: measure real MLV wall-clock

    Teach teams to measure where MLV DAG time actually goes and fix only actionable native-execution engine fallbacks.

  15. Fabric CI/CD blast radius: when no changes still deploys

    Why Fabric deployment tooling can republish unchanged notebooks and how to design for stable identities and smaller blast radius.

  16. Semantic refresh architecture: notebooks, pipelines, and Direct Lake

    How to choose notebook, pipeline, or scheduled refresh for lakehouse semantics, and when Direct Lake beats a SQL endpoint for heavy facts.

  17. One Fabric lakehouse with schemas vs many lakehouses

    How to choose between multiple Fabric lakehouses and a schema-enabled lakehouse for bronze, silver, and gold, including CI/CD and naming fallout.

  18. Knowledge RBAC for enterprise agents: same gates for chat, browse, and citations

    How to design folder-scoped knowledge access for enterprise agents so chat, library browse, downloads, and citation PDFs share one entitlement model.

  19. Consolidate Fabric monitoring into one operable skill

    Show why scattered Fabric monitor scripts should become one skill/runbook interface for humans and coding agents.

  20. MLV migration is a program: bronze to silver to gold with gates

    Frame hundreds of T-SQL warehouse views moving to MLVs as a phased program with schema-enabled lakehouses, shortcut layouts, and POC gates before bulk conversion.

  21. Bulk reload is an orchestration problem, not a bigger VM wish

    Explain batched parallel page ingest for large ledger entities so full reloads finish without driver OOM.

  22. If you cannot explain the tool calls, you do not have an agent product

    Argue that activity timelines must reconcile Foundry traces, MCP knowledge searches, and UI tool-call counts, or support will never trust the product.

  23. Pilot the use case, not the agent catalog

    Make the case that enterprise agent programs should start from ranked use cases (orchestrator vs single agent vs tools) instead of from a menu of model endpoints.

  24. Agent sessions vs the shell app: what should survive refresh

    Where conversation state should live when a browser shell wraps a platform agent, and why refresh and quit behavior is an architecture choice.

  25. Refresh drift is a contract break, not a flaky pipeline

    Diagnose sales-line style refresh drift as mismatched incremental contracts between notebooks, watermarks, and semantic consumers.

  26. Foundry webapps deploy as identity and egress, not as Node hostnames

    Walk through a VNet-integrated container App Service pattern with secretless OBO, managed identity, and private egress to Foundry, Search, and storage.

  27. The AI shell proxy is a security boundary

    Compare hardening options for browser-to-API proxies in front of agent backends, including runtime mismatch and Front Door failure modes.

  28. PII redaction belongs in the notebook config, not in tribal knowledge

    Show how a reusable notebook-level redaction contract (flags, tokens, regex, known-name UDF) makes free-text exports safe without blanking legitimate addresses and codes.

  29. Pivot once in gold: measurable controls as a flat fact

    Replace OUTER APPLY Import-mode checklist pivots with a pre-pivoted gold fact built in PySpark for Direct Lake.

  30. Matching relationship types is cheaper than debugging blank visuals

    Show how int64 vs string mismatches across role-playing dims silently break relationships and how to align gold SQL with TMDL.

  31. IoT events are facts: model them like service, not like logs

    Show why telemetry events belong in gold with contract and service-item enrichment and Direct Lake storage mode for volume.

  32. Shortcuts-only bronze: stop copying what OneLake already holds

    Argue that bronze should be a contract of OneLake shortcuts and clean views, not a second physical copy of upstream gold and silver.

  33. When warehouse views time out, materialize the trunk not the leaves

    Propose a layered performance playbook: drop orphans, cheap rewrites, then materialize the two or three consolidations everything else depends on.

  34. When Fabric regressions force literal OneLake URLs, document the workaround

    Reframe literal URL required failures as service regressions with validators, promotion playbooks, and support cases - not as eternal architecture dogma.

  35. Variable Library is your environment map, not a sticky note

    Use a Git-tracked Fabric Variable Library with per-stage value sets so rebind notebooks and pipelines stop hard-coding workspace IDs.

  36. Bridge keys before dashboards: remodel the device fact

    Show why service-device relationships need an explicit bridge/fact remodel before report pages can be trusted.

  37. Lineage explorers beat tribal notebooks

    Argue for a small lineage explorer over ad-hoc pipeline docs so engineers can see dependencies before they break them.

  38. Gold without a semantic contract is just another table

    Argue that device gold tables only become platform assets when unmatched keys, captions, and relationships are explicit in the semantic model.

  39. Can Databricks Genie Build My Deck and Deploy My App?

    What Databricks Genie Code actually changes for deck generation and app deploy when the assistant already sits inside your governed lakehouse context.

  40. Image Classification Web App with Azure AI Services

    How to shape an image classification web app on Azure AI Services so the UI stays simple, the backend stays operable, and Custom Vision iteration does not become a demo trap.

  41. Real-time Motion Tracking and Pose Estimation

    Why real-time pose estimation is a systems problem of capture, inference, and rendering, and how to design for latency, stability, and demos that survive messy video.

  42. Automate Your Microsoft Fabric Workloads with Apache Airflow

    Why Fabric workloads need an explicit orchestration plane, how to keep Airflow thin while Fabric owns the data work, and which failure modes show up when teams collapse both into one tool.