Go home
Menu

Blog table

I use this view to scan field notes by field-note date, compare tag coverage, and read summaries without opening each post. It also keeps table-shaped operating artifacts out of Markdown.

Field notes

30

Tags in use

16

Latest field note date

Apr 27, 2026

Field notes, sorted newest first by editorial chronology, with summaries and tag links.
Field note date Post
The metadata-driven pipeline decisions I would revisit before moving ADF patterns into Fabric Data Factory

Before moving an ADF metadata framework into Fabric Data Factory, I separate durable operating decisions from platform-specific connections, targets, schedules, and validation.

The checks I add to supply chain data before planners trust it

Before planners use a supply-chain feed, I gate it with freshness, row-count, and business-rule checks for duplicates, UOMs, locations, inventory, lifecycle, demand grain, and RM/FG classification.

Handling late-arriving supply chain data without rewriting history by hand

For late ASN and shipment confirmations, I treat weekly OTIF as preliminary inside a restatement window so routine corrections settle without manual report patching.

The supply chain numbers I define before they reach a business review

Before supply-chain KPIs reach a business review, I define timing, exclusions, grain, owner, and decision use so one label does not hide planning, warehouse, and finance conflicts.

Azure DevOps checks before analytics code reaches production

For analytics repos in Azure DevOps, I want one pre-production record that shows PR validation, dbt compile, changed-scope checks, published evidence, and environment approval before promotion.

What I check before I label a dashboard self-service

I call a dashboard self-service only when a review card makes its question, audience, grain, filters, timing, and “not for” cases visible before broader reuse.

Where Microsoft Fabric fits and where I would keep it out of the critical path

Where I use Microsoft Fabric in a finance and operations reporting path, and where I still keep semantic ownership, transform checks, and the first failure surface explicit before I trust the output.

The Snowflake design choices that make downstream models easier to trust

Snowflake models stay easier to trust when raw landing absorbs source drift, staged tables normalize names and types, and curated models keep row meaning, joins, and recovery boundaries explicit.

What I watch in Snowflake before compute cost becomes a surprise

I investigate Snowflake compute spikes in a fixed order: warehouse metering, idle gap, load, query history, later attribution, and pruning evidence before I start tuning.

The dbt tests I write first for business-critical models

For a business-critical dbt model, I order the first tests by failure cost: grain uniqueness, decision-critical nulls, relationships, domain rules, and business assertions.

The operating spec I want before I trust a business-critical dashboard

I trust a business-critical dashboard more when one short operating spec names the owner, source models, metric note, refresh cutoff, trusted validation slice, known boundaries, and failure path.

How I keep dbt Core deployments boring in production

I keep dbt Core deployments boring with one short deployment record: state reference, selector, target, changed nodes, and promotion result before production moves.

A dashboard release checklist before a BI change goes live

I use a short BI release checklist to compare outputs, review filter and definition changes, confirm sign-off, and keep a rollback path before business-critical dashboard changes go live.

The incident note template I wish every analytics team used

I keep a one-page incident note during analytics incidents so impact, checks, decisions, cause, and prevention stay clear while the KPI is still broken.

Five pipeline observability signals before more orchestration

I use five signals—source freshness, latest publish, runtime, output shape, and owner—to make a missed analytics pipeline cutoff explainable before I add more orchestration.

How I validate a metric after a backfill

I validate a rebuilt metric with a short backfill note, slice-by-slice comparison, and a published restatement boundary before I republish the dashboard.

Every important model needs an explicit grain

How I keep models trustworthy with a simple grain note: row meaning, expected key, safe joins, and the first duplication test I write.

The definition card I use to stop metric drift across dashboards

When one metric starts arguing with itself across dashboards, I use a definition card to decide whether the team needs one owned definition or separate named metrics.

When a dashboard number changes, I check these four things first

When a dashboard number moves without warning, I isolate the failing layer—freshness, row counts, joins, or metric logic—before debating the chart.

Row counts are not enough: the checks I add before I trust a pipeline

The five checks I use before I trust a pipeline: freshness, row counts, uniqueness, null rates, and one business-shape check that tells me whether the published data is safe to use.

The 6-part data contract I want before I trust a source table

My six-part source-table contract covers row meaning, key rule, landing cadence, valid-record handling, correction window, and owner so downstream analytics work does not start with guesses.

The metric ownership review I run before quarter close

Before quarter-close reporting locks, I use a metric ownership review card to make changed definitions, owners, open questions, affected surfaces, and safe-to-lock decisions visible.

How I choose an analytics stack I can debug

I choose an analytics stack I can debug: trace a late run or wrong number back to the landed extract, the logic diff, the metric definition, and the owner.

What I write about: reliable analytics systems that stay explainable

I write about pipeline checks, metric definitions, dashboard trust, and delivery habits that keep analytics systems explainable when numbers move.

The source-trust scorecard I use before promoting a table to production

Before I promote a source table into production dependencies, I score observed cadence, key stability, corrections, null risk, late arrivals, and owner response so the promotion decision is explicit and defensible.

The change log I publish when a backfill moves reported numbers

When a validated backfill moves reported numbers, I publish a change log with affected ranges, expected movement, evidence, sign-off, and interpretation boundaries.

When an analytics incident needs a postmortem, not just a note

I use a simple trigger table to decide when an analytics incident needs a note, a lightweight review, or a full postmortem based on impact, recurrence, exposure, and unresolved prevention work.

The first-response runbook I want behind every analytics SLA alert

I keep a short runbook behind analytics SLA alerts so the first responder can see impact, last success, failed step, source freshness, owner, escalation path, and the stakeholder message before the cutoff is missed.

The schema-change checklist I use before a source breaks downstream models

I use a schema-change checklist to classify additive fields, renames, type changes, dropped fields, and semantic changes before an upstream source breaks downstream models or dashboards.

The evidence packet I want before an analytics release is approved

I use a small analytics release evidence packet to keep changed assets, validation output, owner approval, rollback notes, and stakeholder context together before a decision-critical release goes live.

30 field notes

Pipeline observability example

This is the five-signal panel from The five pipeline observability signals I want before I add more orchestration rendered as a Bearnie table instead of a Markdown table.

A five-signal missed-run panel that shows where to investigate first.
Signal Observed Why it matters
Source extract freshness 06:08 ET source is on time, so I should not start with ingestion
Latest successful publish 2025-12-01 07:14 ET today's publish did not complete
Curated model duration 41 min slowdown is inside the transform or publish path
Output row-count delta +0.4% output shape looks normal, so this is not a missing partition problem
Owner + first check inspect recent model changes and step runtime the next responder and first question are explicit