Skip to main content

Posts

2026


AI: Initializing

·907 words·5 mins
I went from calling AI a 50/50 bet to burning through API credits in days. Here’s what changed — from the Ralph Loop to OpenClaw to AI agent skills — and why I think we’re at a pivotal point.

AI: My Welcome

·610 words·3 mins
Here we are diving into just one of the time savings samples of what the AI world is able to accomplish these days. This post is going to dig into a simple one that I have been trying to solve for a while and just couldn’t get right - Cloud Init virtual machines. I now am spinning up virtual machines in a few seconds, all with the help of Claude.

2025


Creating Your Own Validation

·671 words·4 mins
I recently was presented with a request to look at where there was a request to validate that a Rack would be unique at a Location in Nautobot. I took a look at the data validation engine and wasn’t able to determine a method to make this work there. So here is the solution.

Cleaning Up Python Environment

·893 words·5 mins
Recently I updated my Python development environments to use Python UV for managing Python versions and tools on the system. In this post I take you on the journey that I went on to replace pyenv and Pipx.

2025 The ReSwitch

·542 words·3 mins
I’m back over to Hugo for my blog content using the Congo theme. Why? Come take a look.

Services First - A Reminder of Strong Growth

·793 words·4 mins
This post explores why the “Amazon API Mandate” remains relevant for modern network automation. It highlights how adopting a “Services First” strategy—using APIs and Pub/Sub systems like Nautobot—can transform CLI-based workflows into scalable, robust services.

Autocon4 Viewpoint

AutoCon4 and NautoCon@AutoCon are in the books. It was quite the day, and I have to say that it ranks among my best days of the year in Network Automation — right up there with being able to meet up with the Network to Code team earlier in the year. It was great to see many friends from across the community. Hopefully we’ll be able to keep the conversation going in Slack and maintain the momentum.

Network Design with NTP

·808 words·4 mins

It’s been a while since my last post — life and work have both been full. Today, I’m diving into one of the most quietly critical aspects of network design: time synchronization. Specifically, how to design NTP within an enterprise network and how to think about time zones when correlating logs.

We’ll look at two main topics in this post: designing NTP (Network Time Protocol) and managing time zone display in logs.

Fueling Network AI: The Critical Role of Source of Truth Data

·1087 words·6 mins

As the AI movement continues to expand its reach into the networking space, the need for an appropriate source of truth for network data becomes more critical than ever. What I have been seeing so far in the industry for networking and AI has been a lot of working on the individual devices one by one. But when looking at leveraging AI for the network, I believe it is best to look at the network as a whole. And that is where the Source of Truth data being stored in Nautobot is going to provide the right information about the network and the relationships between pieces of information - AI thrives on context, and relationships provide that context for more accurate insights and actions.

2024


Containerlab - Popularity Exploding

·538 words·3 mins

Coming out of the 2024 AutoCon2 conference held in Denver the week of November 18th, 2024 - there is one thing that is standing out more so than anything else. Containerlab is a HUGE blowout success. In observing through several of the workshops at the conference on Monday and Tuesday, many were using Containerlab in some fashion. Now, Containerlab has been around for a while, so this isn’t a press release of it. But it is re-affirming what many already know, that this is a great tool to be in the network engineer and network automator toolset.

Linux Port Binding

·697 words·4 mins

This post is will provide a brief overview of how port binding works in Linux. This topic that will be required for the small series of using Continue.Dev in your local environment, but before addressing the setup of a machine for remote access in a future post, I thought it would be important to quickly create a post regarding the concept of port binding.

Showing Listening Ports #

In Linux you can view all ports that are being listened on by using the netstat or ss commands. This is useful for identifying active ports and their associated services. My preference in 2024 is to use the ss command, which, according to Linux.com, is a more modern version of the netstat.

Code Completion in VS Code with Ollama

·1730 words·9 mins

The year 2024 will showcase the remarkable evolution and contributions of AI. One prominent application of AI lies in its ability to streamline the coding process. In this post I demonstrate how to utilize the Continue VS Code plugin as a viable alternative to the GitHub Copilot system. This will allow you to have choice on the AI back end or in this scenario, the capability to self host the AI system using Ollama.

Redux: Wireless Conversion

·1155 words·6 mins

This may be my favorite post within the realm of what is possible as I write this series. There are many more things that could be done, but we did pretty well considering. Going back over a decade now, I had the fortunate opportunity to work to deploy Guest WiFi 📶 for a large number of retail sites, with the heavy lifting of the work being done within a five month period of time. This post is about the conversion of access points from one management system to another.

Nautobot: Atomic Jobs

·1643 words·8 mins

In the first release of Nautobot all of the Jobs were Atomic by default. This was from the previous focus of the legacy source application that assumed that scripts/reports would only be run on the data locally, so by that nature, the jobs should be atomic. As more and more Jobs started to interact with other systems, it became apparent that there needed to be a control mechanism provided (as I understand). So the introduction of a context manager and decorator was brought to the table to provide the same previous functionality while changing of the default behavior in Nautobot 2.x+.

Redux: Stadium Automation

·916 words·5 mins

At a previous position to joining Network to Code I was asked to help to build automation to help with the configuration of switches going into a MLS stadium. The stadium was under construction and the network build out would take place at the same time as the stadium was being built out. It was definitely a first and maybe only opportunity that I would have to build out a new stadium.

Scenario #

The task at hand is that each of the ports would need to be configured leveraging a good L2/L3 separation with each of the service providers that provide a service to the stadium their own network segment to work through. A large number of ports were going to need to be configured.

Nornir Transform Function

·1385 words·7 mins

Nornir includes a function that allows for the transformation of inventory data, a feature integrated within the Nornir platform itself. The documentation for Nornir 3.0 is somewhat sparse regarding the usage of Transform functions, so I often refer to the more comprehensive 2.5 documentation. According to the Nornir documentation:

A transform function is a plugin that manipulates the inventory independently from the inventory plugin used. Useful to extend data using the environment, a secret store or similar.

Redux: WAN Design

·541 words·3 mins

In this post, we’ll dive into WAN design and address a common question that I was provided with in the 2000s: “My home internet costs only $35 per month. Why do we spend $xxx per month per circuit?”

Bindkey For Autocompletion

·441 words·3 mins

I have been looking at migrating over to the Starship shell for a little while. The allure of running a rust shell prompt that gives me a ton of information is what I look for in a shell prompt. Such as the prompt below:

joshv in 🌐 my_device in nautobot on  u/jvanderaa-update_install_home_doc is 📦 v2.2.5b1 via 🐍 v3.11.9 (nautobot-py3.11)

The default installation however did not get the same behavior as my previous Oh My Zsh set up with the zsh-autocompletions and zsh-syntaxhighlighting. Whenever I would hit the up arrow key, the system would cycle through the commands as comes default with zsh/bash. But I was looking for subcommand scrolling. Such as the following command sequence.

Migration to MkDocs Material Blog Theme!

·813 words·4 mins

So, if you are a returning user you notice something that is a little bit different. I have migrated my blog site to a new site generator and format. I am now using [mkdocs-material] blog them that was introduced in late 2022 to the platform. The migration was not too painful to make, but I’m feeling in a good place about it at this point. The blog has been on a journey so far. It started off with a Jekyll themed site which I liked. Then I decided to move onto something that has a little more development. So I moved into the land of Hugo.