Diagram of a hybrid retriever with sparse and dense branches feeding a reranker.

Build a Hybrid Sparse-Dense Retriever: A CV-Worthy RAG Side Project

Hands-on build guide for a hybrid sparse-dense retriever (BM25 + embedding reranking) with a from-scratch HNSW vector index. Real runnable code, architecture diagrams, and a roadmap to senior-level.

September 7, 2026 · 14 min · 2978 words · martinuke0
Diagram showing sparse and dense retrieval paths merging into a fused ranked list feeding a streaming generation loop.

Build a Hybrid Sparse-Dense Retriever from Scratch: A CV Project That Actually Signals Systems Skill

Step-by-step build of a real hybrid retrieval system that combines learned BM25 with dense embeddings, fuses scores, and streams answers — the kind of project that makes hiring managers stop scrolling.

September 7, 2026 · 12 min · 2506 words · martinuke0
A network of connected nodes representing a knowledge graph replacing a flat vector index.

Graphify Replaces the RAG Vector Store: Why Graph-Based Retrieval Is the Next Leap

Graph-based retrieval is displacing the pure vector store in production RAG stacks. Here is how Graphify works, why it outperforms flat embeddings on multi-hop questions, and what it takes to migrate.

September 5, 2026 · 8 min · 1616 words · martinuke0
Diagram-style illustration contrasting retrieval and cache flows feeding into an LLM.

RAG vs CAG: What the Difference Actually Means in Production

A practical, architecture-first comparison of Retrieval-Augmented Generation and Cache-Augmented Generation, with patterns for combining both in production LLM systems.

September 2, 2026 · 10 min · 2068 words · martinuke0
Diagram of a Retrieval-Augmented Generation pipeline with vector store, LLM, and API gateway.

Architecting Production-Ready Retrieval-Augmented Generation: Patterns, Scalability, and Enterprise Reliability Pipelines

A deep dive into the architecture, scaling strategies, and reliability engineering needed to run RAG services at enterprise scale.

June 1, 2026 · 9 min · 1724 words · martinuke0
Feedback