Andrew Harris
Engineering Logs

Notes from running large-scale data acquisition in production.

Architecture, economics, and reliability - nothing about marketing funnels or "thought leadership."

Short, specific teardowns of how acquisition systems actually fail, scale, and pay for themselves. Written for the people running them.

New post every ~2 weeks Architecture · Economics · Anti-bot

Latest posts

Wrestling with one of these right now? Email me - I'm glad to send notes specific to your stack.

Log #1

Why most scraping projects die in month three

The scraper works on a laptop in month one. Month three is when it dies, and almost never because the site got harder. The four failure modes I see across audits: source choice before architecture, cost-per-document never measured, anti-bot strategy that can't survive a single vendor change, and "scrape now, structure later" pipelines that never get structured. A field guide based on a decade of production systems.

~6 min read · Read →
Log #2

Crawl economics: what a page actually costs you

Most teams price scraping at proxy cost. Real cost is proxy + compute + retry amplification + anti-bot vendor + human babysitting + data quality cleanup + replacement when the source breaks. A model for cost-per-acquired-document and where the actual margins live.

~7 min read · Read →
Log #3

When Bright Data is the wrong solution

Managed scraping vendors are good at exactly the problems they're designed for and quietly terrible at the rest. A decision framework for build vs. buy on proxies, scraping APIs, and full managed data feeds - written from the buyer side, not the vendor side.

~6 min read · Read →
Log #4

Why RAG fails without an acquisition strategy

"We'll just embed everything" is not an acquisition strategy. Why most AI products plateau on data quality and what a real ingestion pipeline looks like - source selection, extraction tier, structure-first vs. structure-later, refresh cadence, and the part nobody talks about: continuous coverage.

~7 min read · Read →
Log #5

Why your scraper works in dev and dies in prod

It works on your laptop because your laptop is the easiest case it will ever face. The five differences that kill it in production: datacenter IP reputation, volume-triggered defenses, the long tail of ugly pages, time, and the worst one - the silent failure that returns 200 OK and writes empty rows while every dashboard stays green.

~8 min read · Read →

Get notified

No newsletter system yet - just email me and I'll add you to a small "ship list" that gets a one-line note when each log goes live.