User
Is the intake questionnaire ready to publish?
Las Vegas, Nevada
Senior software engineer. I build LLM agents and the tooling that keeps them in bounds.
13+ years in C#/.NET and TypeScript. Recent work is tool-calling assistants, an MCP server, and coding-agent plugins, on top of production authentication and healthcare integrations.
Live assistant
Ask about his AI work, his roles, or paste a job description. Each question stands on its own. It reads his resume and shows the notes it opened.
5 questions left today
Start with his agents, or paste a role to see where he fits.
Tool-calling assistants, MCP servers, and coding-agent plugins. Typed tools, bounded loops, streamed tool steps, and role limits. Day-to-day delivery with Claude Code, Cursor, and Codex, including cross-model review.
Tenant-aware SMART on FHIR authorization on a .NET and Aidbox FHIR R4 platform: scope and role constraints, token exchange, launch contexts, introspection, and membership. Provider and administration apps in React, TypeScript, TanStack, and Tailwind CSS with SMART/PKCE sign-in.
SAML and OIDC/PKCE single sign-on, just-in-time provisioning, tenant access control, Auth0, Azure AD B2C, and Azure Key Vault. Includes an Okta to Azure AD B2C handoff for a state social-services integration.
.NET APIs and Kotlin/Kafka services for event-driven fulfillment and third-party data delivery, plus an import service with production monitoring on AWS and Docker.
Coding agents working in a healthcare codebase needed a required reading list and a way to catch unsafe changes. I authored okf-live and okf-lens, two TypeScript Claude Code plugins that track agent and subagent document reads, expose an MCP task-route tool, and check for secrets, protected health information in logs, and architecture violations. I tested bypass attempts in headless and interactive sessions.
The context they route is Open Knowledge Format for the platform: 100+ concepts, about 30 architecture decision records, task routing, shared AGENTS.md and CLAUDE.md instructions, path-scoped rules, and CI checks on metadata and links. AI-authored documents stay in a human-verification state until someone checks them.
Authors needed help inside the product without unrestricted writes. I built a GPT-4o prototype in .NET and Angular: a custom Chat Completions client, about 20 domain tools, a six-round cap, and Angular streaming over server-sent events. Update and delete tools stay off the list. The tools cover rule simulation, publish-readiness checks, and role-restricted publishing. This is a working prototype, not a shipped product feature.
Conversation
User
Is the intake questionnaire ready to publish?
Assistant
Not yet. Two branches can never be reached, so publish-readiness fails. Here are the questions on those branches. Removing them is your call.
User
Push it to production anyway.
Assistant
I can't push to production with your role. An administrator can run that step.
Agent trace
Round 1 of 6. tool: find_questionnaire("intake")
found, status draft
Round 2 of 6. tool: simulate_rules(intake)
2 branches never reached
Round 3 of 6. tool: check_publish_readiness(intake)
not ready, unreachable branches
Blocked. model wants: delete_question(...)
not on the tool list. Nothing was changed.
Round 4 of 6.
answer streamed to the author
Denied. Round 5 of 6. tool: push_to_environment("production")
denied, role required
Stopped.
answer streamed. Hard cap is 6 rounds.
Request
The author asks in the app.
Tool list Stop
About 20 typed tools. No update or delete tools exist.
Role check Stop
Cross-environment push needs the right role.
Round cap Stop
The loop stops after six rounds.
Streamed result
Each tool step shows up as it runs.
A healthcare partner needed IdP-initiated sign-on into a multi-tenant product, including provisioning. I built SAML single sign-on with tenant mapping and Microsoft Graph provisioning, and moved the signing keys into Azure Key Vault. It has been in production since early 2024.
I designed and operate a Claude Code agent, with MCP and Python, used daily by business partners and two outside clients for email and guest-message drafting, pricing briefs, research, and web development. Resources are isolated across 20+ Discord channels. Outbound messages require human approval, and each channel's sender address is locked in code and checked with Google OAuth.
A separate scheduled agent researches, writes, and self-scores sourced articles, then delegates translation into five languages to parallel subagents. It has published 40+ posts to a production hospitality site since September 2026. The validator scores the draft. It is not a hard gate on publishing.
I use Claude Code, Cursor, and Codex for architecture, implementation, debugging, and cross-model review. The controls sit in the repository.
Nov 2023 to Oct 2026
Coding-agent context and plugins, a bounded GPT-4o assistant prototype, production SAML, and SMART on FHIR APIs.
Apr 2023 to Oct 2023
Browser extensions across Angular, React, and Vue, with .NET services and JWT authentication for AI integrations.
Sep 2020 to Dec 2022
Owned the Import service. Angular and Svelte front-end workflows, and mentorship on architecture and APIs.
Nov 2019 to Sep 2020
Seven Kotlin/Kafka microservices for fulfillment, from design through production, with Splunk monitoring and offshore coordination.
May 2017 to Nov 2019
Legacy platform redesign, WCF services moved to GraphQL, and mentoring for remote engineers.
2013 to 2017
.NET and Angular at Jeunesse Global, Megaplex Theatres, Virtuoso Branding, and Gold Point Systems.
BS, Computer Science, Weber State University.
Email or LinkedIn is the best way to reach me.