Skip to content
Veristamp
Type to search the engineering journal.Full-text index · ⌘K to open

Build logs from the field.

Architecture notes, agent governance, RAG pipelines, identity, and the tooling we ship. Written while building Veristamp.

20 posts37 topicsRSS
Qdrant SQL with QQL 0.4.0: AST parameter binding, whole-point bulk upsert, one-roundtrip BATCH blocks, REST conversion, and checkpointed cluster migration
LatestQQLQdrantVector Search

Qdrant SQL with QQL 0.4.0: Bulk Upsert, Batch & Migrate

Build fast Qdrant SQL applications with QQL 0.4.0. Get AST parameter binding, bulk upsert, one-roundtrip BATCH blocks, and cluster migration with resume.

20 min readRead
System architecture of GeoSmart showing upstream DuckDB spatial enrichment and Qdrant multi-variable continuous decay scoring
QdrantVector SearchGeospatial

Qdrant Geospatial Search: Fix the Boundary Cliff with Decay

We replaced Qdrant geo_radius hard filters with GaussDecay and ExpDecay on 8,317 Berlin stays. Ring loss 37% to 0% in 8.1 ms. Code, data, and the 10-persona eval are on GitHub.

11 min readRead
Diagram of JurisBoost single query_points call with RRF prefetch, ColBERT rescore, and statutory FormulaQuery
QdrantVector SearchRAG

Qdrant Hybrid Search for Legal RAG Tested on 2,034 Cases

We ran Qdrant hybrid search (RRF + ColBERT + FormulaQuery) on 2,034 Supreme Court precedents. Top-1 went from 31.8% to 86.4%. Code, data, and the 22-query eval are on GitHub.

16 min readRead
QQL 0.3.0 cover: bound query with :q and :tenant, WHERE isolation, idf = WHERE scoring, and matching BM25
QQLQdrantBM25

QQL 0.3.0: Bound Queries, Tenant IDF, Matching BM25

Pin QQL 0.3.0 (language 1.5). Bind :name params, write idf = WHERE for tenant BM25, mix local and server sparse vectors. Re-embed old collections.

10 min readRead
Editorial diagram of a shared Qdrant collection mixing twelve tenant vocabularies into global IDF, then scoping params.idf.corpus to one tenant
QdrantBM25Vector Search

Qdrant 1.19 Per-Tenant IDF: Ranking Changes, Not nDCG

We ran Qdrant 1.19 per-tenant IDF on 457k CQADupStack docs. Top-1 changed on 20% of queries. Labeled nDCG barely moved. Methodology, numbers, and the API.

15 min readRead
Cream editorial cover: inject_filter shield applying AST isolation before queries reach Qdrant
QQLQdrantSecurity

Prevent RAG Data Leaks: Inject Tenant Filters Into Qdrant Queries

Don't concatenate WHERE tenant_id. inject_filter wraps untrusted QQL in a root AND so OR and NOT cannot skip isolation.

8 min readRead
Cream editorial cover: Local Vector Search with in-process FastEmbed and qdrant-edge, no remote server
QQLQdrantPython

Run Local Vector Search in Python Without a Qdrant Server

Build local vector search in Python and Node with pyqql-edge. Embed Qdrant and FastEmbed in-process with zero server setup, disk persistence, and real scores.

12 min readRead
Cream editorial cover: QQL 0.1.5 title with a hub diagram linking Rust, Python, Node, WASM, and Edge to Qdrant
QQLQdrantRust

Query Qdrant With SQL-Like QQL in Python, Node, and Rust

Write Qdrant hybrid search as SQL-like statements instead of nested JSON. Same language in Python, Node, Rust, WASM, and local edge.

10 min readRead
Cream editorial cover: QQL WASM playground browser split between local analyze() and Qdrant REST Execute
QdrantWebAssemblyQQL

Inspect Qdrant Queries in the Browser Before They Hit the API

QQL WASM parses and projects REST routes locally while you type. Execute only when you click. No cluster round-trip in the editor.

11 min readRead
Diagram of the four main sources of Ubuntu server disk bloat: snapd cache, systemd journal, dangling Docker images, and orphan volumes
VPS SecuritySelf-Hosted AIDocker

Free Up Disk Space on Ubuntu: Clean Snapd, Docker & Logs

Ubuntu boot disk filling up? Reclaim 8-15GB from snapd, journald, and orphan Docker volumes without breaking running containers.

13 min readRead
Diagram showing how Docker DNAT routes traffic to the FORWARD chain, bypassing UFW INPUT rules, and how the DOCKER-USER chain restores control
VPS SecurityDockerSelf-Hosted AI

Docker Bypasses UFW: The DOCKER-USER Fix for Any Linux VPS

Docker ignores UFW. Published ports hit FORWARD, not INPUT. Add a DOCKER-USER drop rule so UFW actually closes the port.

14 min readRead
An elegant architectural diagram showing QQL query transformation through JWT validation, rate limiting, and AST-level filter injection before executing on Qdrant.
QdrantSecurityEngineering

Stop Cross-Tenant RAG Leaks Before Qdrant Runs the Search

Qdrant trusts the client filter. Inject tenant predicates into the query AST so agents cannot skip isolation, even under prompt injection.

13 min readRead
A side-by-side comparison diagram showing a locked, rigid hardcoded pipeline versus a dynamic agent loop querying Qdrant through the QQL gateway.
QdrantSecurityAI Agents

Recursive Language Models Need Queries Agents Can Write

RLMs treat long context as a REPL, not a stuffed window. Let the agent write Qdrant queries, then inject tenant filters before search.

13 min readRead
Terminal-driven retrieval operations pipeline with QQL scripts, JSON artifacts, CI checks, and vector search diagnostics
RAGEngineeringAI Agents

Query Qdrant From the CLI Without Writing SDK Code

qql-go is archived. Use the qql CLI from qql-rs for CI, runbooks, and agent-safe Qdrant retrieval. This post is the original design.

12 min readRead
Schema-first concept harvesting: documents to entities, relations, and an LLM wiki graph
AI AgentsKnowledge GraphsInformation Extraction

Extract Entities From Documents Into an LLM Wiki With GLiNER2

GLiNER2 extracts entities, relations, and JSON on CPU. Build a compounding LLM wiki instead of re-running RAG on the same facts.

19 min readRead
Diagram showing an Oracle Always Free VPS secured with Tailscale running a PicoClaw AI agent
AI-AgentsSelf-Hosted AIOracle Cloud

Host a 24/7 AI Telegram Bot on Oracle Cloud Always Free

Deploy a private 24/7 AI Telegram bot on Oracle Cloud Always Free. Secure your $0/mo VPS with Tailscale and UFW with zero public open ports.

13 min readRead
Abstract geometric visualization of document chunks splitting into structured blocks
Zero-TrustRAGRAG-Chunking

RAG Chunking Visualizer: Debug Text Splitters in the Browser

Inspect RAG chunk boundaries in the browser. A Rust + WebAssembly splitter workbench for debugging overlap, headings, and embedding-ready chunks.

8 min readRead
A contained sandbox with glowing code and policy gates, symbolizing governed execution
AI-AgentsMCPcode-mode

Code Mode vs Tool Calling for AI Agents

Cloudflare Code Mode: the agent writes TypeScript against tools in a sandbox. ~1,000 tokens vs ~1M if every MCP endpoint is a native tool.

11 min readRead
Abstract geometric representation of automated workflows connecting nodes
TutorialsDockern8n

Self-Host n8n With Docker Compose and PostgreSQL

Run n8n on Docker Compose with PostgreSQL and ngrok. Unlimited workflows, $0 SaaS fees, one docker compose up.

13 min readRead
A split technical diagram showing a generic lock icon representing commodity AuthN versus a complex neural network representing custom AuthZ
ArchitectureSecurityIdP

Why You Shouldn't Build a Custom IdP (And What to Use Instead)

Don't build a custom identity provider for login. Use a real IdP for AuthN and keep authorization in your own control plane.

10 min readRead