Archives
All the articles I've archived.
-
The Untrainable: A Simple Map of AI Value
A plain-language guide to the 2x2 matrix of 'the untrainable' — and how to find where AI value actually hides.
-
Hybrid Search in Agentic RAG: Finding the Perfect Balance
Hybrid search optimizes Agentic RAG by combining semantic understanding (dense search) with exact keyword matching (sparse search) to deliver highly accurate context to your LLM. By utilizing tuning methods like Alpha weights or Reciprocal Rank Fusion (RRF), it ensures your autonomous agent consistently retrieves the best possible data for its responses.
-
Building Coding Agent Part 6: Context Compaction – Infinite Sessions Without the Bloat
Your agent's context window fills up fast. Learn a three-layer compression strategy — from silent placeholder swaps to full LLM-driven summarization — that keeps your agent running indefinitely.
-
Building Coding Agent Part 5: Skill Loading – On-Demand Domain Knowledge
Keep your agent sharp, fast, and token-efficient. Learn how to dynamically route specific instructions using a SkillLoader instead of bloating your system prompt.
-
Building Coding Agent Part 4: Subagents – Clean Context per Subtask
Keep your main AI agent focused and prevent token bloat by spawning disposable subagents with fresh context windows to handle noisy tasks and return only clean summaries.
-
Building Coding Agent Part 3: Visible Planning – Keeping the Agent on Course
Prevent your AI agent from losing its train of thought on complex tasks by forcing it to externalize its plan into a strictly constrained, visible to-do list.
-
Building Coding Agent Part 2: Tool Dispatching – Expanding the Agent's Reach
Expand your AI agent's capabilities securely by using a simple Python dispatch map to route tool calls, keeping your core execution loop untouched.
-
Building Coding Agent Part 1: The Agent Loop – Bash is All You Need
At its core, an AI coding agent is simply a trained language model running inside a basic while loop that repeatedly executes tools like Bash to interact with the world until its task is complete.
-
How I Use Superpowers with Claude Code to Build Reliable Apps
Most developers use AI in a chat-and-hope loop—writing a prompt, getting broken code, and spending hours debugging it. This post details how the Superpowers plugin for Claude Code fundamentally fixes this workflow by turning Claude from an over-eager junior developer into a disciplined engineering partner.
-
A Deep Dive into Database Sharding for High-Scale Applications
When your database gets too big for one server, it’s time to break it into pieces. Here is how database sharding works, the strategies to use, and the trade-offs you must accept.
-
Understanding Deletion Latency in LSM Trees
In LSM-based databases, deleting data only hides it from queries, leaving the physical files intact for weeks. This post explores why this latency occurs, how it creates compliance risks (like GDPR), and how to engineer true data erasure.
-
LSM Trees: The Modern Engine for Massive Scale.
LSM Trees are the ultimate write now, organize later strategy for modern data storage. By utilizing a high-speed memory layer for instant writes and a multi-layered disk structure for long-term storage, they allow databases to handle a relentless firehose of information without breaking a sweat
-
Understanding the B-Tree: The Data Structure Behind Modern Databases
The B-Tree is an elegant solution to a real-world engineering problem. By optimizing for the slow speed of disk I/O, it provides a robust, balanced, and efficient way to manage vast quantities of data. Its design principles make it the backbone of modern database systems and file systems, ensuring that the data we rely on is always just a few quick hops away.
-
Understanding Claude Skills and why it is important
Claude is powerful, but real work requires procedural knowledge and organizational context. Here comes Agent Skills, a new way to build specialized agents using files and folders.
-
Understanding Bloom Filters
How Bloom Filters work