Featured Projects by OpenCode with Qwen 3.8 Flash Medium

I keep a global trade show on its feet, teach an IT team’s AI assistant to work inside their real tools, and run this site so that every change can be explained or undone. Three projects, one habit: find the root cause, build it to last, and document it so it survives without me.

23

years in IT, one MSP

23

American Film Markets delivered

5

production MCP servers

7

scheduled agent jobs

American Film Market IT operation

Rows of dark theater seats at the American Film Market screenings venue

The problem. Every November the American Film Market, run by IFTA since 1981, turns a hotel into an international trade show. Guest rooms become offices for exhibitors and staff, a theater next door runs the screenings, and producers, distributors and financiers from more than 70 countries arrive to license and sell independent films. The dates are set by the industry calendar, the buildings are not ours, and I have run the whole IT operation for 23 consecutive years.

What I do. I am the sole architect, planner and on-site lead: inventory, timeline, staffing, vendors and the runbook. I size the build for about 20 year-round staff and 50 to 60 peak users, negotiate network requirements with hotel and theater IT, and engineer around constraints like ballrooms and staff rooms sharing one subnet. I author a golden laptop image each year that the rental vendor clones, lead the office-to-hotel cutover, and run everything during the show with a team of three and departments I coordinate without formal authority.

Tools and technologies. Network architecture, firewalls, VLANs and routing in facilities we do not own; mass imaging and deployment; structured cabling and phone coordination with venue IT; seasonal onboarding and offboarding of staff from a July ramp.

The outcome. Three venue changes in three recent years (Le Méridien Delfina 2023, the Palms Casino Resort in Las Vegas for the first AFM outside LA in 2024, and the Fairmont Century Plaza since 2025) meant a new network design and a new venue IT team each time, on the same immovable deadline. Tighter budgets, less on-site prep and a smaller crew now put more weight on the plan and the runbook, and the cloned image gets each user’s laptop deployed in minutes. The show opens when it opens, 23 years running.

More on the AFM build: my Experience page


AI tooling for the MSP team

The problem. I work at a managed service provider supporting roughly 400 to 500 seats across real estate, legal, nonprofit and film clients. Investigating one alert can mean bouncing between ticketing, remote monitoring, endpoint security, Microsoft 365 and backup consoles. I wanted Claude to do that legwork for the tech team, without giving an AI model loose authority over production systems.

What I did. I led the team’s Claude rollout and built everything behind it: five production MCP servers (Freshdesk tickets, N-able N-sight RMM, WatchGuard EPDR, read-only M365 security forensics, and M365 tenant administration with preview-then-execute), plus agent skills on top. The ticket-triage skill is the team’s most-used: it investigates alerts across systems, writes a clean private note and closes informational tickets. Other skills cover breach reports, morning briefs and safe Google Workspace editing. n8n pipelines handle reported phishing email and a weekly backup review that flags the jobs needing attention.

Glowing blue fiber optic strands representing the integrations between systems

Tools and technologies. Model Context Protocol servers wired into Freshdesk, N-sight, WatchGuard EPDR and Microsoft 365; Claude agent skills; n8n; a Composio integration giving each tech’s account API access across the stack. Beyond the helpdesk, I built a vendor assessment engine in R with local sentence embeddings: a knowledge base of atomic client facts, a crosswalk of 300+ controls carried over from prior assessments, evidence retrieval from policies and SOC 2 or ISO 27001 attestations, and a review queue that flags anything unsupported instead of guessing.

The outcome. The team investigates, documents and reviews inside the tools they already know, and the recurring jobs run themselves. Most servers are read-only by design; administration changes are previewed before execution. The design rule for every agent I build: read-only by default, and nothing changes without a way to undo it.

Full catalog: my AI & Automation page


This AI-managed WordPress site

Rows of server racks lit in blue, the Linux host running the site

The problem. This site is my personal site and my AI lab at once, and several AI harnesses write to it. Left unmanaged, any one of them could quietly break a page with no way to say later who changed what, or to put it back.

What I did. WordPress runs in Docker on a Linux host, reachable only over my private Tailscale network. Every harness reads the same guidelines and works the same way: a snapshot before any write, changes through WP-CLI or the WordPress MCP adapter only, verification after, then an export and a typed commit to GitHub. Every working session closes with a numbered Lab Note carrying its own change record and rollback command, and a Harness Scoreboard scores each tool on snapshot discipline, commit hygiene, rollbacks and scope from the git history itself.

Tools and technologies. WordPress in Docker with WP-CLI, the WordPress MCP Adapter, GitHub with readable block-markup exports, custom scripts for snapshots, sync and rollback, a 15-minute auto-capture job, and a Python scoring engine. The same workflow now hosts a bake-off where several AI harnesses get the identical task, rules and starting point and are graded on the result and on their process.

The outcome. Every change on this site is attributed, documented and reversible, and the round-trip of change, commit, rollback and verify has been tested. This page is itself built under those rules, in a scored bake-off run, which is the honest test of whether the process holds up.

The running record: my Lab Notes

Once I understand a problem well, I want it to stay solved. That is why I document, and that is why I automate.