This page contains original source code I've written to solve real-life problems. It is 100% open source.

Ansible Playbooks

I've written some useful, production-quality Ansible playbooks. The playbooks are sorted in order of risk to the network, from low to high.

Make Files and Documents (mkfd) Role to generate configuration files from templates without logging into devices. Uses LaTeX for PDF generation. Zero-risk!

Run Arbitrary CLI Commands (racc) Run CLI commands on Cisco IOS, IOS-XE, IOS-XR, and ASA platforms. Great for getting started with Ansible.

Nick's OSPF Troubleshooter (nots) Performs detailed OSPF troubleshooting for Cisco IOS, IOS-XE, IOS-XR, and NX-OS devices.

1:1 NAT Manager (natm) Idempotently manage 1:1 static NAT entries in Cisco IOS and IOS-XE routers in a scalable way.

Performance tester (perf) Set of playbooks to run performance testing on a Cisco IOS or IOS-XE network. Can measure VOIP quality and MPLS LSP health, too.

VPN Manager (vpnm) Idempotently manage MPLS L3VPN route-targets using set theory filters. Can perform routing and ping checks for verification.


I've listed my Python code below for review.

ASA Rule Checker (narc) Validate your Cisco ASA firewall design using Nornir/Netmiko by ensuring packet simulations pass or fail based on your desired outcome.

STIG Compliance Fast and lightweight security rule checking for US Government organizations.

RCP Average Polling Collector A simple Python project to check polling averages from Real Clear Politics. See the final product.

Auphonic SDK A Python client library for interacting with the Auphonic REST API.

Basic Algorithms This repository is less useful, but can help those new to programming in understanding basic algorithms.


Assortment of other projects written in languages I don't often use.

Book-as-code example Source code for the Cisco CCIDE/CCDE Evolving technologies guide, written in Latex.

VTL CLI in Docker Docker wrapper for existing "vtlcli" code. Perfect for learning VTL.

IPv4 subnet calculator (subc) Calculate network, broadcast, and usable addresses, written in C.

Main Page