PostgreSQL Query Rewriting Techniques The previous articles in this series covered performance problems you fix by adding indexes, restructuring joins, or tuning memory. This one is about the queries where the plan is "fine" — every node is doing something reasonable — but the query itself is asking the wrong question, producing unnecessarily large intermediate results or forcing the planner dow
This section is the map for the rest of the book. The five stages introduced in the 1.1 chapter overview (parse, analyze/rewrite, plan, portal, execute) are traced here through the actual code: which functions implement each stage, and in what order they get called. The mechanics of each of the five stages are unpacked in later chapters. Here, only the skeleton matters: how a backend starts up, ho
PostgreSQL Internals · Chapter 1 Query Processing Suppose a client sends SELECT * FROM users WHERE id = 1. The path that single line travels before coming back as a result row is longer than you might expect. Inside the PostgreSQL backend, that SQL goes through a five-stage pipeline. Backend entry and dispatch. The backend receives the message from the client and decides which processing path it s
Building a News Aggregator Without an Engagement Algorithm I have been building a project called WeSearch: https://wesearch.press It is a free news aggregator that pulls from hundreds of sources, keeps discovery mostly chronological, adds source/bias context where available, preserves permanent daily archives, and allows anonymous discussion on stories. The project started from a simple frustrat
A deep, opinionated, practical guide for the human running a software business alone. Hard-won lessons, decision frameworks, and the actual mechanics of going from idea → first dollar → first $10K MRR → first $1M ARR — without a co-founder, without a team for as long as possible, and without burning out. If you read only one section first, read §2 Mindset, §4 Validation, and §6 Distribution-First.
Three weeks ago I shipped IndieOps — a free invoicing and client management tool built specifically for freelancers. Here's the honest version of how it went. It handles the boring-but-critical stuff that eats freelancer time: creating professional invoices, collecting payments via Stripe, sending automatic payment reminders, and keeping a client directory. All free. No "upgrade to send more than
I used to send out application after application and hear nothing back. Not a single reply. At first, I thought my resume wasn't impressive enough. So I made it fancier. Added columns. Played with layouts. Tossed in some icons. Still nothing. Then I learned about Applicant Tracking Systems. Companies use software like Lever, Greenhouse, and Workday to scan resumes before a human ever sees them. If
I built Clever Deploy because every time I wanted to ship a small side project, the deploy story turned into a project of its own. 1. Surprise bills. I'd push a side project to a "free tier" 2. Complexity. I've setup Jenkins in Kubernetes for clients - believe me, you don't want that kind of complexity. What I wanted was simplicity and no unexpected bills. A deploy platform with two rules: Click D