About
I'm a software architect with a little over twenty years of building things for the web. These days I'm a Technical Architect at ThinkLP, working on platform architecture, AI integration, and the standards and tooling that make a growing engineering team effective.
Before ThinkLP I spent five years at nCino, where I was the lead Salesforce engineer on Banking Advisor, an AI product for banks that won the 2025 Datos Insights Impact Award.
I started out on help desks and in server rooms, spent years writing LAMP applications as a freelancer, and ran an IT department along the way, so I tend to think about systems end to end, from the data model to whoever has to support it at 2 a.m. I also enjoy mentoring and explaining complicated systems in plain terms.
Current work
Most of my time at ThinkLP goes into a few broad areas:
- Platform foundations. Helping move a product from customer-by-customer customization toward a shared, packaged platform, with the architecture guidelines and review practices to keep it that way.
- AI services. Architecture for multi-tenant AI services that work alongside Salesforce, including a support agent that does first-pass triage and writes bug reports engineering can act on.
- Integration. Data pipelines that bring information in from many sources, and the plumbing between Salesforce and the cloud (GCP and AWS).
- Engineering practice. Release and upgrade automation, static analysis and automated code review, infrastructure as code, and monitoring.
Previously: nCino Banking Advisor
For the first year and a half I was the only dedicated Salesforce engineer on Banking Advisor, working with one AWS engineer and a product manager. I designed and built the Salesforce side: the data model, the agent framework, the configurable chat experience, and the background orchestration layer that lets long-running AI work move between Salesforce and AWS without running into API gateway limits. The product has since grown with a larger team, and I'm proud of the foundation it's built on.
Romantasy World
Romantasy World is my side project: an AI storyteller for romantic fantasy. You set up a world and a cast, and the story unfolds turn by turn as you play. Friends can join from their phones by scanning a QR code, companions have their own secrets and agendas, and when the story is over it can be turned into a multi-chapter novel. There's also a private tabletop mode I use as a game master for D&D nights with friends.
I wrote it from scratch: Vue on the front end, Node and Express on the back end, Socket.IO for live play, and MariaDB for storage, with Gemini models doing the writing. It's grown to around 37,000 lines of code and 89 test files since I started it in March 2026.
A few parts I'm happy with:
- Several agents per turn. A narrator writes the scene, then companion characters decide whether to speak, reflect on what happened, and update private notes about their own motives. The narrator is never allowed to put words in a companion's mouth, and that's enforced in code rather than just asked for in the prompt.
- Long-term memory. Recent turns are kept word for word, older ones are folded into a running summary, and a story "bible" keeps track of promises and consequences. Companions remember specific moments with the reader, such as a promise kept or a refusal, and recall the relevant ones later.
- Honest dice. In combat the server rolls the dice and owns the rules state. One model works out the mechanics, the result is saved, and only then does a second model narrate what happened.
- Checked encounters. Battles are generated, then scored by a separate model against the intended difficulty, and regenerated if they're off.
- Novel export. The finished story is planned into chapters, written in order with notes carried from one chapter to the next, cleaned of repetitive phrasing, and streamed to the reader as each chapter is done.
Each task is routed to a model sized for it, so cheap models handle summaries and classification while stronger ones do the writing, and every call is metered against a prepaid balance.
Games
A couple of small browser games I've built for fun. Both are plain HTML and JavaScript and run right in the browser.
Tank Wars
A turn-based artillery game in the spirit of the old DOS classics. Up to several players, human or bot, take turns lobbing shells across destructible terrain, adjusting for wind and spending their winnings on better weapons between rounds.
Basin
A little puzzle about water. Storms roll in, and you shape the land with walls, craters and channels to catch the rain, then use the sun to evaporate whole lakes for points before anything overflows. There's a two-minute storm challenge and a relaxed sandbox mode.
Experience
Technical Architect
Domain and platform architecture, AI integration, and engineering standards.
nCino
2020 – 2025Senior Software Engineer (AI Specialist), Senior Software Engineer, Software Engineer
Scalable architecture and microservices on Salesforce, then generative AI. Lead Salesforce engineer for Banking Advisor.
Orlando Baking Company
2013 – 2020Head of Information Technology; previously Software Engineer
Built a group- and user-based permission system, an EDI translation system for reading and writing data from many sources, a secure data-access layer, and a custom content management system, alongside running the IT department.
Datacore Consulting
2009 – 2013Jr. Engineer; previously Help Desk
Became the company's primary server engineer. Introduced the monitoring and automation system the company came to rely on, built a new help desk ticketing system, and trained new staff.
Freelance
2002 – 2022Web developer
Web applications and sites for a wide range of clients, mostly on the LAMP stack.
Education
B.S. in Information Technology, DeVry University, 2011
Electrical Engineering coursework, Oral Roberts University, 2005–2007
Skills
Salesforce (Apex, Lightning Web Components, managed packages), AI agent design and orchestration, Google Cloud and AWS, Terraform, JavaScript and Node, Python, Vue and React, PHP, Java, .NET, and Linux administration.
Awards
- Engineering Excellence Award, ThinkLP, February 2026.
- Datos Insights Impact Award, Gold for Best AI and Advanced Analytics Innovation, October 2025, for my work as principal Salesforce architect on nCino Banking Advisor.
Writing
I write occasionally on LinkedIn, mostly about how engineering teams work:
- The Case for the "Lazy" Architect
- Two Types of Software Engineers (and Why You Need Both)
Outside of work
For many years I volunteered at Bethel Cleveland, running sound for the campus and working with the youth group.