Work I've done
Uptime is the product.
I learned it on a ship where the radios either worked or we were deaf. Everything since has kept that promise, and now AI agents do the work with me approving.
Timeline
From the job site to the cloud
-
2006-2008
D&J Custom Builders, Charlotte, NC
Network technician, junior carpenter, assistant project manager
Cable in new houses, a hammer on the same sites. Paperwork happened at night because daylight was for the work.
I've stood on a job site. I know why the office work waits until dark.
-
2008-2011
U.S. Navy
Information Systems Technician
At NCTAMS LANT I ran classified messaging for about 1,500 commands and 4,000 customers, with 11 direct reports a year in. A 48-hour restore brought the primary service back, and the admiral sent a Letter of Commendation.
Then the USS Essex in Sasebo, Japan: a team of eight, 3,000 users, every system on the ship. I rebuilt the training and advancement went from 8% to 85%.
Communications either work or the ship is deaf. Uptime is the product.
-
2011-2013
IUPUI and the J.W. Marriott, Indianapolis
Business management student, guest services
Kelley School of Business coursework by day, parking cars and solving guests' problems by night. Two Gold Coins for customer service.
Nobody remembers your systems. They remember whether you helped.
-
2013-2016
Roche Diagnostics / Genentech
Service desk, subject-matter expert, IT Project Analyst
Youngest on the team, supporting 6,000 users and 170 applications, then subject-matter expert across about 20,000 employees. I helped roll out 15,000 iOS devices and move 8,000 people to Google.
Most tickets are the same few system failures in different costumes. Fix the system or they come back forever.
-
2016-present
A B2B SaaS company
Systems Administrator to Senior Infrastructure & Cloud Engineer
Ten years on one platform: Windows and SQL Server on-prem, Azure for recovery and everything new. The scope outgrew the title for years; in 2026 the role was rewritten around owning uptime.
Same year, I became the company's de facto forward-deployed AI engineer: I wrote the AI standard, designed the controls, and let AI run the projects.
Scope is enforced by credential and code, never by a promise.
-
2026-present
Morning Stack
Founder
A subscription that searches job openings overnight with real browsers and delivers three tailored application packages at 7 AM. Solo, with scheduled agents, next to the day job.
I can ship and run an AI product end to end. Still an operator, not a developer.
Case files
Selected case files
Six recent pieces of work with the real numbers. Employer details left out on purpose; the patterns are mine, the systems aren't.
-
Disaster recovery
The first full recovery drill in years, run by AI
- 6h 14mFailover to verified app
- 24hRecovery target
- 100/100Tables verified
- Lesson
- We spin up, we test, we tear down. A drill cheap enough to run often, or DR rots.
The full case: The first full recovery drill in years, run by AI
- Situation
DR environments drift because nobody updates them alongside what they mirror. Drills were partial, slow and rare.
- What I did
I audited the DR estate, then had an AI agent build a one-click pipeline: failover, disk resize, database configuration, a 31-script data deploy with a row-count gate, sanity tests and teardown.
The agent added a guardrail unprompted: it refuses to run if any production name appears. Failed runs tear themselves down. Thirteen runs in a week, each defect fixed by change request.
- How it came out
Four recovery blockers fixed during the drill, signed off as audit evidence. The rewritten runbook puts a clean drill near 5h 20m.
-
Patching
Patching you can prove
- 26Days
- 129Changes merged
- 31 minA year of evidence
- Lesson
- Legacy automation reports success on work it never did. Read back the machine, not the report.
The full case: Patching you can prove
- Situation
Rebuild patching for a mixed Windows and Linux fleet: one schedule, and evidence an auditor can check for every patch. The company's first AI-run infrastructure project.
- What I did
I proved Ansible patching of Windows over SSH: QA, a test database, then new production hardware.
Then the fence, before the agent got the keys: a key bound to one address and one command, a seven-verb gatekeeper, a non-production allowlist, an audit log, and a cooldown only I can clear.
The agent widened its lane one merged change at a time. Production ran on a schedule or from my hands.
- How it came out
27 legacy scheduled tasks retired, one schedule across QA, stage, production and DR. A cache cluster planned as a 10-hour upgrade took about 3.
-
Data
Moving a production database without losing a row
- 75%Faster seeding
- 7 secCloud relink
- 0Rows lost
- Lesson
- Compare results test by test, never by count. Two different failures can hide behind one number.
The full case: Moving a production database without losing a row
- Situation
Aging SQL Server hardware in a replication-heavy design, with a cloud reporting database downstream. Reseeding that cloud copy was estimated at 16 hours.
- What I did
I rewrote replication seeding to be backup-based and designed a relink for the cloud subscriber that skips the reseed when the data is byte-identical. A preflight refuses if even a handful of rows differ.
Twelve days of burn-in, validation cutovers, an outside consultancy's review, and a go/no-go gate I held until the evidence was in.
- How it came out
Saturday cutover done the same day, zero failures in the release tests. Seeding went from about 4 hours to about 1.
-
Knowledge
A source of truth the AI can read
- 0Diff on an unchanged night
- 3Errors in the old diagram
- Lesson
- Reality is supposed to mirror the repo, not the other way around.
The full case: A source of truth the AI can read
- Situation
Infrastructure knowledge lived in heads, stale diagrams and a wiki nobody trusted. An AI that reads bad documents gives confident bad answers.
- What I did
With my manager I designed a version-controlled repository of infrastructure records: inventory, dependencies, live state, changes and incidents. Nightly read-only collectors run only in CI, so every record has provenance.
Overnight changes become a pull request an AI summarizes in plain English each morning, silent when nothing changed. Drift noise started near 4,400 changed lines on quiet nights; five fixes later it read zero.
- How it came out
It rebuilt a year-old production network diagram in minutes and showed the old one wrong in three places. A preflight skill now cites the record and blocks any change it can't prove safe.
-
Governance
Letting AI in without letting it loose
- ~90 secTo approve an AI lane
- 1 dayRequest to live assistant
- Lesson
- The gate arrives with the ask. Propose the control in the same sentence as the capability.
The full case: Letting AI in without letting it loose
- Situation
Everyone wanted AI. Nobody had written down which tools were allowed, where data went, or how an agent could ever touch infrastructure.
- What I did
I wrote the department's AI setup standard and became the intake reviewer: a security review for new vendors, a lighter path for AI features in approved tools. I vetted retention, subprocessors and SOC 2 reports.
I turned down a notetaker because every user could read every transcript, parked my own tool when its sample data had names in it, and moved the AI off my admin identity onto its own least-privilege one.
- How it came out
I brought the controls with the ask for the first AI agent on infrastructure; leadership approved in about 90 seconds. Another department's first request came in mid-afternoon and was live the next day.
-
Cloud
Cloud foundations that come out compliant by default
- ~2 moFor a 6 to 10 month phase
- 4Readiness documents, auto-vended
- Lesson
- Turn findings into defaults. A fix in policy protects every workload after it.
The full case: Cloud foundations that come out compliant by default
- Situation
New workloads were heading to Azure without a shared foundation: no common policy, naming, networking or production-readiness bar.
- What I did
As ops-side architect, paired with one developer, I built the landing zone in Bicep: management groups, policy as code, transport security as defaults and deny rules, hub-and-spoke networking with private DNS, GitHub Actions on private runners.
I designed a four-document production-readiness package, vended into every new workload repository automatically, and argued my manager out of one shared database server per tier: one compromised credential would have opened every workload.
- How it came out
Several development teams now self-serve their infrastructure, and the first internal AI workloads reached production through the full path.

Morning Stack
A business I run with agents
It started as a pipeline to help my wife land her first American job. Customers spend about 20 minutes polishing each package and submit on the employer's own site. No auto-apply, on purpose.
Under the hood: a nightly multi-agent pipeline across three model providers, routing tuned by blind benchmarks, and QA gates that assume agents make mistakes.
The business runs the same way: scheduled agents handle monitoring, code review, bug fixes, social posts, reporting and support triage, and I review their work. On public sale since August 2026.
- I can take an AI product from idea to paying customers
- I design for agents that make mistakes
- The business runs on the trust stages I use at work
- I direct AI to build. I don't sell app development.
Toolbox
What I actually use
Tools I work in every week.
AI and agents
- Claude Code (skills, hooks, scheduled routines, subagents)
- MCP servers into real systems
- n8n
- Azure OpenAI and AI Foundry
- A second model for adversarial review
- GitHub Copilot CLI in pipelines
- Dictation and meeting transcription
Azure
- Management groups and Azure Policy
- Entra ID identities and service principals
- Key Vault
- Private endpoints and private DNS
- VPN gateways
- App Service, Functions, Azure SQL, Cosmos DB, Service Bus
- Azure Monitor and Log Analytics
- Azure Site Recovery
Infrastructure as code and automation
- Bicep
- Azure CLI and azd
- Ansible over SSH to Windows and Linux
- PowerShell
- GitHub Actions on self-hosted runners
- GitLab CI
Data
- SQL Server 2019 and 2022
- Transactional replication, change tracking, CDC, TDE
- Redis
- RabbitMQ
Operations
- Windows Server 2019 and 2022
- Ubuntu LTS
- IIS web farms
- Proxmox and VMware
- Windows DNS and Active Directory
- Cloudflare
- Site24x7, AppDynamics, Prometheus and Grafana
- PagerDuty
- SOC 2 Type II: access reviews, change control, patch evidence
Habits
- Voice first: I dictate most AI work
- Git for everything, markdown over wikis
- Jira, Notion, Slack, Google Workspace
- Mornings blocked for deep work
- Tech walks with podcasts
If you're hiring
An open door
I'm happy where I am, and this isn't a job hunt. But if your team needs someone who keeps production up and sets AI loose on it safely, I'd like to hear about it. Remote, from Portland, Tennessee.
A printable résumé is at /resume/. For a PDF or references, get in touch.

The kinds of work I'm suited for
- Forward Deployed Engineer
- AI Platform or AI Infrastructure Engineer
- Solutions Engineer (AI and LLM systems)
- Cloud or Infrastructure Engineer
- Site Reliability Engineer
- Infrastructure Architect