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.
234 articles · Page 1 of 24
Filter by tag ▾
- All posts
- ADK
- AI
- AI Agents
- AI Literacy
- API
- AX
- AXI
- Agent Experience
- Agentic AI
- Agents
- Angular
- AngularJS
- Architecture
- Article 4
- Automation
- Bash
- C2PA
- CLI
- CSharp
- Cloudinary
- Community
- Compliance
- Conference
- Content Credentials
- Core Web Vitals
- DevFest
- DevRel
- Developer Tools
- Docker
- EU AI Act
- Embeddings
- Firebase
- Frontend
- Function Calling
- Gemini
- Ghost
- Google ADK
- Google chrome
- GraphQL
- Harness Engineering
- Image Formats
- Image Optimisation
- Jamstack
- JavaScript
- LLM
- Large Language Models
- Learn To Code
- Loop Engineering
- MCP
- MCP Apps
- MEAN
- Machine Learning
- Memory
- MongoDB
- MySQL
- NLP
- Next.js
- NoSQL
- Node.js
- Open Source
- PHP
- Performance
- Polymer
- Product Strategy
- Production AI
- Progressive Web App
- Progressive Web Apps
- Provenance
- RAG
- React
- Recruitment
- Review
- RxJS
- SQLite
- Serverless
- Service Worker
- Sponsored
- SynthID
- Taipei
- Thought Leadership
- Tooling
- Transformers.js
- TypeScript
- VMware
- Veo
- Vercel AI SDK
- Vue.js
- Web
- Web Assembly
- Web Development
- Web Performance
- WebMCP
- this || that
-
Introduction to WebMCP
WebMCP lets a page hand structured tools to an in-browser agent instead of making it guess at your UI. I wired 22 tools into Watch Anchor; here's how the API works and what I learned.
-
Graph memory for AI agents
How to give an agent a memory that stores the way facts connect and updates them when they change. A walk through extraction, entity resolution, time-ranged edges, and ranked recall, in about 150 lines of node:sqlite, sqlite-vec, and Gemini.
-
MCP Apps
For its first eighteen months MCP let a model call a tool and read the result back as text. That's a low ceiling the moment a user wants to sort, filter or drill into something. MCP Apps raise it: the server ships an actual interface into the chat. Here's how MCP got here, what the new proposal says, and a small app you can run in Claude Desktop, built on the official SDK and checked against the spec.
-
Joining the Agentic AI Foundation as an ambassador
I've been accepted into the Agentic AI Foundation's ambassador programme. Here's what the foundation is, why it matters that this work is happening in the open, and what I've actually signed up to do.
-
Sparse vs Dense Retrieval: Why Your Search Doesn't Understand Synonyms
If your retriever misses a relevant document because the user phrased their question differently than the document's author wrote the content, the LLM generates an answer with incomplete context. It doesn't hallucinate because it's confused, it hallucinates because it never saw the right information.
-
AgentTool vs sub-agent delegation
Two ways to give an agent help: a tool it calls and gets an answer back from, or a sub-agent it hands the whole turn to. Same data-agent, opposite control flow. When to reach for each, shown with a real NL2SQL-to-chart pipeline in Google ADK.
-
What is Loop Engineering
Everyone is quoting "design loops that prompt your agents" and few can say what a loop actually is. Here's the plain version, plus the part the hype skips: the loop is the easy bit. What's hard is that it makes your understanding optional, and nothing in it tells you when you've stopped understanding what ships.
-
Kitsune: a local-first agent runtime
I built a managed-agent runtime that runs entirely on one laptop. In this post I show you how you can set it up.
-
Build Your Own Agent Harness
What an agent harness is, how you build one, and why it is where the work now lives. I start from a bare loop, break it on real tasks, and walk the five places every harness ends up reaching for.
-
Agent Experience (AX) and the Agent Experience Interface (AXI): a working demo
A companion to my AX and AXI piece. I built one fictional CLI twice, once human-only and once agent-ready, pointed a small Google ADK agent at each, and watched what happened. With the interactive demo and the real numbers.