I’m Jonathan Scholtes. I build AI systems that move a business number, and I build them with the people who will run them.

Stochastic Coder is where I write up that work: deep dives, reference architectures, and working code for production AI and agentic systems. Most posts come with a GitHub repo you can deploy and run, along with the design decisions behind it, including what didn’t work.

What you’ll find here

  • Agentic systems: multi-agent orchestration, tool use, and MCP
  • AI grounded in real data: RAG, vector search, and data agents over enterprise sources
  • Running AI in production: evaluation, observability, cost, and guardrails
  • The math underneath: machine learning, forecasting, and optimization

How I build

  • Outcome first. Every architecture starts with the business case and the number it should move.
  • System design over isolated prompts. Prompts are brittle. Architectures have to be resilient.
  • Governed autonomy. Agents work within explicit guardrails, and people approve what matters.
  • Observable by default. If you can’t trace it and evaluate it, it isn’t ready for production.

About me

I’m an applied AI architect, currently at Microsoft. I work with engineers, operators, and business leaders to turn broad AI requests into specific, measurable outcomes, then take them from proof of concept through pilot to production.

I’m hands-on. I write Python and C#, build with agentic frameworks, RAG, voice AI, machine learning, forecasting, and mathematical optimization, and deploy it all on cloud infrastructure as code. My MS in Economics shapes how I think about value, which is why I start with the business case rather than the model.

I also coach students in applied AI at the University of Nebraska–Lincoln Raikes School.

Why “Stochastic Coder”

Stochastic means governed by probability. The site’s motto, non-deterministic evolution of code, started as a nod to the statistics and data science I first wrote about. It fits even better now. A lot of the software we ship today calls models that won’t give the same answer twice, and the job is building systems that are reliable anyway.

Connect

The views here are my own