Writing
- AI Agent Stack, Module 01: APIs, the Layer Under Every Agent
2026
A hands-on setup guide for the first module of the AI Agent Stack repo: what an API is, why the stack starts here, and how to clone, run and test a small FastAPI issue tracker that answers one real question.
- AI Agent Stack, Module 02: Tools, Where the Model Asks and Your Code Acts
2026
A hands-on setup guide for the second module of the AI Agent Stack repo: what a tool (function calling) is, why the model only proposes the call, and how to clone, run and test a small tool loop over the same issue tracker.
- AI Agent Stack, Module 03: RAG, Answers Grounded in Your Own Docs
2026
A hands-on setup guide for the third module of the AI Agent Stack repo: what RAG is, how retrieval picks passages from your own docs, and how to clone, run and test a small index-and-ask demo, including what it actually retrieved.
- AI Agent Stack, Module 04: MCP, One Connector Any Host Can Use
2026
A hands-on setup guide for the fourth module of the AI Agent Stack repo: what MCP (Model Context Protocol) is, how it differs from in-app tools, and how to clone, run and test a small MCP server and stdio client over the same issue tracker.
- AI Agent Stack, Module 05: Plugins, One Install for the Whole Setup
2026
A hands-on setup guide for the fifth module of the AI Agent Stack repo: what an AI plugin is, why it's packaging and not a new protocol, and how to clone, run and test a plugin manifest and loader that bundle an MCP server, a skill and two commands.
- AI Agent Stack, Module 06: Skills, Your Team's Playbook on Demand
2026
A hands-on setup guide for the sixth module of the AI Agent Stack repo: what an agent skill is, how progressive loading keeps the context small, and how to clone, run and test a triage skill that turns open login issues into a report in the team's format.
- AI Agent Stack, Module 07: Integration, Every Layer in One Traced Answer
2026
A hands-on setup guide for the last module of the AI Agent Stack repo: one agent that runs the plugin, skill, RAG, MCP, tools, API and LLM steps for a single question, with every step timed and audit-logged in agent-debugger and a human approval gate before email.send.
- Breakpoints for AI Agents: Pause Before email.send
2026
How to put a human approval step in front of risky AI agent tool calls: a policy gate, a paused run, and an Approve or Deny decision, shown with a small open-source demo.
- Why Your Data Chatbot Should Say "I Don't Know"
2026
Data chatbots answer questions their data can't support because writing SQL is easy and refusing is not. Three plain rules, and what a good refusal looks like, using an open-source agent over public U.S. electricity data.
- AI Agent Stack: MCP vs RAG vs APIs vs Tools vs Plugins vs Skills
2026
A plain-English guide for new developers to MCP, RAG, APIs, tools, plugins and skills in AI agents, with a flowchart and example for each one.
- When the Column Does Not Exist: Engineering Unanswerable-Question Refusal in Text-to-SQL Agents
2026
Why execution-accuracy benchmarks miss the hardest Text-to-SQL failure mode—answering when the schema has no such column or unit—and how to test refusal with independent gold labels.
- Stop Executing Raw Model SQL: Semantic Guardrails and Row-Level Access for Data Agents
2026
How to build a natural-language-to-SQL agent that maps questions to governed metric slots, refuses unanswerable questions, and enforces row-level access outside the prompt.
- Design patterns for safe natural-language-to-SQL agents
2026
How a public agent turns a plain-language question into a checked query, and refuses a question the table cannot answer.
- COVID-19 sentiment analysis
2020
A write-up of a model that classifies the sentiment of COVID-19 tweets.
- Big Data in Agriculture
2018
How advanced analytics across the food chain, from farm to market to kitchen, can raise farm incomes and cut food waste.
- A 16-bit RISC processor on an FPGA
2014
A 16-bit RISC design on an FPGA, first runner-up in the IETE Technical Paper Contest.