AI & Machine Learning

I ship AI and ML to production — not demos.

Most of my hours lately go to three things: building LLM features and agents on Claude, pointing those agents at cloud migrations that port real codebases, and getting deep-learning models — LSTM forecasters, feature-ranking engines — to actually finish their runs on Kubernetes. I write the code myself, I review every agent pass, and nothing gets handed off.

What I Do in AI & ML

Four lanes I work in, every one backed by something that actually shipped.

AI-First Product Engineering

I build LLM features on Anthropic Claude the way I’d build any production service: route each task to the cheapest model that can handle it (Haiku / Sonnet / Opus), lean on RAG and prompt caching, expose tools through MCP with structured outputs, and meter every token server-side — because I’ve seen what an unmetered LLM feature does to a bill.

AI Agents & Agentic Migration

I put agents on jobs that used to eat months — like porting large codebases between clouds with Claude on AWS Bedrock and MCP servers I wrote for the task. The lesson I learned early and keep relearning: agent output is a draft. I read every pass before it merges.

Distributed ML & Deep Learning

I’ve trained LSTM and DeepAR models in PyTorch and ranked 200K+ features, and the part that nearly sank the project wasn’t the math — it was the compute. Spreading billions of calculations across Kubernetes with Ray and KEDA is what turned runs that never ended into runs that finished.

ML in Production .NET

When a score has to come out the same every time, I reach for ML.NET inside the .NET stack I already trust: forecasting and scoring with training pipelines I can re-run exactly, unit tests around the model, and drift monitoring so I know when the world moves out from under it.

350+
Code bases my AI agents migrated between clouds
200K+
Features ranked by a distributed ML engine I built
3
Claude models I route per task in production
~4×
Faster delivery since I went AI-first in my own workflow

My AI & ML Stack

What’s actually on my machine and in my clusters.

LLMs & Agents

LLMs GenAI Agentic AI AI Agents Claude (Haiku / Sonnet / Opus) AWS Bedrock Azure OpenAI Vertex AI RAG Vector Databases Embeddings LangChain LlamaIndex MCP Evals Fine-Tuning Prompt Caching

Machine Learning

PyTorch ML.NET scikit-learn TensorFlow Hugging Face SageMaker LSTM DeepAR MLOps LLMOps

Distributed Compute

Ray Anyscale KEDA Kubernetes AWS EKS RabbitMQ

AI Governance for Regulated Industries

I’ve spent much of my career in healthcare and financial services, where AI has to be safe, auditable, and cost-controlled before anyone cares that it’s clever.

Your data stays yours

I run Claude and other models in-tenant — AWS Bedrock, Azure OpenAI, Google Vertex AI — so prompts and documents never train a foundation model and inference never leaves the client’s cloud account or VPC. That’s the first architecture question I settle, not an afterthought.

PHI & PII discipline

Minimize, redact, scope. I learned that discipline doing real FHIR/HL7 interoperability work on multi-tenant healthcare platforms, and I apply it to every prompt pipeline I build: regulated data stays inside controlled boundaries, period.

Auditability & cost control

I meter every model call server-side — token accounting, logging, hard spend caps. I built those controls into my own SaaS first, after seeing how fast an uncapped LLM feature can burn money, so finance never gets an AI surprise.

Human in the loop

I review every agent pass myself — structured outputs, eval gates, and deterministic ML.NET wherever repeatability matters. Hallucinations get caught at my desk, not in production.

Straight Answers on Putting AI in Production

What teams ask me before they let AI anywhere near their systems.

Will our data be used to train the model?

No. When I deploy through AWS Bedrock, Azure OpenAI, or Google Vertex AI, your prompts and documents stay inside your cloud tenant and never train the underlying models. I build the pipelines so sensitive data structurally can’t leave your controlled environment.

How do you keep AI costs predictable?

I tier models per task (Haiku / Sonnet / Opus), cache prompts, stagger requests with retry/backoff, and meter tokens server-side against hard spend caps. In Grade My Investments, users see an estimated cost before a job runs — I built it that way because I’m the one paying the API bill.

How do you handle hallucinations and reliability?

I constrain outputs with structured tool use, run eval pipelines that prove a prompt before it ships, fall back to deterministic ML.NET wherever repeatability matters, and read agent output myself. AI does the heavy lifting on my projects — it never gets the last word.

When should we not use AI?

More often than the hype admits — whenever a deterministic rule, a SQL query, or classic ML is cheaper and more reliable. I’ll say plainly where AI earns its keep and where it just adds cost and risk; that judgment call is what you’re actually hiring.

Claude, GPT, Gemini, or open-weight — which model?

Whichever wins on cost, latency, and reasoning depth for the task in front of me — I have no vendor loyalty. Most of what I’ve shipped happens to run on Anthropic Claude, but I’ve wired in GPT, Gemini, Mistral, and open-weight models where they fit better.

Can you work inside our cloud and compliance boundaries?

Yes — that’s how I prefer it. I work inside your Azure, AWS, or Google Cloud accounts, in your VPC and IAM, with everything as infrastructure-as-code and audit-logged. Your data never routes through some third-party tool of mine.

Got AI or ML that needs to reach production?

LLM features, agents, distributed deep learning — this is the work I do every day, hands-on. Corp-to-Corp engagements out of Dallas / Ft. Worth.