1:"$Sreact.fragment" a:I[97367,["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/d2be314c3ece3fbe.js"],"OutletBoundary"] b:"$Sreact.suspense" 0:{"buildId":"iv-nbJZe_jiHzLFjamu1u","rsc":["$","$1","c",{"children":[["$","div",null,{"className":"mx-auto max-w-6xl px-4 py-12","children":[["$","h1",null,{"className":"text-3xl font-bold tracking-tight md:text-4xl","children":"Projects"}],["$","p",null,{"className":"mt-3 text-muted","children":"A selection of active and completed projects spanning SolarWinds administration, automation, AI integration, and homelab infrastructure."}],["$","div",null,{"className":"mt-10 grid gap-6 md:grid-cols-2","children":[["$","div","systems-audit",{"className":"rounded-xl border border-card-border bg-card p-6 shadow-card flex flex-col","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":[["$","h2",null,{"className":"text-lg font-semibold","children":"SolarWinds Systems Audit Report"}],["$","span",null,{"className":"shrink-0 rounded-full px-2.5 py-0.5 text-xs font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400","children":"In Progress"}]]}],["$","p",null,{"className":"mt-3 flex-1 text-sm text-muted","children":"Rebuilt the systems audit report from scratch — 14 sections, ~28 tables, 559 lines of SWQL. Covers Platform Health, Accounts, Licensing, Alerting, Discovery, NCM, Reporting, SAM, Interfaces, Volumes, Groups, Custom Pollers, Syslog/Traps, and advanced modules."}],["$","div",null,{"className":"mt-4 flex flex-wrap gap-1.5","children":[["$","span","SolarWinds",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"SolarWinds"}],["$","span","SWQL",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"SWQL"}],["$","span","Report Builder",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Report Builder"}],["$","span","Audit",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Audit"}]]}]]}],["$","div","cf-industries-audit",{"className":"rounded-xl border border-card-border bg-card p-6 shadow-card flex flex-col","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":[["$","h2",null,{"className":"text-lg font-semibold","children":"Enterprise Client Audit (104-Page)"}],["$","span",null,{"className":"shrink-0 rounded-full px-2.5 py-0.5 text-xs font-medium bg-green-500/10 text-green-600 dark:text-green-400","children":"Complete"}]]}],["$","p",null,{"className":"mt-3 flex-1 text-sm text-muted","children":"104-page comprehensive SolarWinds audit for a major enterprise client. All 14 sections completed across 12 Report Builder and 2 manual Database Manager reports. Key outcomes: 869+ stale interfaces removed, 600+ junk volumes cleaned up."}],["$","div",null,{"className":"mt-4 flex flex-wrap gap-1.5","children":[["$","span","SolarWinds",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"SolarWinds"}],["$","span","Audit",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Audit"}],["$","span","PowerShell",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"PowerShell"}],["$","span","Cleanup",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Cleanup"}]]}]]}],["$","div","node-location-mgmt",{"className":"rounded-xl border border-card-border bg-card p-6 shadow-card flex flex-col","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":[["$","h2",null,{"className":"text-lg font-semibold","children":"Node Location Management System"}],["$","span",null,{"className":"shrink-0 rounded-full px-2.5 py-0.5 text-xs font-medium bg-green-500/10 text-green-600 dark:text-green-400","children":"Complete"}]]}],["$","p",null,{"className":"mt-3 flex-1 text-sm text-muted","children":"Automated bulk-update system for SolarWinds node custom properties (Location, Address, GPS coordinates) based on IP-to-site CSV mappings. Piloted with a global logistics client across 100+ facilities worldwide."}],"$L2"]}],"$L3","$L4","$L5","$L6","$L7","$L8"]}]]}],null,"$L9"]}],"loading":null,"isPartial":false} 2:["$","div",null,{"className":"mt-4 flex flex-wrap gap-1.5","children":[["$","span","PowerShell",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"PowerShell"}],["$","span","SolarWinds",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"SolarWinds"}],["$","span","Automation",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Automation"}],["$","span","CSV",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"CSV"}]]}] 3:["$","div","client-health-checkups",{"className":"rounded-xl border border-card-border bg-card p-6 shadow-card flex flex-col","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":[["$","h2",null,{"className":"text-lg font-semibold","children":"Client Health Checkups"}],["$","span",null,{"className":"shrink-0 rounded-full px-2.5 py-0.5 text-xs font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400","children":"In Progress"}]]}],["$","p",null,{"className":"mt-3 flex-1 text-sm text-muted","children":"Standardized health checkup framework for 8 enterprise clients. Master checklist covering Platform Health, Module Status, Licensing, Alerting, Discovery, NCM, Reporting, Dashboards, and Client Communication."}],["$","div",null,{"className":"mt-4 flex flex-wrap gap-1.5","children":[["$","span","SolarWinds",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"SolarWinds"}],["$","span","Audit",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Audit"}],["$","span","Obsidian",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Obsidian"}],["$","span","Process",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Process"}]]}]]}] 4:["$","div","daily-briefing",{"className":"rounded-xl border border-card-border bg-card p-6 shadow-card flex flex-col","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":[["$","h2",null,{"className":"text-lg font-semibold","children":"Daily Briefing System"}],["$","span",null,{"className":"shrink-0 rounded-full px-2.5 py-0.5 text-xs font-medium bg-green-500/10 text-green-600 dark:text-green-400","children":"Complete"}]]}],["$","p",null,{"className":"mt-3 flex-1 text-sm text-muted","children":"Automated morning briefing pipeline: AppleScript fetches ticket emails from Mail.app, sends to n8n webhook for AI summarization via Ollama, creates Obsidian daily notes. Runs at 7:30 AM via LaunchAgent."}],["$","div",null,{"className":"mt-4 flex flex-wrap gap-1.5","children":[["$","span","n8n",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"n8n"}],["$","span","Ollama",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Ollama"}],["$","span","Automation",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Automation"}],["$","span","Obsidian",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Obsidian"}]]}]]}] 5:["$","div","gold-templates",{"className":"rounded-xl border border-card-border bg-card p-6 shadow-card flex flex-col","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":[["$","h2",null,{"className":"text-lg font-semibold","children":"Gold Copy Template System"}],["$","span",null,{"className":"shrink-0 rounded-full px-2.5 py-0.5 text-xs font-medium bg-green-500/10 text-green-600 dark:text-green-400","children":"Complete"}]]}],["$","p",null,{"className":"mt-3 flex-1 text-sm text-muted","children":"Reusable script and query templates for all managed clients. Client-Config.ps1 dot-sourced by cleanup scripts. Gold copies maintained centrally, deployed to client Orion servers."}],["$","div",null,{"className":"mt-4 flex flex-wrap gap-1.5","children":[["$","span","PowerShell",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"PowerShell"}],["$","span","Templates",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Templates"}],["$","span","SolarWinds",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"SolarWinds"}],["$","span","Process",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Process"}]]}]]}] 6:["$","div","pci-dss-compliance",{"className":"rounded-xl border border-card-border bg-card p-6 shadow-card flex flex-col","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":[["$","h2",null,{"className":"text-lg font-semibold","children":"PCI DSS Compliance Audits"}],["$","span",null,{"className":"shrink-0 rounded-full px-2.5 py-0.5 text-xs font-medium bg-green-500/10 text-green-600 dark:text-green-400","children":"Complete"}]]}],["$","p",null,{"className":"mt-3 flex-1 text-sm text-muted","children":"Led annual PCI DSS compliance efforts at a call center company (2016–2021). Managed network segmentation, firewall rule reviews, vulnerability scanning, access control policies, and audit evidence collection across a multi-site call center environment processing restaurant payment transactions. Maintained compliance through three major site relocations and full transition to remote operations."}],["$","div",null,{"className":"mt-4 flex flex-wrap gap-1.5","children":[["$","span","PCI DSS",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"PCI DSS"}],["$","span","Compliance",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Compliance"}],["$","span","Security",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Security"}],["$","span","Network Segmentation",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Network Segmentation"}]]}]]}] 7:["$","div","comfyui-workflows",{"className":"rounded-xl border border-card-border bg-card p-6 shadow-card flex flex-col","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":[["$","h2",null,{"className":"text-lg font-semibold","children":"ComfyUI Image Generation"}],["$","span",null,{"className":"shrink-0 rounded-full px-2.5 py-0.5 text-xs font-medium bg-amber-500/10 text-amber-600 dark:text-amber-400","children":"Ongoing"}]]}],["$","p",null,{"className":"mt-3 flex-1 text-sm text-muted","children":"Local AI image generation with ComfyUI on Mac Mini M4. Custom workflows for Stable Diffusion XL, Flux outpainting, LLaVA vision captioning, and batch processing. Memory-optimized for 24GB unified memory."}],["$","div",null,{"className":"mt-4 flex flex-wrap gap-1.5","children":[["$","span","ComfyUI",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"ComfyUI"}],["$","span","Stable Diffusion",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Stable Diffusion"}],["$","span","AI",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"AI"}],["$","span","Ollama",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Ollama"}]]}]]}] 8:["$","div","homelab",{"className":"rounded-xl border border-card-border bg-card p-6 shadow-card flex flex-col","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":[["$","h2",null,{"className":"text-lg font-semibold","children":"Homelab Infrastructure"}],["$","span",null,{"className":"shrink-0 rounded-full px-2.5 py-0.5 text-xs font-medium bg-amber-500/10 text-amber-600 dark:text-amber-400","children":"Ongoing"}]]}],["$","p",null,{"className":"mt-3 flex-1 text-sm text-muted","children":"Proxmox-based virtualization environment. Docker containers for n8n, self-hosted services. macOS automation with LaunchAgents. Obsidian-based knowledge management and documentation."}],["$","div",null,{"className":"mt-4 flex flex-wrap gap-1.5","children":[["$","span","Proxmox",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Proxmox"}],["$","span","Docker",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Docker"}],["$","span","macOS",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"macOS"}],["$","span","Self-hosting",{"className":"rounded-full bg-accent/10 px-2.5 py-0.5 text-xs text-accent","children":"Self-hosting"}]]}]]}] 9:["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}] c:null