I lead technical projects from assessment and planning through implementation and delivery. Since 2013, I’ve worked across more than 100 software, web, and IT engagements, combining hands-on engineering with scope, technical risk, and stakeholder coordination. My work spans systems integration, operational tools, and technical due diligence for business acquisitions, with attention to how people use and maintain the systems I build.
The gap between a technically correct system and one people actually use is where most internal tooling dies. A field report from more than a hundred client engagements.
How to build and deploy an MCP server with FastMCP, OpenAI embeddings, and ChromaDB. Covers chunking strategy, retrieval tradeoffs, and Fly.io deployment bugs.
· architecture / tutorials / systems design / projects on github / integrations
Zapier and Make cannot reach HubSpot custom objects for two-way sync, and neither resolves conflicts. Here is the open-source TypeScript sync engine I built to handle both.
A Python toolkit for catching GA4 attribution errors at scale: duplicate conversions with CallRail, channel discrepancies with Google Ads, and UTM inconsistencies, with client-ready report output.
Why Contact Form 7, Gravity Forms, and WooCommerce conversions go missing in GA4, and the WordPress plugin I built to fix the data layer timing for each one.
Public-facing sites get security attention by default. Internal tools, webhook handlers, and integration endpoints often do not. This is where the real exposure lives, and why it matters more for internal tooling, not less.
· methods & strategy / product development / integrations
Why the useful way to think about WordPress in a mature business stack is as the integration layer between operational systems, not as a website builder. What that reframe changes about how you build.
Custom fields, taxonomies, and object relationships decided on day one shape what the system can do on day five hundred. A look at how the compounding works and how to avoid the worst of it.
What breaks when a third integration hits a system built for one. Lessons from a retail client's order data architecture and the default I now build around.
The Wordpress vs. WPEngine clash shows us what happens when open source ideals run up against private equity goals. There are serious implications for the future of open source software.
Learn how to integrate non-Jekyll content into your Jekyll-powered site. Explore different methods for embedding static files, dynamic content, and external resources without disrupting your workflow.