Projects
A collection of things I’ve built to answer questions I couldn’t find good answers to: whether a team of AI agents can genuinely ship production code, whether a drive-thru can hold a natural conversation in any language, and what it actually takes to run either one reliably on Azure.
The same themes keep surfacing across the list below: multi-agent orchestration, real-time voice, and the developer tooling that makes both practical to operate rather than just demo well. Everything here is open source on GitHub.
Squad: AI-Powered Development Coordination#

The AI team that helped build this very website. Squad by Brady Gaster is an AI-powered development coordination platform that assembles specialized agents (Lead, Frontend, Backend, Tester, Scribe) to work as a real engineering team inside your repository.
Tech: AI Agents 路 GitHub Copilot CLI 路 Multi-Agent Orchestration 路 TypeScript
Squad on Azure Container Apps#

Run Squad remotely on Azure Container Apps, with one isolated ACA job execution per Squad session, GitHub-hosted code and state, GitHub /remote session access, and centralized Aspire Dashboard telemetry. Includes a Ralph scheduler job for unattended work, an agent tool policy that strips destructive verbs from autonomous runs, and duplicate-dispatch protection via durable leases.
Tech: Azure Container Apps 路 ACA Jobs 路 PowerShell 路 Bicep 路 .NET Aspire 路 GitHub Actions 路 OIDC 路 Azure Container Registry
Squad Hub#

One place to see and control every Squad session, wherever it runs: laptop, dev box, Azure Container Apps, or a Kubernetes pod. A live view groups sessions by device and pulls anything blocked on a human to the top, so a run waiting on tool approval never stalls just because you walked away from that machine. Approvals show the literal command and every path it touches, and can be answered from anywhere, including your phone, since it installs as a PWA. A zero-dependency Node app that reads .squad/ for team, decisions, and model policy.
Tech: Node.js 路 Zero-dependency 路 WebSocket 路 SSE 路 PWA 路 GitHub OAuth 路 Docker 路 AKS 路 Azure Container Apps
Retail Pulse: AI-Powered Brand Analytics#

AI-powered brand intelligence platform using agentic AI to analyze depletion trends, shipment dynamics, and field sentiment for retail & CPG brands. A multi-agent system powered by the Microsoft AI Framework (MAF) and Model Context Protocol (MCP) with tenant-configurable branding, real-time SignalR telemetry, and a React dashboard.
Tech: .NET Aspire 路 MAF 路 MCP 路 React 路 Azure OpenAI 路 SignalR 路 OpenTelemetry
Squad Commerce#

AI-powered retail showcase demonstrating the cutting edge of agent interoperability, with MAF, A2A, MCP, AG-UI, and A2UI protocols working together. Built on ASP.NET Core with SignalR real-time communication and a Blazor frontend.
Tech: ASP.NET Core 路 SignalR 路 Blazor 路 MAF 路 A2A 路 MCP 路 AG-UI
Azure AI Drive-Thru: Powered by Microsoft Foundry#

One voice ordering platform for every quick serve restaurant brand. Azure AI Drive-Thru folds what I learned building separate Dunkin’, Sonic, and McDonald’s demos into a single deployment on Microsoft Foundry. A guest pulls up to any brand’s drive-thru, holds a natural conversation in their own language, and drives away with a correct, fully priced ticket. Pick a different brand in settings and the menu, voice, theme, prompts, and ordering rules all change with it, with no redeploy.

The Sonic Drive-In, Dunkin', and McDonald's personas 路 click to enlarge
Brands are data, not code. Each one ships as a persona pack holding its menu, indexed in Azure AI Search for grounded retrieval, along with its sizes, combos, add-ons, happy hour, upsell playbook, voice, and design language, all validated against a schema at startup. The sales logic is deterministic server-side code rather than model memory: combos know exactly which side or drink they still need and absorb items already on the ticket, upsells follow each brand’s own playbook, happy hour applies only where and when a brand runs one, a downed ice cream machine flags affected items with alternatives, and a request for mustard on a shake gets a friendly redirect instead of a silent accept. Every action the model takes is a typed tool call, which makes the same seams the natural home for a brand’s rewards program and its system integrations, so loyalty lookups, point-of-sale tickets, kitchen displays, and CRM become new tools and persona settings rather than a fork of the app.
It is also built twice on purpose. A Python reference backend and a C# backend on ASP.NET Core and .NET 11 load the same persona packs and enforce the same rules, and a language-neutral conformance suite that only speaks HTTP and WebSocket holds them to one contract, so a team can adopt whichever stack its engineers already run. Models are configuration too. The realtime pipeline streams speech to speech with GPT Realtime, while a cascade pipeline pairs speech-to-text and text-to-speech with any tool-calling chat model, opening the door to the 11,000+ models in the Microsoft Foundry catalog, from GPT-5 mini to Phi-4. Each brand declares which models it allows, and an unusable choice is rejected before the WebSocket ever opens.
Around all of that sits the work that makes it hold up live: barge-in and layered echo suppression, real-time transcription and translation across English, Spanish, Mandarin, French, and more, order resume after a dropped connection, graceful recovery from rate limits, Microsoft Entra ID sign-in, and a built-in Demo Mode that plays a guided tour with a synthetic guest voice.
Tech: Microsoft Foundry 路 Azure OpenAI GPT Realtime 路 Azure AI Search 路 Python 路 C# 路 .NET 11 路 ASP.NET Core 路 React 路 TypeScript 路 Azure Container Apps 路 Bicep 路 Microsoft Entra ID
Squad Uplink#

A browser-based portal for GitHub Copilot CLI with Squad awareness, built on Shannon Fritz’s Copilot Portal. Run the server on a PC or in a container, then open it from any device: same network by QR code, or from anywhere through DevTunnels.
Full session management lives in the browser, including model switching, tool approvals, and image attachments by paste or drag and drop. A context window bar breaks down token usage between system, messages, and free space, and the model picker surfaces context size, vision and thinking support, and cost multiplier per model. An agent picker reads custom agents from ~/.copilot/agents/ or .github/agents/, and the layer around it all is the point: .squad/ state visibility, Squad-aware prompt injection, and multi-client approvals. Mobile-first and installable as a PWA, so the same session can be driven from a PC and a phone at once, with retro terminal themes for good measure.
Tech: TypeScript 路 React 19 路 Vite 6 路 Tailwind 4 路 Node.js 22 路 PWA 路 DevTunnels 路 Docker
ClassicPad#
馃摑
A lightweight Notepad-inspired text editor built in C# WinForms. Faithful to the classic Windows Notepad workflow with the benefits of modern .NET under the hood.
Tech: C# 路 WinForms 路 .NET
MightyBS#
This website! A personal blog and portfolio built with Hugo and the Blowfish theme, hosted on Azure Static Web Apps with CI/CD via GitHub Actions.
Tech: Hugo 路 Blowfish 路 Azure Static Web Apps 路 GitHub Actions 路 Decap CMS


