President of Vidya. Software architect and engineer with 25+ years building production systems for commercial and federal clients. I help teams modernize legacy platforms, ship enterprise AI, and recover engineering cultures that have drifted off course.
I have spent most of my career on the hard part of software: integrating leading edge technology with systems that already carry real load. State Department Consular Systems Modernization, HealthCare.gov, Recreation.gov, and a decade of commercial work taught me that the simplest architecture you can defend usually wins.
Currently I build enterprise AI on the JVM with Kotlin, Spring AI, the Model Context Protocol, and Agent Skills.
- Modernization. Language migrations (Java to Scala, legacy to Kotlin), cloud migrations to AWS, Azure, and Cloudflare, and architecture transitions that distribute only when the business case forces it.
- Enterprise AI and agents. Agentic systems on Spring AI and Embabel, MCP servers and clients, and spec-driven development with Claude Code, Goose, and Warp.
- Data and analytics. Spark and Databricks pipelines with a Hadoop pedigree that goes back to DARPA XDATA.
- UI engineering. React, Next.js, and Astro, including component libraries that cut UI development time across multiple product teams.
- Culture and architecture review. I help teams whose deployments crawl, whose code nobody documented, and whose people cannot reach flow state.
I take remote consulting engagements.
These are positions I hold and defend in production.
- Composition over inheritance. Program to interfaces. Inheritance hierarchies age badly.
- Functional core, imperative shell. Keep purity at the center and push effects to the edge.
- Modular monolith first. Microservices solve organizational and scaling problems. Reach for them when those problems actually arrive.
- Zero Trust and DevSecOps. Every service authenticates every request, and security lives in the pipeline.
- Types and tests both matter. Coverage as a target is a trap. I chase confidence, measured by mutation testing, not a coverage number. Types are also critical for configuration and not just code.
- Agile buys confidence. Agile is not about meetings where no one is allowed to sit down. Deliver something fast. Get feedbaack. Iterate towards outcomes. DORA and SPACE tell you something real. The McKinsey developer productivity index does not.
- Python is great and reigns supreme at data science, but Python is not the language of AI. I build production AI on the JVM.
I write about all of this and back the opinions with measurable outcomes from my own engagements.
Lately I spend my time on agent frameworks, MCP, building an "evaluation gauntlet" for AI, and how you create a "culture of context."
I blog about software engineering, architecture, AI, and how technology shapes the way we work and live. I write for engineers, for product managers, and for anyone who wants to think harder about the systems we build. I also teach courses that skip the theory worship and help working engineers ship better software: Enterprise AI on the JVM, Data Engineering with Spark, Java for Work, and Modern Agile.
The GAO cited me as an expert user in its report on agile methods in the federal government. I have spoken on the promise and peril of the Model Context Protocol, reactive programming with Spring Boot, and even at the White House on how government can attract elite tech talent.
You can find me on LinkedIn or at vidyasource.com.

