CTO/4
Writing

Field notes.

A few of the pieces most relevant to the work are below. The full archive is on Medium.

Containerized Development: My Security Layer for AI Coding Tools

AIArchitecture

I started vibe-coding the moment the tools were good enough — and inherited a new problem: I'd handed an AI assistant the keys to my AWS account, my repos, and my local drive. The containerized setup I built so I could let it run without losing sleep.

A White-Knuckle Decision: Refactor or Rewrite

StrategyArchitecture

Two major rewrites: one became a thriving company, the other delivered technically but missed the business return. A spreadsheet model for the decision — where the value isn't the model's accuracy, it's the discipline of building it.

Applying Agile to Hardware: Lessons from a CTO on IoT Success

Hardware/IoTLeadership

The first IoT cycle, I was at the helm but really a passenger. The second time, I brought software's tools to the hardware team — weekly iterations, and a first over-the-air firmware update that didn't brick the fleet. What carried over from software to hardware, and what didn't.

AI Chatbot Behavioral Testing: Generative AI and RAG Applications

AIArchitecture

You can't test a non-deterministic app with deterministic tests — we learned that running a production RAG chatbot. The behavioral-testing approach we built, and why anyone shipping LLM features needs one.

The $30M Lesson: When Consulting Firms Try to Build Products

LeadershipStrategy

Every consulting firm eventually hears the siren call: let's build a product. It almost never works. I've run that transition twice — and the reasons it fails aren't strategy or market, they're cultural and structural, and always underestimated.

A Cost-Effective AI Chatbot Architecture with AWS Bedrock, Lambda, and Pinecone

AICost

A full production chatbot architecture that runs at about $10 per 1,000 conversations. The decisions, the trade-offs, what to ignore from the vendor noise, and the patterns worth stealing.

Strategic Technical Debt: A CTO's Guide to Smarter Development Decisions

StrategyCost

Technical debt isn't a problem to eliminate; it's a tool to use. Like financial debt, the question isn't whether to take it on — it's whether the return beats the interest. When to incur it, when to refinance, when to pay it down.

Data Pipelines for RAG: A Python Utility for Populating Vector Databases

AIData

More data doesn't make a better chatbot — better curation does. A framework for populating vector databases from messy real-world sources, and tuning what actually goes in.

How You Know You Need a Fractional CTO

Fractional CTOLeadership

Not every company needs a full-time CTO — some need one for a season, some for a single hard problem, some just often enough to avoid expensive mistakes. When the fractional model fits, and when it doesn't.

Older pieces and drafts live in the Medium archive.