Labs
An engineering notebook. The why behind the things I've built, alongside the ones I'm still building.
Traceroute that understands ECMP. Walks every parallel path, tags each hop with its ASN, renders the result live in the TUI.
Go · UDP/ICMP probes · ASN data from Team Cymru
It’s show cdp neighbors running on your laptop. Plug into any switch port, find out which switch you hit and which port. TUI front, CSV log.
Go · CDP/LLDP capture · CSV log
SNMP interface graphs in a terminal. Per-port rate sparklines updating in real time, multiple devices side-by-side, credentials encrypted at rest.
Go · SNMP polling · keychain-encrypted creds · concurrent panes
A talker. Text-based real-time chat server in the lineage of Resort, Surfers, and Asylum. Long-running, recently revived.
C · POSIX sockets · custom command parser
Cross-platform workspace bootstrap. Zsh, Neovim with NvChad, Tmux, Starship, and the shell utilities that have followed me through every job.
Zsh · Neovim (NvChad) · Tmux · Starship · 25+ shell utilities
SSH-based topology discovery. Seed one device, crawl CDP and LLDP recursively, output a report another engineer can actually read.
Python · Netmiko · recursive BFS · Markdown + HTML reports
Session picker for tmux. Fuzzy-find, attach, kill, rename, plus a parser that reads your own tmux config and surfaces your bindings as a cheat sheet.
tmux ls, copy a name, paste into tmux attach -t. tm is the fuzzy picker
for that workflow. The cheat sheet parser came along for the ride: it
reads your own tmux config so the bindings it shows are actually the
bindings you set, not the ones in some example dotfile from 2014.Bash · fzf · tmux session API
openssl pkcs12 with the flags memorized for you. Hands back PEM and key.
Bash · openssl
Bulk SNMP configuration across a fleet of Firepower devices, via the FDM REST API.
Python · Cisco FDM REST API · requests
ACE hit-counter analysis for Cisco ASA. Surfaces which rules are still doing work and which are just taking up bytes.
Python · ASA show-tech parsing · ACE hit-counter analysis