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.
225 articles · Page 2 of 23
Filter by tag ▾
- All posts
- ADK
- AI
- AI Agents
- AI Literacy
- API
- AX
- AXI
- Agent Experience
- Agentic AI
- Agents
- Angular
- AngularJS
- Architecture
- Article 4
- Bash
- C2PA
- CLI
- CSharp
- Cloudinary
- Compliance
- Conference
- Content Credentials
- Core Web Vitals
- DevFest
- DevRel
- Developer Tools
- EU AI Act
- Firebase
- Frontend
- Function Calling
- Gemini
- Ghost
- Google ADK
- Google chrome
- GraphQL
- Image Formats
- Image Optimisation
- Jamstack
- JavaScript
- LLM
- Large Language Models
- Learn To Code
- MCP
- MEAN
- Machine Learning
- Memory
- MongoDB
- MySQL
- NLP
- Next.js
- NoSQL
- Node.js
- PHP
- Performance
- Polymer
- Product Strategy
- Production AI
- Progressive Web App
- Progressive Web Apps
- Provenance
- RAG
- React
- Recruitment
- Review
- RxJS
- Serverless
- Service Worker
- Sponsored
- SynthID
- Taipei
- Thought Leadership
- Tooling
- Transformers.js
- TypeScript
- VMware
- Veo
- Vercel AI SDK
- Vue.js
- Web Assembly
- Web Development
- Web Performance
- this || that
-
The Sequential Agent Pattern
Chaining multiple specialised agents into a pipeline where each one builds on the last. Illustrated with a TypeScript CLI that fetches a quote, researches its author, and writes an inspiration card.
-
The Parallel Agent Pattern
When agents do not depend on each other, run them at the same time. Illustrated with a TypeScript translation pipeline built with Google ADK that translates a phrase into three languages simultaneously, then aggregates the results with Gemini.
-
The Single Agent Pattern
A look at the simplest agentic AI pattern: one model, one tool, zero orchestration. Illustrated with a tiny TypeScript agent built with the Google Agent Development Kit (ADK) that uses Gemini and Google Maps to review any place by name.
-
Watch the Past Move: Animating Historic Photos with Gemini and Veo
What if you could take a dusty old black-and-white photograph and watch it come to life? In this post, I walk through a Node.js pipeline that colorises historic photos with Gemini and then animates them into video using Veo 3.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.
-
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.
-
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.
-
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).
-
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.
-
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.