I build the kind of systems I spent two decades keeping alive.
Twenty-five years in enterprise architecture. Financial services, retail, e-commerce. The kind of work that taught me that boring is the goal.
I started writing code in the late 1990s — Java, C++, the long apprenticeship that produced everyone who shipped systems in the 2010s. Somewhere along the way I stopped writing code and started reasoning about it. The job became architecture, and architecture turned out to be mostly listening.
Today I lead enterprise architecture at Envestnet, a wealth-management platform serving more than $5T in assets. The work is unglamorous in the best way: the modular monolith that survived a re-org, the read-only legacy adoption pattern that took the mainframe bill down by $14M a year, the deploy script that no longer deletes the production database.
On the side — and increasingly, on the front — I am building two companies. CAIA is an AI-native engineering platform that replaces the engineering decision layer with an autonomous engine and exposes a navigation UI to a non-coder operator. Stolution is a neighborhood-commerce platform that wants to give mom-and-pop stores Amazon-grade capability. Both are pre-launch. Both are built entirely by AI under my direction. I have not written production code in eighteen months. It turns out twenty-five years of writing code earns you the right to stop.
I write here about the patterns that survive: enterprise architecture, AI agents, observability, and the slow shift in what an engineering meeting looks like when the senior engineer in the room is a model.
I write about conferences and the technologies that surface there — I do not speak at them. The running notebook covers fifty-one events across seventeen years, followed as a working architect rather than performed from a stage. The patterns I keep finding land here as essays.
If you have a problem that needs an architect, say hello. I take a small number of consulting engagements each year, mostly fractional, mostly in the messy middle between strategy and execution.
Ten lessons I keep relearning.
The system has to be forgiving
Humans will not be perfect. The job of the architect is to absorb their imperfection, not to fix it.
Coordination is the work
Splitting code does not reduce coordination — it relocates it. From the IDE to the issue tracker. From engineers to managers.
Ask where the unit of decision is
Not "monolith or microservices." Where is the unit of decision-making? Who owns it? Who can change it on a Tuesday?
Reliability is a product surface
Operators do not read your dashboards. They are reading their own panic. Design the surface, not the stack.
The exit cost decides the buy
Vendor selection is a one-way door. The exit cost — not the entry cost — is the number that matters.
The model is a peer, not a tool
Argue with it. Ignore it sometimes. Defer to it sometimes. The same posture you would have toward a careful senior engineer.
Boring is the goal
Boring deploys, boring stacks, boring meetings. The boring parts of engineering are the parts that scale.
P99 is a state of mind
You will be judged on the worst minute of your worst day. The average is a comforting lie.
Write the questions down
The questions you ask the model are the questions you should be asking the room. The room rarely catches up on its own.
The interesting work is human
Figuring out what to build is the work. The model is a peer for that, not a replacement.
The credentials behind the work.
Architecture, cloud, project, service, and agile — not as letters after a name, but as the certifications I leaned on when the conversation in the room needed shared vocabulary.
ⓘ Badge marks are original designs created for this site, not the official certification logos of TOGAF / The Open Group, AWS, PMI, AXELOS, or Scaled Agile. Each credential is held by the operator and is verifiable on request via Credly or the issuing body.
A career, condensed.
Principal Enterprise Architect · Envestnet
Leading platform-wide architecture for a wealth-management platform serving $5T+ AUA. Building the modernization roadmap and the team that owns it.
Lead Enterprise Architect · Top-5 US apparel retailer
Omnichannel architecture across 1,200+ stores. Built the patterns that became the de-facto reference for the retailer’s tech org.
Domain Architect · Tier-1 US bank
Cards, payments, and core-banking modernization. The work that taught me about idempotency, the long shadow of mainframe contracts, and the politics of cutover.
Platform Architect · Top-10 enterprise ISV
Built and maintained an internal platform serving Fortune 500 customers. The job that turned me into someone who thinks in interfaces.
Senior Engineer → Tech Lead · Bulge-bracket investment bank
Trade capture, post-trade processing, and the kind of distributed-systems work that you cannot get wrong twice. Idempotency, dual-write, end-of-day reconciliation.
Software Engineer · Early-career employers
The Y2K-adjacent generation of work. Java, C++, and the long apprenticeship that produced everyone who shipped systems in the 2010s.
