Writing

Build logs & notes.

Writing on full-stack engineering, AI/ML, and the tools in the Lab — the build process shown, not just the result. Read in full here; syndicated to Medium with a canonical link back.

Follow on Medium

Every post here is also on Medium — follow there if that’s where you read.

Track6 parts · read in order

RAG from scratch, with grove

Retrieval-augmented generation explained from the ground up for working developers — built around grove, a real RAG engine I'm writing in the open. Mental models first, then the actual build decisions.

  1. 01Context is a bucket of water“Context” gets thrown around dressed in engineer terminology — tokens, windows. A simpler mental model: it behaves like a bucket of water.
  2. 02The AI isn’t the same person twiceYou can ask an AI the exact same question on two different days and receive two meaningfully different answers. Here is why — and how to work with it.
  3. 03What RAG actually is, for people who build CRUD appsRetrieval-augmented generation gets explained either as a vendor diagram or a wall of vector-math. Here it is as something a web developer already understands: a WHERE clause that runs before the model does.
  4. 04Embeddings without the linear-algebra lectureEmbeddings get taught with a matrix and a rotating scatter plot. You don't need either to use them. Here's the only mental model that matters — a map — plus the three catches the quickstarts leave out.
  5. 05I Built a Tool That Slashes the Cost of Feeding Docs to AIMarkdown files are the silent money pit of many LLM workflows. mdcompress strips the parts AI does not need, so your docs cost less to read.
  6. 06I built a RAG engine that skips the vector databaseThe default RAG recipe chunks your docs and embeds them into a vector store. grove doesn't. Here's the build log: why tree-of-contents retrieval, how the descent works, why rebuilds are free — and where it's honestly worse.

In the works

8 queued · 8 published
PublishedMay 22, 2026

What RAG actually is, for people who build CRUD apps

Retrieval-augmented generation gets explained either as a vendor diagram or a wall of vector-math. Here it is as something a web developer already understands: a WHERE clause that runs before the model does.

RAGAIgrove
Read →
PublishedMay 22, 2026

Embeddings without the linear-algebra lecture

Embeddings get taught with a matrix and a rotating scatter plot. You don't need either to use them. Here's the only mental model that matters — a map — plus the three catches the quickstarts leave out.

EmbeddingsRAGAI
Read →
PublishedMay 22, 2026

I built a RAG engine that skips the vector database

The default RAG recipe chunks your docs and embeds them into a vector store. grove doesn't. Here's the build log: why tree-of-contents retrieval, how the descent works, why rebuilds are free — and where it's honestly worse.

groveRAGGo
Read →
PublishedMay 21, 2026

An image converter that never uploads your image

Browsers have shipped everything you need to convert and compress images locally for years. Here's how the Lab's converter works in three built-in APIs — and the two format gotchas that quietly bite.

ImagesBrowserTooling
Read →
PublishedMay 21, 2026

Turning a single-page portfolio into a prerendered, multi-route site

Adding React Router and vite-react-ssg to a 3D-heavy portfolio: static HTML and per-route meta tags with no SSR server, and keeping the heavy WebGL bundle off the lightweight tool and blog pages.

ViteSSGReact
Read →
PublishedMay 1, 2026

I Built a Tool That Slashes the Cost of Feeding Docs to AI

Markdown files are the silent money pit of many LLM workflows. mdcompress strips the parts AI does not need, so your docs cost less to read.

Generative AIGoTooling
Read →
PublishedApr 23, 2026

The AI isn’t the same person twice

You can ask an AI the exact same question on two different days and receive two meaningfully different answers. Here is why — and how to work with it.

AIProductivity
Read →
PublishedApr 21, 2026

Context is a bucket of water

“Context” gets thrown around dressed in engineer terminology — tokens, windows. A simpler mental model: it behaves like a bucket of water.

AITechnology
Read →

New posts land here and are syndicated to Medium with a canonical link pointing back. Follow along via RSS.