A Network Engineer’s Journey in ProgrammabilityHello Cisco Learning Network, it is guest blogger time. On March 30th, 2017 we'll be hosting a free webinar with today's author, Hank Preston III. Registration is still open, and the live event will be posted as an on-demand video recording afterward (for those reading this after the live event has taken place). Please visit this page to check out info on this event and recordings of several others: SDN Recorded Seminars. The Cisco Learning Network team is working to connect you with DevNet's folks in 2017. Hank is a DevNet evangelist, and we're psyched to partner with him in this guest blog. Over to you, Hank.




Being a network engineer isn’t what it used to be. Let’s face it – over the last several years, every aspect of IT has been in a rapid state of change, and the network is far from immune. If you spend a little time looking around, you’ll find several perspectives and opinions ranging from “the sky is falling” panic to “it’s just a fad” denial and everything in between. I like to take a practical but optimistic view of things, and I am excited for the opportunity this change has offered me as a network engineer – or should I say, “network developer.”


Let’s consider the transformation of one of our own: Carl. (Names and details may have been changed to protect the innocent.)


Carl the Network Engineer


I’d like to introduce you to Carl. Carl is a… shall we say… “seasoned" network engineer. He’s been slinging data over wires since the days when IP shared bandwidth with IPX, AppleTalk, DECnet, etc. Yes, my wide-eyed friends… there was a time not that long ago when there was more to networking than TCP/IP.


A Network Engineer’s Journey in Programmability


Carl is a well-rounded network engineer. He has a robust set of networking skills. He understands the importance of spanning-trees in a network. His routing protocol designs are things of legend at the local user group meetings. He has mastered marking, shaping, and policing for Quality of Service. He NEVER lets a root bridge just “happen.” Need assistance with your VPN configuration? Carl is your man. He can handle point-to-point, mesh, and dynamic VPNs in his sleep. Carl has been known to tell and re-tell the tales of the great spanning-tree loop of “ought-five”. He can even hold his own in discussions with his service provider on the merits of penultimate label popping. Oh, and how could I forget spanning-tree… Carl can explain why you must NEVER accept the defaults for a spanning-tree configuration.


Carl’s success as a network engineer isn’t just because of his core networking knowledge. Over the years, Carl has picked up several programming skills to help him in his operations duties. He can TCL a router until it laughs and gives up all its secrets. When a network change is needed, Carl long ago stopped manually deploying CLI configurations and mastered Expect scripts. And after a junior engineer forgot to “write mem” one evening, Carl dug into Embedded Event Manager (EEM) on his Cisco kit to ensure that never happened again.


What is “the network” today?


These skills and techniques have made Carl a very successful network engineer working on networks that look like this:


A Network Engineer’s Journey in Programmability


The problem is that networks don’t look like that anymore. They look more like this now:


A Network Engineer’s Journey in Programmability


The change started innocent enough. First came the “vSwitch,” a virtual switch that lived inside some new “server technology” called “ESX.”  Well… Carl and his fellow network engineers snickered at its complete lack of features; and it was software after all. Network engineers around the world decided to let the “server teams” handle the “vSwitch,” and they would deal with “real networking.”


The changes continued with the addition of the “Blade Switch,” or maybe the “Blade Bridge,” or “IO Module;" but it too was considered “not real networking,” and the server teams were left to deal with it.


What Carl didn’t realize at first was that “vSwitches” and “Blade Switches” were absolutely “real networking,” and including them in network architectures, engineering, and operations is CRITICAL to a healthy network.  And as the access layer of the network moved to these new technologies and the features they offered quickly increased, the teams managing these components weren’t “server teams” anymore.  No, they were a second “network team,” and that team was working with the new and latest network technology (and they had budget ).


A Network Engineer’s Journey in Programmability


Today “the network” continues to evolve and looks more like the above image. The rapid onset of container technologies has brought the “Linux Bridge” (lbr) to view as the new “access layer” where micro-services and workloads are connecting to the network. And we can’t really leave out the impact “Cloud” has had on the network, not to mention how important all the network services are that are becoming core and critical to a well functioning network.  The network engineer of today has to first recognize that the network is much much bigger than the physical routers and switches mounted in racks.  And secondly, they must have the skills and knowledge necessary to operate this new network.


So… what about Carl?


Well… what is Carl to do in this new world?  Should he continue to keep his head in the sand and deny the new reality?  Well, that is certainly one strategy, but it’s not the one that Carl has adopted.  Okay… to be honest, Carl did deny it for a little while.  After all, denial is the first stage on the way to acceptance.  However, after going through denial, anger, bargaining, and depression, Carl arrived at acceptance and decided he was too young to retire, and wanted to keep his position as a respected network engineer.  In fact, while studying for his most recent re-certificaiton, Carl noticed that Cisco had added topics like Python and REST APIs to the test.  This meant Carl had to learn some new things… but learning things isn’t new to Carl. So he made up a plan and got to studying up.


Carl finds DevNet


A Network Engineer’s Journey in Programmability


At his last trip to Cisco Live, on the way from a breakout on "Troubleshooting BGP" to a lab on “VXLAN Fabrics,” he passed through the DevNet Zone. At the time he was just trying to get to his next session, but he did recall seeing something about “APIs” and heard a “Coding 101” class going on, so he started his journey at “http://developer.cisco.com”, also known as DevNet, Cisco’s Developer Network.  On DevNet he found Learning Labs (http://learninglabs.cisco.com) where he learned the basics of Python, REST APIs, and about something called the “APIC-EM Controller”!  Wanting to test out some new skills but lacking any lab gear, he was happy to discover the DevNet Sandbox (http://sandbox.cisco.com) where he could get access to developer environments with switches, routers, and controllers all for free!


A Network Engineer’s Journey in Programmability


On DevNet Carl got started, but it wasn’t the end of his journey. As he got excited by the potential of network programmability, he realized with a simple web search he found online tutorials, classes, and entire communities of network engineers just like him learning and exploring.


A Network Engineer’s Journey in Programmability


Captain Cloud takes flight!


Carl realizes now that he’ll never know it all… things in IT are just changing much much too fast.  But, he is now ready and excited for the challenges that face him. In fact, he is so excited that he has taken on an alter-ego to represent the transformation he has undergone. Meet Captain Cloud!


A Network Engineer’s Journey in Programmability


As Captain Cloud, Carl has added to his skills (yes, spanning-tree, QoS, routing, spanning-tree, VPNs, and spanning-tree are still important).  He recently updated his LinkedIn profile with some new skills.


“Core Programming Skills”


  • Python
  • Linux Skills
  • Ansible
  • git/GitHub
  • Docker
  • "DevOps”



“New Networking Skills”


  • Network Controllers
  • Container Networking
  • Cloud Networking
  • Linux Networking
  • IOT
  • NFV




I hope you found Carl’s story entertaining… but more than that I hope you recognized some of your own journey in it. No matter where you are in your career, we must never stop learning.  The technologies and skills needed by a network engineer today include both traditional topics like spanning-tree, as well as newer topics like APIs, coding, Linux, and containers.  The CLI isn’t dead, but it also isn’t alone anymore.  Tools like Ansible, protocols like NETCONF, models like YANG, and network controllers are rapidly becoming the new norm for configuration and operation of a network as direct human interaction is being recognized for the archaic risk that it is.


I invite you to move from denial to acceptance as fast as possible, and join me in the new world of network programmability!  (But don’t forget about spanning-tree)





Hank Preston
Hank’s two passions are technology and theatre and bringing them together drives him towards a borderline obsession on creating entertaining presentations, labs and demonstrations that breakdown complex technology topics for audiences.  After spending several years working on and behind the scenes on stage productions, what started as a hobby turned to a profession when Hank entered the IT industry with a focus on web and database development and engineering.  Drifting from development into infrastructure engineering brought him to Cisco as a Systems Engineer focusing on Data Center and Cloud Architecture for large enterprise customers.  And after six years as an SE, Hank has taken up the mantle of a Developer Evangelist with DevNet where he can focus full time on reminding everyone that technology can and should be fun to work with.  Hank holds a Master Degree in Information Systems as well as several certifications including CCIE R/S 38336 from Cisco.


Find Hank at:

twitter: @hfpreston (https://twitter.com/hfpreston)

GitHub: http://github.com/hpreston