Writing
Writing
Everything I write, browsable by topic. The Postgres field guide below is a curated, start-to-finish path through internals and performance tradeoffs — some pieces live here, others are on tigerdata.com, linked below. For everything else, browse by topic.
What’s happening inside Postgres
Understanding the mechanics before diagnosing symptoms.
-
MVCC: The Feature You’re Paying For But Not Usingtigerdata.com ↗
MVCC is great for concurrent workloads. For append-only data, it’s 23 bytes of overhead per row that never gets used. Here’s what that actually costs.
-
Write Amplification in Postgres: The 3-4x Tax on Every Inserttigerdata.com ↗
Every 1 KB insert in Postgres becomes ~2.5 KB of committed I/O before it’s done. Here’s where the multiplier comes from, and where the tuning knobs run out.
-
When Continuous Ingestion Breaks Traditional Postgrestigerdata.com ↗
Postgres maintenance depends on quiet periods your continuous workload eliminated. Here’s what happens inside the database when the gaps disappear.
Why you’re hitting the wall
The performance limits you run into and why.
-
Understanding Postgres Performance Limits for Analytics on Live Datatigerdata.com ↗
PostgreSQL hits hard limits under analytics workloads. Here’s why MVCC, WAL, and row storage compound, and what to do instead.
-
Six Signs That Postgres Tuning Won’t Fix Your Performance Problemstigerdata.com ↗
When Postgres tuning won’t fix performance: recognize the six characteristics of time-series workloads that need a purpose-built architecture.
-
Postgres Performance: Why Peak Throughput Benchmarks Miss the Real Problemtigerdata.com ↗
Peak throughput tells you what Postgres can do in a sprint. Production asks what it can do forever. Those are different questions.
-
Vertical Scaling: Buying Time You Can’t Affordtigerdata.com ↗
Postgres vertical scaling works, until it doesn’t. Why high-frequency ingestion workloads hit an architectural wall, and what to do about it.
The traps
Things you’ll try that won’t fix it.
-
Why Adding More Indexes Eventually Makes Things Worsetigerdata.com ↗
Every Postgres index is a flat tax on every insert. At high ingestion rates, that tax is the whole problem.
-
The Hidden Costs of Table Partitioning at Scaletigerdata.com ↗
Table partitioning fixes retention and pruning, but adds hidden costs in planning time, schema migrations, and ops overhead. Know the tradeoffs before you commit.
-
Read Replicas Don’t Solve Write Bottleneckstigerdata.com ↗
Read replicas fix read contention. They don’t fix write throughput. Here’s the mechanical reason why, and what actually changes the trajectory.
The decision
Architectural honesty about what to do next.
-
Optimization vs. Architecture: Knowing the Differencetigerdata.com ↗
Optimization problems stay fixed. Architectural ones come back. A framework for knowing which you’re dealing with before you’ve spent months on the wrong fix.
-
The Best Time to Migrate Was at 10M Rows. The Second Best Time Is Now.tigerdata.com ↗
Migration cost scales with data volume. The optimization tax you pay while waiting scales faster.
-
Document Databases: Be Honesttigerdata.com ↗
Most MongoDB pain isn’t a MongoDB problem. It’s a workload shape problem that would follow you to Postgres.
-
ClickHouse Is Fast. Your Pipeline Isn’t.tigerdata.com ↗
ClickHouse is fast. But the pipeline tax, ACID trade-offs, and two-system overhead are part of the decision too. Here’s the full picture.
More writing
-
Your Agent Didn't Break Prod. Your Pipeline Did.
'Merged' and 'live' are not the same event, and an agent that can merge to main doesn't change that. It just makes it obvious you never separated them.
-
I Contain Multitudes (and Also Three Git Repos)
A tour of the stack behind mattstratton.com and speaking.mattstratton.com: a monorepo holding two Astro sites and a dev.to sync tool, twenty years of blog posts, and the pipeline that crossposts posts like this one.
-
What's Actually in My .zshrc (and Why)
A guided tour through the parts of my shell config that are actually worth explaining, from a shell that now has two audiences to a Keychain-backed secrets setup.
-
How My Coworker Who Didn't Know 'cd' Shipped to Production
The agent isn't the hard part. The scaffolding around it is. Here's how we built ours so a non-engineer could ship to production safely.
-
Coding Agents Are Actually Good at This One Thing
Coding agents aren't magic. But for internal tooling? They've brought back the "just build the thing" era I've been missing since Microsoft Access.
-
Product 101: Your Secret Weapon for Understanding the Business
Strategic product leaders sit at the intersection of everything. Learn why Product is DevRel's most valuable partnership—and your secret source of business intel.
-
Finance 101: Budgets, P&Ls, and the Language of Money
Want to defend your DevRel budget? Learn to speak finance. Understand P&Ls, CapEx vs OpEx, and why your CFO cares about things you've never thought about.
-
Marketing 101: Funnels, Campaigns, and What Marketing Actually Means
DevRel isn't marketing, but you need to speak their language. Learn about funnels, MQLs, and campaigns...and why understanding marketing makes you better at DevRel.
-
Product-Led Growth and What It Means for DevRel
Product-Led Growth changes everything for DevRel. Learn how PLG works, why it matters for developer tools, and how DevRel becomes essential infrastructure.
-
Putting It All Together: Speaking Business as a DevRel Professional
You've learned sales, marketing, finance, and PLG. Now learn how to translate DevRel work into business language that resonates with every stakeholder in your company.
-
Sales 101: What Your Sales Team Does (And How DevRel Fits In)
Stop treating sales like the enemy. Learn what your sales team actually does, decode pipeline and ARR, and discover how DevRel impacts deals without selling out.
-
Why Business Literacy Matters for DevRel (And Why You Can't Skip This Step)
DevRel teams struggle to prove value because they lack business literacy. Learn why understanding sales, marketing, and finance is foundational to DevRel success.
-
Hosting a Participant-First Conference in the Age of Corona - How To Do It
Sept 1, 2020 was the 7th annual DevOpsDays Chicago conference. It was also the first time we did it virtually. It was super well-received, and a lot of folks have been asking me for details on our implementation.
-
My Brewfile (Updated)
Did you know that Homebrew can install more than just packages? Here's an updated guided tour through my Brewfile to see how I set up applications, VS Code extensions, and more on my MacBook.
-
The Monorepo Song
Because a dev with root access is like a mule with a spinning wheel
-
Hot Takes, Myths, And Falsehoods - Why Everyone Is Wrong About DevOps (Except For Me)
Don't believe everything you read on the internet when it comes to DevOps. A lot of people think they know what they are talking about, but they really don't. I, on the other hand, know exactly what I'm talking about.
-
Don’t Fear the CFP
Deciding to submit a talk for consideration at an event can be a troubling thing — what if my idea isn’t good enough? Do I think big enough thoughts to share a stage with Thought Leaders? Why would anyone care what I have to?
-
The Five Love Languages of DevOps
When we are working to bring about cultural change in our organization, it’s essential for us to understand that not everyone speaks the same “language of DevOps as we do.
Browse
By topic
Postgres and everything else, organized by tag.
- ai1
- architecture1
- astro1
- benchmarking1
- cicd1
- clickhouse1
- devops3
- devrel7
- document-databases1
- dotfiles1
- events1
- homebrew1
- humor1
- indexing1
- ingestion1
- migration1
- mongodb1
- MVCC1
- partitioning1
- performance1
- Postgres12
- productivity1
- public-speaking1
- read-replicas1
- shell1
- showdev1
- tuning1
- vertical-scaling1
- webdev4
- write-amplification1
- zsh1
Newsletter
Uncommitted
Monthly dispatches on Postgres internals, performance, and whatever else is rattling around in my head.