Portfolio

Building With Purpose

From apps to labs, every project here was built with a specific purpose: solving a real problem, learning something new, or both.

Networking Projects
Network Lab — 01  //  Multi-Vendor Firewall Lab
GNS3Case StudyDocumented
Documented Lab

Multi-Vendor
Firewall Lab

A hands-on GNS3 lab running Cisco ASAv 9.14, FortiGate-VM64 v7.6.6, and pfSense CE 2.7.2 side by side — each implementing an identical three-zone security policy. Features a cross-vendor IKEv2 IPsec VPN, centralized syslog, and a full comparative analysis of how each platform handles NAT, ACLs, VPN, and logging. Five distinct tunnel failures documented and resolved.

GNS3Cisco ASAvFortiGatepfSenseIKEv2 IPsecNSE 4 Prep
3
Firewall Platforms
5
VPN Issues Documented
3
Network Zones
IKEv2
IPsec Standard
Network Lab — 02  //  Azure Hybrid Network Lab
GNS3 + AzureCase StudyDocumented
Documented Lab

Azure Hybrid
Network Lab

A site-to-site IPsec VPN with eBGP between a GNS3 on-prem FortiGate and a real Azure FortiGate (BYOL marketplace), fronting an nginx workload in a private subnet. Built over the public internet, validated end-to-end with HTTP 200, torn down to $0/month. Seven Azure-specific hurdles documented, including the VirtualNetwork-service-tag gotcha that drops tunnel-sourced traffic by default.

AzureFortiGateGNS3IPsec IKEv2eBGPAZ-900
2
FortiGate Endpoints
IKEv2
IPsec Standard
eBGP
AS 65001 / 65002
3
Azure Subnets
Network Lab — 03  //  NetAudit Automation Lab
PythonCase StudyDocumented
Documented Lab

NetAudit
Automation Lab

A multi-vendor network automation toolkit that pulls configs from live Cisco, FortiGate, and pfSense devices, audits them against YAML compliance rules, detects configuration drift via git, and generates Ansible playbooks to remediate gaps. Built in Python with Netmiko and paramiko, tested with 62 unit tests, and validated against a live GNS3 lab.

PythonNetmikoAnsibleNetwork Automation
4
Devices
3
Vendors
62
Tests
15
Audit Rules
Network Lab — 04  //  Campus Resilience Lab
GNS3Case StudyDocumented
Documented Lab

Campus
Resilience Lab

A three-tier Cisco campus network demonstrating four layers of redundancy: LACP EtherChannels absorb link failures, Rapid-PVST+ selects alternate paths, HSRPv2 fails over the default gateway, and OSPF multi-area reconverges routing. Three failure scenarios documented with 36 screenshots and before/after CLI output.

GNS3Rapid-PVST+HSRPv2OSPF Multi-AreaLACP EtherChannelCCNP ENCOR
6
Network Devices
4
Redundancy Layers
3
Failure Scenarios
36
Screenshots
Personal Projects
Project — 01  //  Delta Field Ops App
iOS PWANo FrameworkIn Development
In Development

Delta
Field Ops App

Built as a unified dispatch and ticket management platform for field technicians; a mobile-first PWA installable directly from the browser. Using ServiceNow CSM, Cisco Catalyst Center telemetry, and a Nominatim/OSRM routing pipeline, wired together in a single-file architecture backed by a sessionStorage state machine that tracks technician workflow from dispatch through on-site closure. Built by field techs, for field techs.

Vanilla JSServiceNow APICisco CatalystPWANode.jsNo-Framework
7,700+
Lines of Code
3
Live API Integrations
Vanilla JS
Zero Dependencies
PWA
Platform — Web App
Project — 02  //  Flying Dolphins Ecosystem
Live PlatformIn DevelopmentActive
MAFD live scoring overlay screenshot
Managed Platform

MAFD Scoring Overlay

Currently in development to provide a premium livestreaming experience for the Maryville-Alcoa Flying Dolphins at no additional cost. In Alpha stages, with plans to finish this summer.

JavaScriptCSSLive EventsOverlay
SMI Website teaser
Built From Scratch

SMI Website (Custom Build)

In Development - A full-stack event platform for the 52nd Annual Smoky Mountain Invitational swim meet, built with Next.js 16, React 19, and Sanity CMS, featuring an Auth0-authenticated coach dashboard, Resend transactional emails, a 6-state time-driven hero system, and 11 Sanity schemas powering dynamic content across 8+ pages with ISR.

Next.js 16Sanity CMSAuth0ResendFull-Stack
Visit Site →