Blog
Agent Scopes in Practice
2026-03-16
A follow-up to my post on agent scopes — what happened when I turned the idea into a working CLI tool that agents can actually use.
aiagentsscope-managementdevelopment-workflowpythoncliAgent Scopes - Keeping AI Solutions Right-Sized
2026-03-09
Define boundaries and constraints for AI agents to prevent scope creep and architectural drift while maintaining autonomy and efficiency.
aiagentsscope-managementdevelopment-workflowconstraintsAn Alternative to MCP: Python CLI-Based Agent Skills
2026-03-02
Building custom Python CLI tools with Click and uvx as a more stable alternative to MCP servers for AI agent tooling.
aiskillsclipythondeveloper-toolsmcpFrom Infrastructure as Code to Software as Specs
2026-02-23
As AI-generated code becomes cheap and regenerable, specifications and contracts become the assets worth protecting, not implementation details.
aiinfrastructure-as-codesoftware-developmentparadigm-shiftMaking AI Development a Team Sport
2026-02-09
AI development is currently a solo activity, but needs workflows where multiple people can see, contribute to, and learn from agent interactions.
aiteamworkcollaborationdevelopmentcultureproductivityEvery idea can now be explored
2026-02-02
AI coding agents have collapsed the validation cycle from weeks to hours, making it feasible to explore every idea and filter efficiently.
aiinnovationcreativityprototypingproductivityMCP Tools vs Skills with Scripts - Why Simpler Might Be Better
2026-01-26
MCP tools have been patchy in practice, while skills wrapping mature CLI tools provide a more stable platform for AI agents.
aimcpskillsdeveloper-toolsarchitectureSkills, Tools, Specs and Workflows - Which One is Which
2026-01-19
Clarifying the distinctions between tools, skills, specs, and workflows to build more reliable AI agent systems.
aiagentsskillstoolsworkflowsarchitectureknowledge-managementThe AI Journey So Far - From Traditional to Async Agent Teams
2026-01-12
Tracing the evolution from manual coding through Copilot and AI agents to the next bottleneck - the need for async agent teams that can work independently.
aiagentscopilotevolutionfuturedeveloper-toolsDictation is the Way Forward
2026-01-05
Switching from typing to dictation as the primary input method unlocks better AI responses and removes the keyboard bottleneck.
productivitydictationvoicewritingtoolsGetting into Serverless with CDK, Lambda & DynamoDB - Part 2
2020-05-22
Adding a DynamoDB table to your CDK stack and connecting it to a Lambda function with proper permissions and local testing setup.
awscdkdynamodblambdaserverlesstypescriptGetting into Serverless with CDK, Lambda & DynamoDB - Part 1
2020-04-21
Getting started with AWS Cloud Development Kit by creating and deploying a Lambda function using TypeScript and infrastructure as code.
awscdkdynamodblambdaserverlesstypescriptParsing json with Python
2018-11-13
Creating a NestedDict class using dpath-python to access deeply nested JSON structures with dot-notation paths and sensible defaults.
pythonjsondictionariesdpathManaging version with bumpversion
2018-07-11
Automating version number management across multiple files in Python projects using bumpversion with git integration.
pythonbumpversionversioninggitPython invoke with tab completion
2018-06-03
Setting up shell tab completion for Python Invoke tasks to improve command-line workflow efficiency in zsh.
pythoninvokezshtab-completioncliUsing pip-tool to organise python requirements
2018-06-01
Managing Python dependencies with pip-tools to maintain pinned versions for reproducibility while easily updating to latest packages.
pythonpip-toolsdependenciespackagingvirtual-environmentKeeping secrets out of your source
2017-05-05
Using envsubst and base64 encoding to inject secrets and configuration into applications during continuous delivery pipelines.
securitysecretsenvsubstbase64ci-cdRemoving older versions on Google App Engine
2017-05-04
A bash script to automatically clean up old Google App Engine service versions while keeping the most recent deployments.
google-app-enginegcloudbashci-cddeploymentCleaning up old git branches
2017-05-02
A practical command-line workflow for safely deleting merged git branches while maintaining control over what gets removed.
gitbranchescliworkflow