Senior Agentic AI Lead & Software Development Manager — IBM

I build and lead engineering teams shipping agentic AI systems into production.

Nine-plus years architecting and scaling production agentic systems and cloud-native infrastructure, the last few focused on multi-agent assistants, MCP gateways, retrieval, and the evaluation infrastructure that keeps them honest. I care about the unglamorous parts — tracing, grounding, latency budgets, and the org design that lets a team move fast without shipping something it can't explain.

What I do

Agentic systems

Design and build multi-step, tool-using agents: planning loops, retrieval and reranking, structured tool interfaces, and the guardrails around them. Focus on making behaviour observable and bounded.

Evaluation & observability

Trace every run, score it, and turn regressions into fixtures. Offline eval suites, runs and quality scores tracked as experiments in MLflow, OpenTelemetry traces, and dashboards a product manager can actually read.

Engineering management

Run teams delivering AI features against real deadlines: hiring, technical direction, stakeholder translation, and keeping the roadmap grounded in what the models can and can't do today.

Experience

Where I've done it

Seven years at IBM so far — moving from senior developer and tech lead to engineering manager to leading agentic AI delivery.

Apr 2024 — Present

Senior Agentic AI Lead · IBM

Lead a 6–8 engineer team building and operating a production multi-agent AI assistant — drove it from beta to GA across two releases. Designed and shipped the enterprise MCP gateway behind it, the retrieval and reranking pipeline, AI-safety screening on a GPU cluster (OpenShift AI), and the OpenTelemetry + MLflow observability stack. Also ran a platform-migration feasibility assessment to VP-level stakeholders and an active pentest remediation cycle.

May 2022 — Apr 2024

Software Development Manager · IBM

Led design and development of Go / Python / PHP microservices powering provisioning and deployment tooling on OpenShift. Built a Kubernetes Operator for cluster bootstrapping, Tekton CI/CD pipelines for enterprise software installs, CVE remediation across six clusters, HashiCorp Vault secret rotation, and RBAC audits.

Apr 2019 — May 2022

Senior Software Developer / Tech Lead · IBM

Full-stack microservices and automation across deployment tooling on OpenShift. Built an ArgoCD + Tekton GitOps pipeline across multiple clusters, an event-streaming / SSO integration, and resolved a critical platform-availability outage — then hardened the environment against a repeat.

Education

2018

B.S. Mathematics

University of Texas at San Antonio

Selected work

Case studies

Genericised on purpose — patterns and decisions, not internal systems by name. Happy to go deeper in a conversation.

Case study 01

Grounding a production RAG assistant that kept making things up

An internal assistant answered from a large, messy corpus and confidently invented specifics when retrieval missed. The team was patching prompts and losing trust with users.

  • Rebuilt retrieval around a two-stage pipeline: fast recall, then a cross-encoder reranker (the documentation scenario in the demo below shows this step in miniature).
  • Made the model cite spans it actually used and refuse when top-k relevance fell below a threshold.
  • Stood up an eval set from real failed queries so every prompt change was measured, not vibes.

Outcome: hallucinated answers dropped sharply and the refusal path became a feature rather than an embarrassment.

Case study 02

Turning an opaque agent into something the team could debug

A multi-step agent worked in demos and failed unpredictably in the field. Nobody could say why a given run went wrong without re-running it by hand.

  • Added structured tracing for every step — plan, tool call, tool result, model turn — with timing and a per-step quality score.
  • Built a trace explorer (the step-by-step run panel in the demo below is the same idea) so engineers and PMs could open any run and see exactly where it drifted.
  • Wired warn/error states on spans to alerting, so bad runs surfaced before users complained.

Outcome: mean time to diagnose a bad run went from hours to minutes, and regressions started getting caught in review instead of in production.

Case study 03

Growing an AI team without losing the plot

A small group needed to become a delivery team shipping agentic features on a roadmap, while the underlying models and tooling changed every few weeks.

  • Hired for judgement and curiosity over framework familiarity — the frameworks kept changing anyway.
  • Set a rule that no capability ships without an eval that would catch it regressing.
  • Kept a running "what the model can't do yet" list so product commitments stayed honest.

Outcome: predictable delivery on AI features and a team that treats model limitations as a design input, not a surprise.

Interactive

A reservation assistant, simulated end‑to‑end

This is a stripped-down, genericised model of the kind of multi-agent assistant I lead in production — a user asks for something in plain language, the agent routes it, calls tools through a gateway, runs a safety screen, answers, and logs the whole run for evaluation. Pick a request and watch it unfold on the right, step by step. Everything here is canned and runs in your browser; the real system runs on a GPU cluster (OpenShift AI), with internal names, auth, more tools, and far more edge cases.

reservation assistant

// pick a request below to start a run

Try one

agent run idle
  1. no run yet

ok  ·  warn — needs a human or degraded gracefully  ·  click a step to expand

Approach

How I think about building this stuff

Make it observable before you make it clever. An agent you can't trace is an agent you can't improve. The first thing I build on any new system is the ability to open a single run and see every decision it made and how good each one was.

Evals are the product surface. Every bug report becomes a fixture. Every capability ships with a test that would fail if it regressed. This is slower for the first month and much faster forever after.

Bound the blast radius. Tools with narrow, typed interfaces. Explicit refusal paths. Confirmation before anything irreversible. The interesting behaviour lives inside guardrails, not instead of them.

Manage the humans and the models honestly. Teams do their best work when the roadmap reflects what the models can actually do this quarter. Part of my job is keeping that translation accurate in both directions — up to stakeholders and down to the backlog.

Stack

What I build on

The tools I've shipped and operated production agentic systems with. Depth varies — this is what I reach for, not a checklist.

AI / ML
LangGraph, MCP architecture, RAG & reranking, watsonx.ai, Granite models, LoRA fine-tuning, Granite Guardian (safety / guardrails)
Languages
Python, Go, TypeScript / JavaScript, NestJS, Bash, YAML
Infra
Red Hat OpenShift & OpenShift AI, Kubernetes, Tekton, ArgoCD, GitOps, NVIDIA MIG / H100 GPU
Cloud & data
IBM Cloud, Kafka (Event Streams), Milvus, Cloud Object Storage, PostgreSQL, HashiCorp Vault
Observability
OpenTelemetry, Grafana Tempo, Loki, Prometheus, MLflow (experiment & quality tracking), IBM Concert

Off the clock

Homelab

A rack in the house where I try things before I'd risk them at work — a Proxmox cluster, self-hosted services, home automation, and a growing pile of MCP servers wiring it all together. Good for staying honest about what “just deploy it” actually costs.

Contact

Let's talk

I'm open to conversations about agentic AI engineering and engineering management roles. The fastest way to reach me is email.