Mar 17, 2026 Site search without a server, in about 80 lines A JSON index, term scoring, and why we did not reach for a search library. engineering Visualization
Mar 16, 2026 retail-orders.category: 6 values, 59.5% in the top three 6 values with 24.2% concentrated in one of them, and what that does to every chart downstream. visualizationpractice Visualization
Mar 15, 2026 Course note — A working setup that will not embarrass you The minimum professional toolchain — version control, environments, notebooks used correctly, and the habits that make work reproducible six months later by someone who is not you. practice Data engineering
Mar 14, 2026 Merge with a recency guard, in short Upsert on a natural key, and refuse to let an out-of-order replay overwrite good data with stale data. pipelines Data engineering
Mar 13, 2026 pickup_at runs 2023-01-01 to 2023-12-31 365 populated days across a 365-day span, and what that allows you to compute. engineeringquality Data engineering
Mar 12, 2026 Keeping one row per key in retail-orders deduplicate by rank against a real schema, and the clause in it that is doing the work. sql Analytics engineering
Mar 11, 2026 Is resolved_at + channel the grain of support-tickets? 3,779 distinct combinations against 4,000 rows, and what that answers about the table's key. sqlqualitywarehousing Analytics engineering
Mar 10, 2026 Check the blanks before you drop them 85 blanks in one column, and the one-line check that decides whether dropping them is free. qualitystatistics Statistics
Mar 9, 2026 gdp_per_capita_usd: mean 26,959, median 20,761 A 29.9% gap between mean and median on one column, and which of the two answers the question you were asked. statisticspractice Statistics
Mar 8, 2026 What salary_max_usd actually contains in data-job-postings 3,500 rows, 554 distinct values, and the one fact about salary_max_usd that changes how you query it. qualitypractice Data quality
Mar 7, 2026 Reading 3 columns instead of 10 Column pruning times partition pruning on a real schema, and the function call that quietly defeats both. performancewarehousing Data platform
Mar 6, 2026 Before you clip the outliers A max 1.3× the 99th percentile, and the three different things that could be. statisticsquality Statistics
Mar 5, 2026 first_response_min by channel: a 11% spread Real group means for one column across 4 segments, and what the pooled average conceals. statisticspractice Analytics practice
Mar 4, 2026 A essentially none correlation, and what it is not A measured correlation of 0.08 between two columns, what its square says, and the diagnostic that costs one line. statistics Statistics
Mar 3, 2026 Correction: The grain uniqueness test The page claimed more than it should have. What it says now, and where the pattern stops applying. qualitypractice Data quality
Mar 2, 2026 Charting salary_max_usd by seniority Two facts about the columns decide the chart. Cardinality and skew, in that order. visualization Visualization
Mar 1, 2026 The interval is the result A point estimate of 38.0%, the interval around it, and what a tighter one would cost. statistics Statistics
Feb 28, 2026 A five-minute use for Distribution Lab Sample from seven distributions, watch the central limit theorem happen at whatever sample size you choose, and see exactly when the mean stops being a useful summary. visualization Visualization
Feb 27, 2026 What is deliberately wrong with sensor-telemetry Eight thousand readings from twelve machines across three sites, at ten-minute intervals, with drift, seasonal temperature, injected anomalies, and gaps where a gateway dropped offline.. qualitypractice Data quality
Feb 26, 2026 Course note — Joins that do not fan out The most common wrong number in the world is caused by a join that multiplied rows, and the person who wrote it had no way to notice. practice Analytics engineering
Feb 25, 2026 Slowly changing dimension, type 2, in short Keep every version of a row so "what was true in February" stays answerable after March changes it. warehousingmodelling Analytics engineering
Feb 24, 2026 The time coverage of ab-test-checkout 28 populated days across a 28-day span, and what that allows you to compute. engineeringquality Data engineering
Feb 23, 2026 Check the blanks before you drop them 167 blanks in one column, and the one-line check that decides whether dropping them is free. qualitystatistics Statistics
Feb 22, 2026 The category that eats the chart 4 values with 34.2% concentrated in one of them, and what that does to every chart downstream. visualizationpractice Visualization