Skip to main content

Writing

Notes on AI, agents, web technologies, and building with LLMs

Technical articles on AI integration, agents, agent harnesses, MCP, web technologies, and emerging tools. Working notes from a Google Developer Expert with 25+ years of building and teaching.

  1. Building a Historical Time Machine with Gemini and Google Maps

    Have you ever wondered what your favourite landmark looked like a hundred years ago? In this post, I walk you through a Node.js application that generates historically accurate photographs of any real-world location at any point in time, and even checks its own work for anachronisms.

  2. Why How You Split Your Documents Matters More Than You Think

    Before you reach for a more powerful embedding model or a larger context window, look at what you're actually feeding into a RAG pipeline. Sometimes the highest-leverage improvement isn't a better model but rather it's a better split.

  3. Filesystem as Context: Building an AI Detective with bash-tool

    Instead of stuffing documents into prompts, give your AI agent a filesystem and let it retrieve its own context. Here's how, using a murder mystery detective as the demo.

  4. Building AI Agents with Google ADK: A Practical Guide

    Learn how to build multi-agent systems with vector search, tool orchestration, and semantic understanding using Google's Agent Development Kit (JS/TS version).

  5. MCP Workshop Answers for DevFest Taipei 2025

    These are the answers to the questions asked via Slido during my workshop on MCP at DevFest Taipei 2025.

  6. Detecting Hallucinations in Language Models with Natural Language Inference

    A practical look at why hallucinations occur in modern language models, why current evaluation methods make them persist, and how to detect them using Natural Language Inference in JavaScript.

  7. Making the Invisible Visible: The DevRel Value Model

    This article discusses a framework that makes DevRel's impact visible by translating community activities into weighted scores and theoretical ROI for leadership.

  8. The Importance of Precise Function Declarations for LLMs

    This article explores how clearly defined functions enable large language models to make accurate tool calls, emphasising the importance of precision and developer intent in the function calling process.

  9. Creating an MCP Client: Connecting LLMs to the Real World

    In this article, we walk through the process of building a Model Context Protocol (MCP) client. Learn how to connect to servers, discover tools, and invoke them from your own app or LLM integration.

  10. MCP Servers - The Bridge Between LLMs and Real-World Tools

    Model Context Protocol (MCP) servers expose tools, resources, and prompts to LLMs in a unified, structured way. This post explores how they work, how to build one, and why they are a critical part of the future AI stack.