Software Architect
AI gets you 70% there — I get you to the finish line.
Your AI coding agent built a working demo in a weekend. Impressive. But production systems need security, scalability, proper error handling, and architecture that won't collapse under real users. That's where decades of experience matters.
Web apps, mobile apps, desktop apps, distributed systems spanning the full stack. I know the difference between code that demos well and code that ships.
AI tools don't understand your business constraints or how to structure an app that scales. I help startups leverage AI while building production-quality systems.
Your demo handles 10 users. What happens at 10,000? Architecture reviews, performance optimization, and capacity planning from real-world experience.
Your team uses AI coding tools. Let's teach them when to be skeptical. Code reviews, testing strategies, and building teams that ship quality software.
Experience: Decades building web, mobile (iOS/macOS), desktop applications, distributed systems, and network software. The judgment to know when to add complexity versus when to keep things simple.
For startups: If you're using AI to move fast, I can help you move fast and build something that lasts.
I spend most of my time these days working with LLM agents. Not chatting with them. Working with them. I treat them like a junior dev team: I set architectural direction, write design specs, review code, and dive into complex areas directly. The agent handles the volume work, the test scaffolding, the boilerplate. This arrangement works well for coding but I noticed issues with research. Different sessions led to different research and a lot of repetition and outbound requests as well as large context blocks.
I've been spending a lot of time lately working with coding agents across multiple processes. An agent refactoring code in one project, another running tests in a second, a build pipeline doing its thing, doctrove syncing documentation in the background. The problem is visibility. Each of these runs in its own terminal or process, and when something goes wrong or you want to understand what's happening across the system, you're tabbing between windows, tailing logs, and piecing together a timeline in your head.
I've been writing code for long enough to see a lot of cycles come and go. The current LLM hype reminds me of every other "this changes everything" moment we've lived through. Like those other moments, there's some real value buried under a mountain of breathless takes and venture capital.