103 data essays, notebooks, and case studies. The essays take public datasets apart and show the gears: the markets, the models, the climate, and the people the numbers describe. The case studies come from systems I built.
Stocks vs bonds since 1871: the long run is real, and it is paid for
The moving-average rule halves the worst crash, and in this backtest it also edged the market
Does the stock market actually follow earnings?
How much of the stock market's return is just dividends
Sitting out the best months is expensive, and the worst months are next door
When the market breaks, stocks and oil stop diversifying each other
The dollar's gravity: which currencies track it, and which float free
The Dow's worst month was a 5-sigma event that a bell curve says should never happen
The 2021 inflation surge was the broadest in decades, not the worst
Gold made its real high in 1980, and has been losing the rematch ever since
150 years of S&P 500 drawdowns: the market is usually underwater
Sell in May, and other things the calendar does not actually tell you
What you pay for stocks sets what you earn, and right now you are paying a lot
Natural gas is the widow-maker, and the winter is where it earns the name
Forty years of Brent, and the shocks that define it
Apple turned $1 into $8.60. Everyone else mostly stood still.
What I learned when my live trading system's ML ensemble silently degraded in production, and the disciplined reintroduction of machine learning that came after.
The VIX spends most of its life bored, then loses its mind
How the Atlas forecasting system handles 542,000 rows/second of market data with sub-second regime detection — async service architecture, dependency-ordered startup, and 10Hz health monitoring.
Atlas couldn't start. The trading system's database initialization was taking 6.6 seconds, blocking 37 features from loading. The fix was small.
What a popular song actually sounds like, according to 28,000 of them
Which AI models make things up the most
62 signals, 21 real dimensions: redundancy that does not look like redundancy
Three of thirty features get you within 0.02 AUC of the full model
The default threshold misses four malignant tumors. I would rather flag thirteen extra benign ones.
A gradient booster prices diamonds to $276. Then it meets a big one.
Twenty numbers per digit gets you 94% of the way there
Twelve of the 64 pixels are dead, and the classifier never misses them
Holt-Winters beat a one-line forecast by 4.6 points, and the one-liner still taught more
The summer bump grew from 44 to 232 thousand passengers, and most of that is scale
Old Faithful is two geysers wearing a trench coat
The 0.7 points that decide a leaderboard, and where they come from
22.67 points: what the field bought by dropping the recurrence
Two penguin measurements beat four
A female Gentoo outweighs a male Adelie by 636 grams
The random forest lost. By 0.002 AUC.
Three lab readings beat your fancy model
Wine quality is mostly just alcohol, and even that only gets you so far
Serving architectures, containerization, lifecycle management, performance optimization, drift detection, and monitoring — with benchmarks and code from production systems.
A pipeline that reads Chamber of Commerce directories with a local 7B-parameter model instead of a CSS selector per site. No API costs, and nothing leaves the machine.
A field-tested reference for taking ML models from prototype to production — serving patterns, containerization, monitoring, drift detection, and the operational practices that make the difference.
Who actually emits the carbon, and the answer depends on how you count
The CO2 rise is speeding up, and the curvature is the story
The warming rate has sextupled, and the line cannot keep up
The Arctic's September floor is dropping 0.84 million km² a decade
A world map of drinking, and what the colors give away
Where the world's energy actually comes from
The biggest games on Steam, and how fast the rest fade
The best instant ramen in one reviewer's archive comes from Malaysia, by a nose
The 500 most common passwords all crack in under a minute
What is actually on Netflix: a catalog built in five years, made mostly of movies, and getting older
What actually makes a great cup of coffee
The best candy, settled by data
Every Bob Ross painting, by the numbers
The Bechdel test: the pass rate climbed, then stopped
Bird strikes cluster on approach, and big birds do the damage
Higher insurance premiums do not mean more dangerous roads
Two Americas of driving risk, and the insurer charges them the same
Congress got older, but it took a detour first
In the Crimea, disease killed eight soldiers for every one the enemy did
Five years killed 44% of everyone who died in a natural disaster since 1900
Gas prices and American driving look unrelated, until a price spike hits
Money buys life expectancy, but the receipt is brutal
The 9-to-5 I went looking for was not in the commits
The US spent $7,194 more per person than Japan and expected to live 7.7 fewer years
In 1991 the US health-spending gap crossed $1,000 and never came back
The job that went from all-male to 96% female
Your major sets the odds, not the salary
Spend more, make more, but a third of films still lose money before the lights come up
At 90, there are three women for every man
Tip 18.6% on a small check, 13.3% on a big one
Construction hit 27% unemployment. Government never cracked 6.
Construction lost more than a quarter of its jobs, and never got them back
Five countries own half the world economy
The deadliest mountain is not the one you think
Thirty people, ninety pulses, and one mistake everyone makes
The body an Olympic sport builds, and how it sharpened over fifty years
A century of Olympic medal power, and who traded the lead
Four datasets agree on every number and agree on nothing else
Focused attention wins by 1.68 points, until the task gets easier
The best-cut diamonds are the cheapest, and other lies the data tells
Two of a diamond's measurements are basically decoration
Stronger evidence does not raise the signal; it splits it
The average brain response is a curve, and averaging is what draws it
Three numbers off a wine label, and four other things 30 datasets taught me
A bigger engine made these cars more efficient, and other lies of regression
Detroit caught up to Japan, but only after you weigh the cars
The exoplanet catalog is a map of our telescopes, not the galaxy
Almost seven orders of magnitude, and the planets pile up at one end
Seattle rains on 43.9% of days. It is sunny on 43.8%.
Women and children first, or first class first?
The Titanic's loneliest passengers, and its largest families, drowned together
Seattle rains on 10 more days out of every 100 than New York, and New York's rain falls harder
The wind blew north. The average said east-southeast.
Five states ship a third of America's farm exports, and none of them grow the same thing
A small Python library of matplotlib themes — Film Noir, Ghibli, Wes Anderson, Blade Runner, Star Wars — applied to 50,000 IMDB reviews.
Building browser-side data visualizations in Rust compiled to WebAssembly — particle systems, large-dataset rendering, and the practical wins over a pure-JS implementation.
Six database optimization techniques — predicate pushdown, row group pruning, result caching, async I/O, indexes, and where SIMD goes wrong — with impact numbers and code.
I replaced DuckDB with a custom Rust query engine for a trading-system time-series workload. Five iterations, 10.4× speedup, one optimization that backfired.
A working reference for production database tuning — SQLite PRAGMAs, schema, indexing, transactions, batching, pooling, and the monitoring that proves it's working.