Projects that made environments safer, cheaper, and easier to run.
Security
Security Audit & Remediation Program
ProblemA growing Microsoft environment needed an honest look at its security posture, not a checkbox exercise.
What I didRan a CIS-style benchmark audit across identity, endpoints, email, and Azure, then built a phased plan: high and critical findings first, medium and low after, with documented exceptions where the business needs them.
ImpactContributed to a cyber insurance assessment score around 95, with a clear, prioritized roadmap for what's left.
Code: M365 security health check
AI & Automation
AI-Driven Automation & Tenant Toolkit
ProblemA small IT team supporting hundreds of users across 9 sites, with too much repetitive work.
What I didBuilt a Microsoft 365 tenant toolkit on app-only Graph authentication for inventory and reporting, and used AI to speed up scripting, troubleshooting, and documentation.
ImpactRoughly 440 hours saved in three months across about 346 users.
Code: Conditional Access policy pack
Product
Oakline: Self-Hosted IT Service Desk
ProblemHosted ticketing tools charge per seat, hide your data, and are built for enterprise IT. A small, multi-site team needs the real features without the overhead.
What I didArchitected and built a full service desk on ASP.NET Core, SQL Server, and Microsoft Graph: ticketing with SLAs, automation rules and webhooks, a requester portal, knowledge base and catalog, employee lifecycle plans, Microsoft 365 mail intake, a Teams helper bot, reports, and Entra sign-in with a tested route-security matrix. Built with AI agents under the guardrails in my setup repo, with a 6,000+ test suite.
ImpactRunning in production today for a ~300-user, 9-site company. A free, AGPL-licensed Community edition is being prepared for release.
oaklinehq.com
AI Governance
AI Risk & Governance
ProblemEmployees were adopting AI tools faster than policy could keep up.
What I didWrote a 16-page AI implementation risk report for leadership, used Microsoft Defender cloud app discovery to find which AI tools people were actually using, rolled out an approved business AI platform, and enforced Edge URL filtering that blocks unapproved AI sites with scoped exceptions.
ImpactAI use moved onto approved tools with real controls instead of shadow accounts.
Cloud
Azure Virtual Desktop Turnaround
ProblemInherited an AVD environment that was slow and unreliable: session freezes, profile load failures, licensing and activation errors, and a steady stream of tickets from users across nine sites who depended on it for line-of-business apps.
What I didTraced the root causes instead of restarting hosts: fixed FSLogix profile handling on Azure Files, resolved the shared-computer licensing and Office activation issues, split users into purpose-built host pools (standard, GPU design, IT admin), tuned session host configuration, and added autoscale.
ImpactFaster logons, sessions that stay up, a sharp drop in AVD tickets, and lower compute cost after hours. The environment went from the top complaint to something nobody thinks about.
Automation
Employee Lifecycle App
ProblemOnboarding and offboarding were manual, slow, and easy to get wrong. A missed offboarding step is a security hole, and nobody knew whether one had been missed.
What I didBuilt an application that runs provisioning and offboarding as audited, step-by-step workflows. On offboarding it disables access first, then handles mailbox and OneDrive handover, and notifies the person's manager what was done and who now has access, with a prompt to tell IT immediately if the request was in error. Every run is logged; completion opens a ticket for IT, and any failed step is flagged for review.
ImpactFaster onboarding, cleaner offboarding, no accounts left behind, and a paper trail for every change. Because access is cut before anything else runs, a failure partway through still leaves the account in a safe state. The manager notification has already caught an offboarding submitted in error; it was reversed before the employee noticed anything.
Operations
Documentation, Change Control & Team Communication
ProblemEverything about the environment lived in one person's head, and changes happened with no record, no notice, and no approval. When that person left, the team was flying blind.
What I didWrote the knowledge base, runbooks, SOPs, and architecture documentation from scratch, and put in a change process: change requests with a notice period, written approval for anything that touches production, and a record of what changed and why. Triage Microsoft 365 Message Center updates into action items so nothing lands as a surprise.
ImpactOther IT staff can operate and troubleshoot the environment without me in the room. Changes are announced before they happen and traceable after, and the team actually talks to each other about what's changing instead of finding out from a ticket.
Cost
Azure Cost Optimization
ProblemAzure spend was creeping up, with oversized and misconfigured resources.
What I didReviewed usage and cost data, right-sized or removed what wasn't needed, and adjusted schedules while watching performance.
ImpactAbout 15% lower Azure spend with better stability.
Email Security
DNS & Email Authentication Hardening
ProblemParked and product domains with soft-fail SPF and no DMARC are free to spoof.
What I didWrote PowerShell tooling against the Cloudflare API that audits every zone's SPF, DKIM, DMARC, and MX posture, then hardens non-sending domains. Preview by default, explicit apply, scoped two-permission token.
ImpactEvery domain I own now hard-fails SPF and rejects on DMARC, with a repeatable report to prove it.
Code: Cloudflare DNS tools
AI Operations
Guardrails for AI Agents in IT Ops
ProblemCoding agents are fast and useful right up until one runs rm -rf in the wrong folder or force-pushes over a branch.
What I didBuilt the setup I actually run: a tested guard hook that blocks or asks before destructive commands, with a human-only escape hatch; deny-by-default permissions; context reminders; secret scanning on every commit; and a one-script rebuild for a new machine.
ImpactAgents do real work in a production environment without me babysitting every command, and the whole setup moves between machines in minutes.
Code: Claude Code setup
Consulting
Innov8 Infrastructure Rebuild & Office Move
ProblemA small business moving into a much larger building with infrastructure built for the old one.
What I didPlanned and rebuilt networking, Wi-Fi, cameras and NVR, and core services, and moved file storage from an on-prem NAS to SharePoint.
ImpactA cleaner, scalable environment and a smooth move with minimal downtime.