Writing
Project-first writing that combines journals and articles.
One writing feed for retrospectives, shipped work, and technical notes.
Source
Lifecycle
Publish state
All writing
How to Add Safety Guardrails to Claude API Tool Calls
Validation middleware prevents Claude from executing harmful tool calls. Here is how to build it with Zod schema enforcement and approval gates.
Building an Autonomous Agent for Your Personal Website in 2026
OpenClaw runs governed AI workflows on calvinkennedy.com. Here is the full architecture: webhook intake, Claude execution, Portarium validation, AWS Lightsail deployment.
Governed AI Workflows Beat Autonomy Theater
Why most agent failures are really workflow failures, and why the real moat is the control layer around the agent.
hci-review-skill: Engineering Retrospective
A Claude Code skill that runs structured HCI reviews — encoding methodology as an AI skill to produce consistent 11-doc audit packs.
llm-quant: Engineering Retrospective
A quantitative trading system using LLMs for market analysis — and the hard lessons about applying language models to numerical financial data.
mission-control-ui: Engineering Retrospective
A UI dashboard for monitoring and controlling agent operations — making autonomous system state visible without getting in the way of automation.
prompt-language: Engineering Retrospective
A DSL for writing prompt workflows — why structured prompt languages beat ad-hoc strings, and where the line between useful and overengineered sits.
What I Learned Running a 1,500-User Discord Bot: Production AI Infrastructure Lessons
VibeCord reached 1,500+ users. Here is what broke, what held, and what every developer building Discord bots or AI-powered platforms needs to know.
I Made $18 and Thought I Made $0: A VibeCoord Post-Mortem
My analytics said $0 revenue and 0 bot activations. Both were wrong. A full post-mortem on what I built, why it failed, and what the data actually said.
How I Used AI Agents to Automate Content Creation (End to End)
The architecture behind Content Machine — an AI agent pipeline that goes from topic to published video without human intervention. What worked, what didn't, and the real bottlenecks.
How I Built a Discord Bot Platform That Got 1,500 Users
The full story of VibeCord — architecture decisions, what broke, what worked, and what I'd do differently building a Discord bot platform from scratch.
How I built Portarium: a governed AI control plane for trustworthy automation
An engineering retrospective on Portarium that makes the trade-offs explicit: why governance was moved into the control plane, what that changed, and what still hurts.
How to Learn Python for HSC Software Design & Development
A practical guide for HSC students tackling Python for the first time. What to focus on, what to skip, and how to actually pass the exam.
Why I built VibeCoord: from prototype to production-hardened community bot
A Martin Fowler-style engineering retrospective on building VibeCoord, focusing on why it was built, the tradeoffs made, and production reliability outcomes.
How I built Alpaca Chat: from demo chat client to controlled multi-model delivery system
A practical engineering retrospective on Alpaca Chat, focusing on model routing, conversation reliability, and operational tradeoffs needed to keep AI chat features stable in production.
Generative Engine Optimization (GEO) Strategy: Future‑Proofing Newcastle Coding Tutors for the AI‑First Era
A practical strategy to stay visible in AI answer engines: technical legibility, entity/schema grounding, answer‑first content, authority signals, and measurement.
How I built StaffPass with Laravel: engineering a secure staff access and workflow platform
Retrospective on StaffPass, a Laravel project where I moved from rapid feature commits to a maintainable application with stronger identity, workflow, and operational safeguards.
Building the Content Machine: a reproducible story about generative content pipelines
Engineering retrospective on Content Machine, showing how I moved from ad hoc generation scripts to a maintainable pipeline with predictable outputs and stronger publishing quality.
Laptop Loan Management System: engineering a practical asset-tracking platform
How I built and hardened a laptop loan management system through iterative releases, balancing inventory accuracy, policy checks, and operational reliability.
Why I built AgenticSDLC: making software planning and execution auditable by design
An engineering story about AgenticSDLC, tracing how I turned a bootstrap repo into a governed SDLC platform with traceability, ambiguity handling, and practical CLI ergonomics.
Misadventure Retrospective: engineering a high-throughput appeals platform with production confidence
Software engineering deep dive on Misadventure, covering the shift from feature churn to a test-hardened platform for workflow-driven case handling and auth-sensitive operations.
Production-Grade AI Code: Quality Gates for Claude Code Development
How mutation testing, code coverage thresholds, and git hooks create safety nets when developing with AI assistants like Claude Code.
Rapid UI/UX Prototyping with Storybook and Claude Code
How I use Storybook's component isolation to rapidly prototype UI variations with Claude Code, comparing multiple approaches side-by-side before committing to a design.
Macquarie College Engineering Work: building a maintainable digital operations layer
Retrospective on Macquarie College work, focused on turning web content changes into a consistent engineering system for school operations and long-term maintainability.
Lessons from Building an AI Agent Backend
What I learned building the Alpaca Chat agent engine: tool orchestration, sub-agent delegation, and testing strategies.
If the writing is useful, the consulting is the next step.
The articles and journals here are the thinking behind the work. If you need a governed AI workflow built for your own business, that is what the consulting engagement covers.