Work

Selected engagements and lab projects, with measurable results.

VXLAN EVPN automation, three ways

Problem

A NX-OS leaf-spine EVPN-VXLAN fabric configured entirely by hand is slow to deploy, hard to audit, and risky to change. Different automation approaches promise to fix this, but claims are easy to make and hard to verify without seeing all of them applied to the same fabric.

Approach

Built the same leaf-spine fabric three times against the same topology: once by hand to establish a baseline, once automated with Ansible, and once with Cisco NSO and a custom Python service package. Unified all three under a single GitLab CI/CD pipeline with pyATS validation and one JSON file as the source of truth for the fabric's intended state.

Result

Full fabric provisioning and teardown from one data file, with transactional rollback.

Public GitLab repo →

Maintenance automation for a Tier-1 service provider

Problem

Maintenance changes across a large router fleet required manual, device-by-device validation — long change windows that capped how many routers could be migrated per night.

Approach

Built a Python and Docker microservices-based tool to validate maintenance changes automatically, integrated into the provider's existing change process.

Result

Change-window validation cut from 3 hours to 10 minutes. Nightly maintenance windows reduced from 5 to 2 per week, with router migration throughput scaled from 1 to 6 devices per night.

Multi-vendor network analysis tooling

Problem

Validating L3VPN, STP, and LLDP state across a multi-vendor network meant engineers running the same `show` commands by hand on every device, every time something needed checking.

Approach

Built a containerized Python tool, Cisco-first with a vendor-abstraction layer for extension, that discovers and validates L3VPN, STP, and LLDP state network-wide.

Result

Validation that previously took engineers hours of manual `show` commands reduced to a single run.