Writing
Notes from real projects on AI agents, data platforms and system architecture. Written in plain language.
The harness matters more than the model
Most of the quality in an AI agent comes from the code around the model. How I think about tools, context, memory and evaluation.
From building AI agents for clientsRunning AI agents on Google Cloud: keep the tools outside the agent
An architecture for company agents that people use from Slack and Airflow, that query the warehouse, and that stay safe to change.
From building an internal agent platform on Google CloudPrompt injection: every input is untrusted
Once an LLM can read documents and call tools, any text it reads can try to give it orders. Simple defenses that actually help.
From building agents that read documents and call toolsRAG in production is mostly a data problem
Most bad answers from a RAG system start before the model is even called. Where they come from and how to measure them.
From putting retrieval over company documents into productionPrompts are code. Treat them that way.
Small wording changes can move accuracy a lot. Version prompts, test them on a fixed set, and let real code do the maths.
From shipping LLM features to productionData mesh in practice: start with ownership, not tools
Data mesh is mostly an agreement between teams. The simple version that worked for me across six teams.
From moving data ownership to domain teamsMoving to a lakehouse without stopping the business
A step by step way to migrate legacy pipelines to Databricks on AWS while reports keep running.
From migrating legacy pipelines to Databricks on AWSA small, solid data warehouse on AWS
How I set up S3, Airflow and Snowflake so a growing company could trust its numbers, and what I would still do the same way.
From building the data warehouse for a fintech team