Archives
All the articles I've archived.
-
From 19 Seconds to 50 Milliseconds: Making LibTrails Fast on a $7 Server
How I optimized LibTrails search from 3.5 seconds to 0.8 seconds and related books from 19 seconds to 50 milliseconds — by replacing PyTorch with ONNX Runtime and cutting a redundant 121K vector scan — all on a $7/month Lightsail instance with 1 GB RAM.
-
From 6,500 Clusters to 202 Communities: Building a Browsable Topic Hierarchy
How I turned 121,000 LLM-extracted topics into a three-tier hierarchy — fine-grained clusters for search, 202 browsable communities, and 26 themes — using two-pass Leiden clustering, weighted membership scoring, and a lot of parameter sweeping.
-
From Königsberg to Leiden: Starting a Deep Dive into Graph Theory
How building LibTrails led me down a rabbit hole into graph theory, community detection, and a graduate-level self-study plan — starting with Euler's bridges.
-
7 Signals, 4 Scopes: How LibTrails Searches 100 Books
How I built a multi-scope hybrid search system — 7 signals for books, 5 for clusters — combining BM25 full-text search with semantic vector search, all fused via Reciprocal Rank Fusion.
-
Hello World: Why I'm Starting This Blog
First post. Why I'm writing, what I'm building, and what you'll find here.