Build1 distinct publisher2 min readPublished
A founder's FAISS writeup at roughly a billion face vectors argues that memory and bandwidth rank your options, which leaves the choice of what you embed as the only term you can cut without paying for it in recall.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
Two to five million candidates out of a billion is a 200x to 500x cut in distance computations per query [15]. Exact search is O(n) per query, so that reduction is simply arithmetic, and it is the entire win [6]. The size it lands on is the same range the post concedes a brute-force loop can still handle [16]. Coarse clustering does not turn billion-scale search into a different problem. It shrinks the problem back to the scale where the naive loop already worked, and it costs recall to do it, since the buckets you chose not to probe can hold the right face [11].
The clustering happens in an offline training step, so bucket boundaries are fixed by the distribution as it looked at training time and every new face is filed under that [11]. How much that costs you depends on how much your incoming corpus resembles the sample the index was trained on.
The second lever is storing compressed rather than full-width vectors, and the text supplied to me breaks off mid-word as it is introduced [13]. A compression section that gets truncated is at least on theme.
The headline figure is one face searched across a billion photos in under a second [14]. To move that onto your hardware you would need the embedding dimensionality, because dimensionality is what converts vector count into bytes and bytes into shard count; the recall target the latency was measured at; the probe count that produced it; and the machine it ran on. The author is deliberately vendor-neutral about the embedding model [18], which is fair for the search argument and no use for sizing. Read the second as a self-reported number on one founder's corpus [1].
Inside the triangle the post names, each knob buys one corner by spending another [9]. More probes buys recall and spends latency [11]. Compression buys memory and spends precision. Cutting vectors is the only move that improves all three at once. A face you never embedded holds no RAM and costs no probe time. It also cannot return as a wrong match. That makes the exclusion list part of the engineering, and it belongs in the same document as the probe count, with a name against it.
In a smaller corpus with a hard recall floor I would take the memory hit and keep full-width vectors far longer than this design allows. At a billion vectors that option is gone, because the vectors do not comfortably fit in one machine's RAM to begin with [7]. The corpus decision arrives whether or not anyone schedules it.
Ranked by verification strength, evidence, and original report placement.
The author discloses that he is the founder of Face2social, a face-recognition search engine, frames the post as vector-search engineering rather than a product pitch, and says it includes the part where he tells readers what they are bad at.
The system described holds approximately 1 billion face vectors.
The post states that brute-force search dies somewhere around a few million vectors.
The question the system answers is whether an uploaded face appears anywhere in a very large set of public profile pictures.
Exact nearest-neighbour search measures the distance from the query to every stored vector and then sorts, which is O(n) per query, with each comparison real work in high-dimensional space.
At a billion vectors, the post says the vectors alone do not comfortably fit in RAM on one machine, and a full scan per query is off the table for anything interactive; at a hundred million, queries chew through serious memory bandwidth and p99 latency suffers.
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 27, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
build
Four control planes, one Postgres: a team's case against polyglot persistence1 distinct publisher
build
Three manual interventions in a month, and every guard was working as designed1 distinct publisher
build
Six MariaDB versions, one real difference: the only reason to leave 10.6 is the July 2026 clock1 distinct publisher
product
Half the incident clock goes to search, and telemetry tools cannot read the answer1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Mechanisms sound, measurements absent
The engineering reasoning is internally consistent and matches well-known ANN practice, but nothing in the supplied material is measurable or reproducible: no embedding dimensionality, hardware, index parameters, probe count or recall@k, and the production configuration is deliberately withheld. The text also breaks off before the compression mechanism — the part that actually makes a billion vectors fit — is developed, and the post's own numbers leave the post-probe candidate set at the brute-force ceiling it calls unshippable. One self-interested source, zero external verification.
Single self-reported deployment
The only adoption signal is the founder's own disclosure that Face2social runs a roughly billion-vector FAISS-based face index in production, plus the statement that its index recipe is proprietary. There is no third-party confirmation, no user or query volume, no customer, and no external benchmark. That is a real but minimal, uncorroborated single-operator data point; the supplied material says nothing about FAISS adoption anywhere else.
Headline outruns the disclosed evidence
Positive gap: the title promises a face searched across a billion photos in under a second, and the post's summary promises FAISS makes 'compare against a billion' feel like 'compare against a thousand', while the body supplies no latency, recall or configuration data and its own arithmetic only gets from a billion to a few million — the ceiling it calls unshippable. The gap is moderate rather than severe because the piece is unusually candid: it discloses the commercial interest, states the trade-offs honestly, refuses to claim a free lunch, and openly says it is withholding the production recipe rather than dressing up a benchmark.
Founder marketing his own search engine
The author is the founder of the commercial face-search product being described, publishes under his own byline on a developer platform, and withholds the production index configuration as proprietary. Every number in the cluster is self-reported by the party who benefits from it looking impressive. Mitigating factors: the conflict is disclosed in the first line, the post declines to name an embedding vendor, and it volunteers weaknesses and trade-offs rather than only wins.
Confident about what was said, not about what is true
High confidence in the reading of the text: the claims about what the post asserts are directly quotable. Low confidence in the underlying reality, because the cluster contains one self-interested source, no independent corroboration, no measurements, and a body that is truncated before its two most consequential arguments. The qualitative engineering claims align with widely understood ANN behaviour, which supports the general picture without validating this specific system.