Tuesday, January 28, 2020

Learn to code, they say. Hah!

Obligatory this happened about a week ago, and this is a throwaway account. I had actually been debating on even posting this or not, once the initial sting and depression wore off, and decided I'm going to do so.

I think first I need to start with a little background about myself. I am a network engineer with 15 years of experience in enterprise. I have a CCNP, but never went after CCIE (like many of you here, I imagine.) I've spent my entire career doing route/switch/firewall, again like many of you here.

Over the last two years, I took a hard look at all the warnings online and otherwise that we network engineers should learn to code. It'll save us from going "extinct."

Automation is coming to take our jobs. Dev Ops is coming to take our jobs. Infrastructure as Code is coming to take our jobs.

We've all heard it.

I took it to heart. After over a decade working in the field, I had never once learned to script or code, not even basic stuff. No powershell, no bash, no python, no ANYTHING. I never even wrote so much as an EEM script in IOS!

So to put it mildly, these warnings put a pretty strong scare into me. I was ill-equipped to deal with a future where my skills could become irrelevant long before I became retirement age.

So in response, I set off on a journey to learn to code. I know that sounds silly, but it's exactly what I did. I poured over online books and forums, reading constantly about the different languages out there, and I chose Python, because it seemed to be the one that comes up in conversation the most.

Now what did I do? I bought books, I bought VODs, and training. I took classes on UDEMY, I took Cisco's NETACAD courses, I signed up for K Byers "Python for Network Engineers" course. I even created a new reddit account just for asking questions on various python and dev type subreddits. I poured my time and energy into this.

And it paid off! Or so I thought. In less than a year, actually just a few months really, I was "scripting like a mad man." I made tons of scripts at my job place. Now even my coworkers do certain tasks by running my scripts to fulfill work orders. My scripts have become part of DR plans and continuity binders. Needless to say, I was feeling pretty good about myself.

My crowning achievement was a network OS upgrade automation script. It would log into the IP, determine what model the device was, pull the appropriate code from our FTP server, and then run pre and post checks. It would grab all the routing neighbors, number of routes in the RIB, and the next hop for all those routes, write them to variables, perform the upgrade, and then do a post-check afterwards. Differences it found were immediately drafted into an email and sent out to us.

For the first time ever in my company's history, we performed IOS & NX-OS upgrades without anyone even being AWAKE for them. We felt confident enough to schedule it late at night and just wake up to the results the next day.

So, feeling a little big for my britches, I decided it was time to challenge my newfound skills in an environment that would have more demand for them. So I put my feelers out and started looking for jobs that focused on coding and automation of network infrastructure.

For being in a major metropolitan area, I came up surprisingly dry. But then it came in like a beacon. A recruiter (a headhunter really) contacted me about an opportunity at a Fortune 500 that was looking for a "NetDevOps Engineer." He explained to me that they were really looking for a networking expert that could help coders adapt to this new dynamic. He shared the REQ and I'll be 100% honest, it read like a Network Engineering REQ.

They wanted proven skills and experience managing an enterprise network. They wanted expert knowledge of routing protocols and standard configurations. They wanted the ability to troubleshoot and isolate network faults.

Any mention of python, code, or programming in general, other than the title of the REQ, was just in passing.

It sounded like the dream job to me. I was not expected to be an "expert programmer." I was expected to be a good network engineer first, with a focus on automating and coding this all.

I began reading about Infrastructure as code and had dreams of a long and successful career. "This is the future" I thought, and I was going to be smack dab in the middle of it.

To prepare for the Interview I poured over the technologies listed in the job REQ. My recruiter reassured me that they were mainly looking for a networking guy, who knew python and had written a few scripts on the side. So that's what I prepared for.

Then came the interview. And it. Went. HORRIBLE. I was totally unprepared, and I left there feeling humiliated and knowing I did not get the job.

I was taken completely off guard by the interview. It did not ask a single question about routing protocols or networking really in general. Instead it started out hot and heavy about coding and development concepts. Stuff that I, as a network engineer who had self-taught himself python, knew absolutely NOTHING about.

I'll try to recount the questions I was asked as best as I can but honestly it was just a blur:

  • How do you manage source control? Something about "single source of truth."

  • Tell me about how you manage branching, pull requests, bugs and hotfixes?

  • How have you integrated unit testing, integration testing, and regression testing?

  • Tell us about linting your code.

  • Does your code closely follow PEP8?

  • How have you optimized "oh one complexity, and oh N complexity?"

  • How have you achieved a repeatable and sustainable code base? Tell us about your SDLC pipeline.

By the end of this interview, my face must have been beat red. I tried to work in a few examples of how my scripts had increased efficiency in our environment, and how a solid foundation of networking protocols was I would bring to the table, but they didn't want to hear about any of that.

The most painful part of this was that even after I had showed I was mostly clueless about any of what they were asking (and I didn't try to lie and stumble through stuff. I just said my experience lay elsewhere and I wasn't familiar with the concept, etc.) they STILL kept pouring on the questions. It was like a dumpster fire.

It's been over a week now and I haven't heard back from the company nor even the recruiter who had initially contacted me. He hasn't even returned my calls.

So I just wanted to get this all off my chest and rant for a bit. If you've spent most of your career as a network engineer, and you suddenly think you're going to turn around and "learn to code" and go to a place like that, I think it's a pipe dream my friends.

These seem like life long crafts. I felt like a caveman being asked these questions. I can't even imagine how I could possibly get to where I currently am to where they wanted me to be.

Have you had similar experiences? Am I letting one bad experience discourage me too much? Because from where I'm sitting right now, I feel like I need to go crawl into a hole somewhere. I got a brief glimpse into a world far more advanced than the one I've been living in, and I felt overwhelmingly that I wasn't cut out for being in that world.



No comments:

Post a Comment