What I learned shipping it.
Technical write-ups from systems that run in production: AI agents, MCP, .NET, Azure and automation. What worked, what broke, and what I wish I had known on day one.
- Oct 3, 2026
A Real-Time AI Meeting Assistant for the Enterprise, and the Road to an AI Phone Receptionist
Live transcripts with speakers, answers grounded in company context and on-screen data about two seconds after the question, and why the same engine leads to an AI phone receptionist.
10 min read · AI Agents · Voice AI · LLM · .NET · Case Study
- Sep 26, 2026
Two Features, Two Days: What Spec-Driven Development with Spec Kit Taught Me
Shipping two real features to production with Claude Code and GitHub's Spec Kit, and where production proved the spec wrong.
11 min read · AI Agents · Claude Code · Lessons Learned
- Sep 23, 2026
Setting Up Local Routines with AI Agents: What Worked and What Didn't
Moving back-office jobs from "a person does this every morning" to "an agent does it, a person checks the summary", and what did and did not work.
6 min read · AI Agents · Claude Code · Automation · Lessons Learned
- Sep 22, 2026
Under the Hood of IProcessor: Parsing 60+ Vendor Invoice Formats with an Azure WebJob
The parsing engine, the stack and the delivery pipeline behind IProcessor: an Azure WebJob that reads 60+ vendor invoice layouts from a shared mailbox.
6 min read · .NET · Azure · Integration · Case Study
- Sep 20, 2026
IProcessor for GMD Stores: From Vendor Invoice to Store Shelf in One Web App
A tour of IProcessor: vendor invoice PDFs parsed automatically, reconciled against purchase orders, received in the warehouse with RFID pick-and-pack checks and Zebra labels, and reported on for margins.
6 min read · .NET · Automation · Case Study
- Sep 19, 2026
Hiding Complex Detail Sections on Phones Without Breaking Deep Links
Hiding two desktop-only tabs on phones in a legacy ASP.NET WebForms app turned into a small routing policy: saved links, window resizes and slow AJAX responses.
5 min read · Legacy .NET · Frontend · Case Study
- Sep 16, 2026
Syncing Staff Assignments to Google Calendar in a Legacy ASP.NET WebForms App
The backend for syncing staff assignments to Google Calendar in Staffpoint, a large ASP.NET WebForms staffing platform on .NET Framework 4.8: the product, its stack, and how the sync works.
6 min read · Legacy .NET · Integration · Case Study
- Sep 14, 2026
I gave my support team an AI that reads our database. It cost $0/month and zero lines of code.
A read-only SQL MCP server for Claude and ChatGPT with Microsoft's Data API builder: one JSON file, a two-line Dockerfile, an App Service plan we already paid for, and the eight things I wish I had known.
7 min read · MCP · AI Agents · Azure · Lessons Learned
- Sep 10, 2026
Moving a React app on Azure Static Web Apps to a Cloudflare custom domain
Moving a React app on Azure Static Web Apps to a Cloudflare-managed custom domain without exposing an unfinished site, and everything else the hostname touched: CORS, email and Stripe redirects.
6 min read · Azure · Cloudflare · DevOps
- Sep 7, 2026
Building a Real-Time Ticket Listings Monitor in Python: From Legacy .NET to a Lean Alerting Pipeline
Porting a ticket-listings monitor from legacy .NET to a lean Python service: a proof-of-work bot challenge in pure code, "what is new" decided in SQL Server, and Slack alerts within seconds.
5 min read · Python · Automation · Integration
- Sep 6, 2026
A self-shutting-down Linux VM for a weekly batch job on Azure (.NET 8 + CZDS zone files)
About 280 million domain names from ~1,000 TLD zone files, processed weekly on a Linux VM that a Logic App boots and that deallocates itself when the .NET 8 job is done, so idle cost stays close to zero.
6 min read · Azure · .NET · Cloud Cost · DevOps
- Sep 4, 2026
100k Blobs a Day and the Retention Rule Azure Doesn't Have
About 100,000 blobs a day, never deleted. How a "should we just move this to SQL?" question became a lesson about where cloud costs hide, and the retention job that fixed it.
5 min read · Azure · Cloud Cost · Lessons Learned
- Sep 2, 2026
Automating a Weekly Inventory Workflow with Power Automate Desktop
Automating a weekly StubHub research routine with Power Automate Desktop: repeatable browser filters, an Excel work list, a state file for the weekly cycle, and the choices that let it run unattended.
4 min read · Power Automate · Automation · Case Study
- Aug 31, 2026
Building a Market-Intelligence Platform for a Ticket Broker (Freelance Project)
A year of freelance work for a US ticket broker: Ticketmaster event ingest, seat-availability snapshots as time series, Slack alerts, and data pipelines running across two clouds.
4 min read · .NET · Azure · AWS · Case Study
- Aug 28, 2026
Syncing Lysted → SkyBox Through Slack: When an HTML Email Is the Only API
A sales platform with no webhooks and no usable order API: parsing "tickets sold" HTML emails out of Slack to record sales in SkyBox, plus automatic settlement reconciliation.
3 min read · Integration · Automation · .NET
- Aug 25, 2026
Defending Against LLM Output: Parsing Dirty JSON in C#
LLMs return almost-JSON: greetings, Markdown code fences, numbers as strings, the odd missing bracket. The defensive layers I use in C# to treat model output like user input, not like an API response.
3 min read · LLM · .NET
- Aug 23, 2026
Classifying Event-Ticket Emails with AI: From Prompt Engineering to Fine-Tuning GPT-4o-mini
The AI pipeline that reads and classifies hundreds of event-ticket emails a day: prompt engineering, emails with images, building a dataset and fine-tuning GPT-4o-mini.
4 min read · LLM · AI Agents · .NET · Case Study
- Aug 22, 2026
Building an Automation Hub for a Ticket-Resale Business in .NET
One .NET console app, dispatched by command-line argument and driven by Task Scheduler, that connects more than 10 systems for a ticket-resale business: POS, marketplaces, banking, Slack and an AI that reads email.
3 min read · .NET · Automation · Integration · Case Study
- Aug 22, 2026
Four Months Building a Domain Research Platform: What I Learned
Four months and a hundred-plus commits building a domain research SaaS: SQL performance at 13 million rows, stale third-party data, background jobs and multi-tenancy.
3 min read · Lessons Learned · Case Study
Archive
Working notes from 2021–2022: AWS, Azure and Power Automate, kept for reference.
- Mar 18, 2022
Receiving real-time webhooks with an Azure Function
A C# HTTP-triggered Azure Function that receives SkyBox invoice webhooks in real time, with the subscription request and HMAC signature check.
1 min read · Azure · .NET · Integration
- Feb 19, 2022
Connecting to Azure SQL over a point-to-site VPN
Working notes on a point-to-site VPN into an Azure virtual network: self-signed certificates in PowerShell, a private endpoint for Azure SQL, and connecting from SSMS.
1 min read · Azure · DevOps
- Feb 19, 2022
GitLab CI/CD to Azure App Service for a .NET Framework app
A GitLab CI/CD pipeline that builds a .NET Framework web app and WebJob on Windows runners and deploys to staging, DR and production App Services with Web Deploy.
1 min read · DevOps · Azure · .NET
- Aug 3, 2021
Power Automate business case: Slack alerts from Azure SQL
Posting alerts to Slack with Power Automate when a stored procedure in Azure SQL finds rows that hit the criteria.
1 min read · Power Automate · Automation
- Jul 14, 2021
Power Automate business case: shared mailbox attachments to SharePoint
A Power Automate flow that watches a shared mailbox for expense reports, saves attachments to a SharePoint library and marks each email read and complete.
1 min read · Power Automate · Automation
- Jul 10, 2021
Power Automate business case: a holiday request flow
A holiday request flow built from Microsoft Forms, Teams, Power Automate and Exchange: the form, the manager lookup, the approval and the condition, with screenshots.
1 min read · Power Automate · Automation
- Jun 11, 2021
API Gateway, Lambda and Cognito: login from the CLI
Working notes on securing an API Gateway + Lambda endpoint with Amazon Cognito: logging in from the CLI and with plain curl, plus the references that helped.
1 min read · AWS
- Jun 5, 2021
Hands-on: an automated CI/CD pipeline for .NET Core Lambda on AWS
Working notes on applying the AWS DevOps blog's automated CI/CD pipeline for .NET Core Lambda functions to my own project, including a CodeCommit credential issue on Windows.
1 min read · AWS · DevOps
- May 26, 2021
Uploading to S3 through an API Gateway service proxy, with subdirectories
Step-by-step notes for an API Gateway service proxy that reads and writes S3 objects in nested folders through a single {proxy+} resource.
1 min read · AWS
- May 25, 2021
AWS API Gateway as an S3 proxy: IAM role and path parameters
Notes on exposing an S3 bucket as a REST API with API Gateway: the IAM role, its trust relationship, and folder/item path parameters.
1 min read · AWS