New Day, New Role

I’m thrilled to announce that I’ve recently stepped into a new role as Solutions Architect at Sweetwater Technology Services! This opportunity marks a significant milestone in my career, allowing me to deepen my expertise and broaden my impact in designing and delivering IT solutions for clients across diverse sectors.

What This Means

In this role, I’ll be leading the design and implementation of advanced network infrastructure, server environments, and cloud-based solutions for regional, national, and governmental clients. The solutions we provide cover a range of technologies, including:

  • Cisco, Meraki, Ubiquiti for robust network design and management.
  • Microsoft Windows for virtualization, Servers and Workstations
  • Azure and Microsoft 365 for scalable, cloud-based solutions.

At Sweetwater Technology Services, we specialize in managed services, meaning that once these systems are implemented, our team takes full responsibility for ongoing management and optimization. From our headquarters in Rock Springs, Wyoming, and supported by a talented remote team across the U.S., we ensure our clients are backed by reliable, high-performance infrastructure.

Scaling for the Future

A major part of my new role involves not just focusing on delivering cutting-edge solutions but also helping to scale the business. Mentoring and growing our engineering staff is a key priority for me, as we work to expand our capabilities and continue offering innovative, high-value services to our clients.

What’s Next

I’m looking forward to sharing more about the exciting projects we’ll be working on, from network designs that connect multiple locations seamlessly to cloud architectures that make businesses more agile and secure. I’ll continue to write about the technical insights and challenges we encounter along the way—so if you’re into networking, server infrastructure, or cloud computing, stay tuned for more!

The past year has been very challenging as I have moved away from eight years in executive roles at Sauce Labs.  Add to that the challenges of even getting an interview in 2024.  I am excited about the opportunities that the team at Sweetwater Technologies have given me!  Thank you to everyone who has supported me in my career thus far, and I can’t wait to see what this new chapter holds!

To New Adventures.

First and foremost, I want to express my profound gratitude for an amazing eight years at Sauce Labs. From 2016 to now, I’m extremely proud of what we’ve accomplished. I am grateful to have had the opportunity to build not just one, but two world-class teams during my time at Sauce, working alongside many others of that same caliber. It is because of these incredible individuals that the following announcement is difficult to make: I will be ending my time at Sauce Labs on September 30, 2023.

I am leaving behind extraordinary people who will undoubtedly continue to drive Sauce Labs forward long after I am gone. Without them, none of the amazing achievements we accomplished would have been possible. I want to extend my heartfelt thanks to those who believed in me back in 2016, when I was brought in to overhaul the infrastructure, to all of my staff who joined me as we tackled some really tough challenges, and to those who continued to have faith in me when I was promoted to VP and asked to oversee IT in addition to the Operations teams I already managed. It has been an exciting and educational journey, and I will dearly miss all of those who made success possible.

As I wrap up this chapter, I find myself uncertain about what comes next. I have been speaking with some inspiring individuals who are embarking on their startup journeys, and I am also considering starting my own consulting firm. What I know for sure is that I am ready for the next challenge. I want to help companies thrive and overcome small hurdles before they become insurmountable obstacles, so they can accelerate both their people and their business. If you’re looking for someone to assist you in this capacity, please reach out, and we can figure something out. If you’re in need of a COO or CTO class professional, I am also open to discussing those opportunities. With that said, I am officially Open to Work.

Things Change. Some New content.

Once again it has been awhile. But I wanted to get some new content out. This year I was elected as a member of the board for WAA. Part of my time on the board will include writing articles for our membership. From the second I heard this I knew what I wanted to do. I wanted to combine a career in tech with the auction business. For those who don’t know about the side hustles I have going on that will be a post for another day. So with here you go, this is a repost of my first new letter article, Revolutionizing Auctions with Automation and AI. I hope you find it interesting.

Revolutionizing Auctions with Automation and AI

My career up to this point has been in technology. With that has come the need to automate large-scale and tedious tasks. In the past, that would have meant buying expensive tools or learning how to program in a language like Python. But things have changed drastically in the past few years. Now we have cost-effective, highly intuitive, and intelligent tools like Zapier and ChatGPT.

As a quick primer, tools like Zapier integrate with other platforms like Google Docs, Office 365, Mailchimp, CRM, and many others. This allows you to automate tasks that in the past would have been manual and tedious. For example, if you track all of your new consignment users in a CRM, you can automate adding any new consignors to a custom MailChimp mailing list. This would cut down at least three steps of exporting the list and uploading it to Mailchimp, enabling you to have an always up-to-date mailing group to notify consignors of upcoming auctions they may wish to add items to. You can go much further and add multiple steps, but this example is phase 1 of automating the data for your business.

Moving forward, we have AI tools like ChatGPT. This opens up a totally different set of opportunities. We should think of AI tools like this as our specialized assistant. In my case, there are few things I am really good at, a lot of things I can do, and billions of things I will never be able to do well enough to do myself. It is the second two areas where we can leverage this virtual expert. So as an example, I can write marketing copy, but I am not great at it. So I go to ChatGPT and ask the following:

“Please write me ad copy for an online auction starting on April 18, 2023, and closing on May 2, 2023. The auction has something for everyone. The lead items for the ad are a 2005 Jeep Grand Cherokee and a 1975 Starfire 1801 Pleasure with an outdrive engine. Other items in the auction include many kitchen and household items, a video poker machine, vintage video games, vintage board games, many Christmas decorations, and many vintage items. Lots of books. A garage of tools and ice fishing equipment. Please ask me questions to produce the best outcome.”

This simple request, in under 15 seconds, provided me with an over-the-top ad copy and a description for our auction that is running right now. So over-the-top, in fact, I had to follow up by asking the tool:

“This looks pretty good, but can we tone it down just a bit and get rid of emojis?”

To which it responded with a much more reasonable copy that we ended up using. But it’s not just that. I have also used ChatGPT to come up with a variable auction % split for a large customer that we are working with. It was not perfect, but through the conversation, it took care of lots of math and planning that, had I done by hand, I may have messed up. Something like this may seem overwhelming, but truly, if you can text message or email someone, you can use this!

Once you have a handle on these tools, the sky’s the limit. For example, we have combined Google Sheets, Zapier, ChatGPT, and Google Docs with a Zap in Zapier. That integration allows us to put all of our core information about an auction into a spreadsheet. Zapier sees we have added a new line, and it parses out specific data and feeds it to ChatGPT, asking it to create ad copy and descriptions for the auction and output them to

To wrap this up, I promised it would be cheap and easy. So far, I have outlined the easy part. As for cheap, there are free versions of both of the tools we have discussed, and many other applications have free versions to get started, which may even be free forever based on your size. However, to get the level of integration I discussed in the last section, you need to invest some money. The monthly fee for Zapier for the level of integration I have talked about here is $19.99 per month, and the cost for ChatGPT Plus, which is required to integrate ChatGPT with external applications, is $20 per month. Nevertheless, these costs are reasonable and are outweighed by the significant benefits that automation and AI can bring to your auction business.

One final thing.  I am really bad at spelling and punctuation.  So I had ChatGPT review this article for me and clean it up.

The Lost Year: Back to Work

2015 was tough just no getting around it.  I started the year working with an amazing team as the CTO of a company I really believed in and the COO of the company that was supposed to be my future.  By the end of 2015, I had been through 3 jobs (all of my own choosing), I had spent most of the year just trying to find out what my employers really expected of me and honestly never getting an answer.  I don’t know if I can explain in words what it is like to go from the top of your game with people counting on you to make all the right decisions to people not even caring if you showed up to work.

But for me, it was a combination of things.  For the first time ever I really experience depression.  Having grown up with parent’s who deal with it and my wife who has made huge progress in her own mental health this was a shock to the system.  But I found out that it is something that I can cope with when presented with it and push through so that was a win.  Anxiety was not new to me.  Starting in early 2014 when a critical project refused to go right no matter what I did I started having mild anxiety attacks and they really screwed with me.  Being depressed is one thing but feeling totally out of control and on edge is a whole other thing that I was not really equipped to deal with.  But through luck, hiking, and lots of time to let my mind and body disconnect from years of stress that I had never dealt with the anxiety slipped away and for now has become dormant.  However, the hardest part was the self-doubt and that compounded both the depression and the anxiety.

After years of winning and moving forward, I had started to face failure no matter how hard I tried in my mid-30s.  Let me tell you that is a tough time to face failure with 3 kids, a mortgage and staff counting on you not to fuck up.  So when I jumped from a CTO/COO role to just being a cog in a big company I did so with plans to do more big things and get back on the winning path.  Roughly a year later that had not happened.  For about six months I had really been wondering if I had what it took to get back on the horse and do big things again.  I considered a few things, start back from scratch and become the best network engineer I could be and downsize my expectations for my future.  Honestly, that had lots of upsides and no matter how hard I try I would never be as good as most of my friends and engineers I look up to but I could do what I was good at which if fixing broken networks.  Option 2 was to find a nice safe role where I was where I consistently bang out what was expected of me and hopefully retire in 30 years but there was lots of stuff wrong with that plan so I pretty much said screw that from day one.  I am a lot of things but I am not lazy and willing to lay down and die.  If I am going to go out it will be swinging even it is failing my CCIE for the 400th time if that is even possible.  The final and most challenging (thus most likely for me to choose) was to go find a challenge that was bigger than my experience but allowed me to use my strengths.  If you are reading this you probably already know what I chose.

Just short of a year on from the decision to take on a Sr. Director of Operations role things are still humming along.  I write this hoping others see it and know that they are not alone when it feels like it is all coming unglued and years of work is slipping away.  For me, it took a year of soul-searching and unexpected downtime followed by doubling down.  Just remember to keep moving forward.

A Few Easy Steps: Cisco Switch, Setup IP Device Tracking

In this session of A Few Easy Steps, we will be setting up IP Device Tracking on a Cisco IOS Switch. In General this will work on any Cisco IOS switch.  Session Prerequisites:

  • You have terminal or console access to your Cisco device.

Session Assumptions:

  • You have host devices connected to your switch

Our goals of this session are:

  • Globally enable IP Device Tracking
  • Setup all ports for IP Device Tracking
  • Show output of IP Device Tracking All Command

Read more

What did you Expect? Part 5, Basic Error Handling.

In the first four parts of What did you Expect, we covered the basics of getting started with automating interactions for network equipment.  In the first few posts it was important have a networking environment that  was 100% stable.  The last thing I needed when I was trying to learn to use python to automate network devices that were randomly unresponsive and would crash my code.  In order to accomplish that I built a test network you can read about here in GNS3, created a basic configuration to enable a IOS device to be remotely managed.  I also wrote a quick multi-device ping tool to verify that all the devices are responsive before we run remote code against them.  I made my life easy.  But as all operators know our lives are not that cut and dry.  So I started to break things…and my code did not like me. Read more

Get Coding!

So lets start off with I am an old dog and I am learning new tricks.  My entire career I have avoided the dreaded programing.  In college I slid by my degree requirement for a coding class by taking Visual Basic for Industrial applications.  I hated it.  Debugging drove me nuts and there is still a hole in my bedroom wall at my parents where that brick of a VB found itself one night around 2am.  From there I was just gun shy and honestly had plenty of other things going on that could afford to ignore learning anything outside of the basics of HTML and CSS.

Cut to today,  I am in my late 30’s and going through a career transition of sorts.  My timing for the transition is decent because the network industry is also going through a bit of a transition.  For awhile now all the cool kids have been doing automation and Dev/Ops in the Server, OS and application space.  But networks are trickier.  I will leave out all the discussion of why because that horse has been beat dead a few times online.  In this transition over the past six months or so I have found myself doing things I would never have guessed even a year ago.

So what types of things you ask.  Ok for one I am now doing dev work.  Mind you it is not great dev work and I will never be a professional developer but I have been writing code.  In one case even some minor code for a library that is now in production with clients…scary huh.  But mostly I am coding to learn and help move other people along the Path to Automated Networking including myself.

automated networking

Read more

Back to the basics. Installing Ubuntu Server 14.04

Back in 1996 when I started this game there were lots of things I had not done.  Now days it seems like everyone I meet is 18, running service provider networks and writing code in all the hip new languages.  That is not the reality of the world.  The reality is that we all start someplace.  So I am going to create some content with the assumption you have never done some of the basics.  This first one is a video showing a basic Ubuntu Server 14.04 LTS install.  Enjoy.

 

 

A Few Easy Steps: Cisco IOS, Setup for Automation

In this session of A Few Easy Steps, we will be doing the initial setup for automation on a Cisco IOS Device. In General this will work on any Cisco IOS Device.  Session Prerequisites:

  • You have a Cisco Console Cable
  • You have a serial port
  • You have a Terminal Program that you can access your Serial Port

Session Assumptions:

  • Hostname is already set
  • Domain name is:  SPC.DEV
  • RSA modulus is  1024 bits
  • Our Admin interface is:  FA0/0
  • The Interface has already had its IP Address assigned
  • Enable Password is: password
  • Username is : pytest
  • Password is:  pytest
  • We are using VTY ports 0-5

Our goals of this session are:

  • Setup IP Domain Name
  • Create RSA key for SSH
  • Set Enable Password
  • Setup Username
  • Setup Password
  • Turn interface FA0/0 on
  • Enable SSH on VTY 0-5
  • Set Login to Local Authentication

Read more

What did you Expect? Part 4, Working with Flat Files.

So far so good.  In Part 1 we connected to a Cisco switch and and performed basic Authentication with Expect.  Part 2 we expanded on that and added configuration to our code that added a VLAN and configured an interface.  But as I have already stated we are writing quite a bit of code just to configure a single switch.  So the next step is to add multiple devices and flat files.  I mean yeah we could setup a static list in our code and add our devices to that but why?  Our real goal here is to create functional code that we can use to do real things in real networks.  So that means pulling a list of devices from NMS, IPAM or even our nasty old excel files.  Plus this helps us address  the idea of adding authentication files and other flat file resource pools.  Eventually we will transition the use of flat files into databases so we can do even more cool stuff but we will hold off on that for now.

Read more

What did you Expect? Part 3, Fixing Stuff and Scaling Out.

When you setup to learn new things you are bound to get a bit sideways once and awhile.  With writing code I think that is even more the case.  You start out with an idea and if your lucky like I have been so far it starts to flow and things just work.  But in the spirit of learning in manageable chunks and sharing the experience with you I started targeting a single host.  When I tried to make the leap to multiple hosts things got interesting.  Along with that it became clear that these posts were going to get messy quick.  So lets clean all that up and move on to the cool stuff. Read more

Setup GNS3 Automation Network in OSX

I have been working to learn how to use Python to automate interactions with network devices.  Due to what I have in my lab and the fact that we have GNS to model Cisco Networks I started with IOS.  In order to really test out the automation scripts I have been building, I felt it was necessary to run them against at least ten devices to make sure they would scale out and recover well from errors.  In order to do that I had to build out a 10 device lab.  This is how I did it. Read more

NAT Store: The books you read and the stuff you use.

One of the lines that I have taken to heart in Life is  “your only difference between now and ten years from now will be the books you read and the people you meet”.  I read it years ago and since then I have doubled down on my reading.  Prior to this I was reading lots of fiction and technical documents around doing my jobs as a network engineer.  Since then I have expanded into Finance, Marketing, Strategy and more.  I can’t begin to tell you the difference in my life it made.  While I won’t go into details actions I took as a direct result of what I was reading helped me go from a mid five figure salary to a solid six figure salary and on a pace that made me part of the businesses I was with not just an employee. Read more

What did you Expect? Part 2: Working with VLANS

So we started off in Part 1 breaking down what a basic SSH connection and authentication looks like using Python and Expect.  To add some context to this I am using the pexpect library for Python.  This library falls back on system level tools like the the SSH client inside OSX or Linux.  I can’t speak to how this works with Windows so just be aware of that as we move forward.  In the long term I will start adding more complexity such as the ParaMiko and NetMiko libraries that use integrated SSH clients but for now I want to keep this as simple as possible so both you and I can get the most value out of these posts. Read more

What did you Expect? Part 1: Connecting to Cisco IOS

Most of my career I have been an network operator.  In that time there have been many repetitive tasks that I wish I could have automated but I simply did not not have the skill or knowledge to do anything about it.  So when Big Matt Stone sat down and showed me what writing code in Expect inside of Python was all about I was BLOWN AWAY!  This is part one of who knows how many in my series of starting to use Expect to automate network tasks. Read more