What I've Been Up To In 2019

It has been almost exactly six months since my last post. What have I been up to? As you can imagine, a lot can happen within six months of time. For most of the year, I have been involved in some paid writing engagements (in fact, I’ve written about 40,000 words this year!). I’ll admit, this has taken quite a lot of my time and made me less interested in creating content for this site.

My interview with Facebook

Toward the beginning of the year, I was contacted by Facebook for a senior network engineer position. I had two rounds of interviews with them. The first interview was all about networking knowledge, which I did very well on thanks to my experience and CCIE studies. I got the impression that not too many people they interview are very familiar with BGP, so I think that really helped propel me forward. As you may have guessed, my interview inspired my post on working with Open/R.

The second interview was about software development and coding. From my initial point of contact, I let them know I am still in the relatively introductory stage for coding skills and that I didn’t want to waste anyone’s time. The Facebook recruiter assured me that coding represents a very small part of the job and that I didn’t need to worry about it. Of course, that turned out to not be the case.

Like many network engineers, I can write scripts and, given enough time, I can figure out how to do just about anything technical. However, I am not a software developer, and my background is in information systems, not computer science. All of the scripts I’ve written have been through trial and error and taking the time to work out the logic across many tests. For my second interview, they gave me some classic computer science problems and wanted me to work through and solve them live. I felt really bad for wasting the interviewer’s time, but I did give it my very best effort, even though I did not have the level of coding skills they were ultimately looking for.

In retrospect, I think not getting this particular job may have actually been very fortunate. The job required me to be in the Facebook office in Menlo Park. I’ve lived in Florida for the past 20 years, and the financial upheaval of moving to Silicon Valley would have been tremendous. Rent for equivalent-sized houses here in Florida is about one-fourth the price in the Valley.

Granted, this would not have been a simple decision, and my wife and I spent several days trying to examine the idea of moving and working there from all possible angles (mostly financial, but also happiness and quality of life as well). Our lives most certainly would have been turned upside down. Once I received the word that I didn’t get the job, it actually renewed our appreciation for living here in Florida. Moving multiple cats more than 3,000 miles was also not very appealing.

My second CCIE lab attempt

Then, in early June, I flew to Dallas, TX to make my second CCIE lab attempt at the Cisco campus in Richardson. I failed this attempt and have not spoken much about it publicly yet. The truth is that even though a year had passed between my first and second attempts, I did not do much better than before. I expected the gap between the two attempts to be much wider.

There’s a lot that went into my final score. Ultimately, though, I did not put in the required effort needed to achieve a passing score. My second attempt gave me a renewed appreciation for those who have legitimately passed the lab exam. Without a doubt, it is because they have put in the required amount of work and have sacrificed everything necessary to achieve the goal. Passing the CCIE is no joke and requires an unprecedented level of serious commitment.

I am still evaluating what having the credential itself actually means, because that meaning has changed dramatically for me over the last five years. I will never regret the time I have put in studying, because it brought me to where I am today. But will I ultimately put in the required remaining work to achieve the title? I am still pondering that.

I haven’t discussed it much publicly because people can be extremely opinionated about this subject. I consider myself very fortunate to be a part of such a passionate community of technical people, but I wanted to take in other people’s experiences with this matter passively and form my own opinions and understanding. I wasn’t ready for anyone to offer advice or opinions trying to sway me in either direction. I try to maintain a balance whenever I can.

I am letting it go for now, but not ruling it out for my future once the new CCIE revisions are released in February 2020. Not that having the CCIE wouldn’t open up new doors for me, but I’m not so sure it’s as relevant to me personally anymore as it used to be. In fact, I had reached a point where I felt like continuing to study for it (just labbing configurations at that point, really) was starting to hold me back from learning other things I feel are interesting and important.

A big part of this is knowing my career future may not be entirely technical anyway. It took a lot of time to reach this point, because I’ve invested so much time into it, but letting it go felt like an enormous weight was lifted off of me. At the same time, I can realize that I did not waste my time while I was studying for it, and it could never be considered a total loss, even if I ultimately never obtain the CCIE.

My new job at Cisco

I have to be honest, being contacted by Facebook was a real big ego boost for me. They have open positions all the time, but I didn’t contact them; they contacted me. Even though I was mostly satisfied at Rotech, I knew I wasn’t going to spend the rest of my career there. After the Facebook contact, I felt ready to work in a much larger network environment and so I started to keep my eyes open for potential opportunities, preferably within the same relative geography.

Over the years as I’ve gained more experience and industry exposure, I receive a proportional amount of recruitment offers. I do not wish to go from being a senior network engineer in Florida to a desktop support technician in Kuwait, so 99.9% of the contact attempts go ignored. But this recruiter hit all the right points and was very responsive and helpful when I asked for a follow-up with more information.

Most important, she did not try to hide anything or play any kind of numbers games with me. Most jobs require such an overlapping range of skills (many of which I have no interest in) and have an undervalued salary to go with it. For this position, I was comfortable with everything mentioned, the salary was right, a bonus for me was that it was for Cisco, and I could see potential for upward mobility, which I did not have at Rotech due to the size of the company.

The position is with Cisco’s managed services division, and I am leveraging my previous experience with designing and deploying SD-WAN to migrate a large Fortune 50 financial customer to SD-WAN over a multi-year contract. I am now working in a network environment with over 5,000 sites, 70,000 routers and switches, and nearly three million ports. I had an initial phone interview which went well. I then had a face-to-face interview four days later.

During those four days, I put together a mind map to show my understanding of the SD-WAN solution I’d be working with, since I had no direct experience with it yet. I wanted to demonstrate my ability to take in and organize a decent amount of information in a relatively short amount of time (something studying for the CCIE helped me with). The face-to-face interview went extremely well, and I was offered the position before the end of the interview.

I’ll forever be grateful for the experience I gained in the four years at Rotech. Working at a midsize enterprise, I was exposed to so many things that a lot of network engineers will not experience, either because their company is too small, too large, or the timing wasn’t right. I was cognizant of all of these major experiences as they were happening and fully aware of how fortunate I was to experience them. I’ve already written about many of the experiences, such as migrating the data center and upgrading to SD-WAN.

What I haven’t written about as much, though, is the exposure I received to other aspects of the business. This includes being able to directly speak to managers of all teams under the scope of IT, including the help desk, systems administrators, BSAs, and developers. I was even free to speak to the CIO whenever it was necessary, or even if I simply had a thought to share that I felt others within the company could benefit from.

Now, working for a gigantic enterprise like Cisco, I know that I will probably never again have several of those experiences. But because I took the time to realize how fortunate I was to experience what I did at Rotech, it enabled me to open up to all of the new experiences I will have here. It has been very interesting to compare and contrast between a midsize and a large enterprise environment. Larger environments have many more standards and processes in place. Many people see this as a hassle, but my experience allows me to see the benefits. So many people in IT have worked their entire careers inside large enterprises, which can make it difficult to see beyond your department. Because of my previous experience, I feel like I can bring a more wholistic vision to the solutions I present.

What now?

With my new role at Cisco and some renewed interests and focus, I am hoping to start generating some new content for this site. I may end up doing more posts that are less strictly technical and more opinion- and experience-based.

If you’ve visited my site before, you’ll note that it now looks quite a bit different. I was very much inspired by Nick Russo’s demonstration of how he develops and maintains his personal website as code. For many years, I’ve used the standard WordPress install because it was initially very easy. I’ve never been a real fan of the post editing process, though, as it has always seemed overcomplicated for my needs. Likewise, I don’t use most of the capabilities of WordPress anyway.

I really like simple, but I still wanted just a little bit of personalization. I discovered the concept of static website generation and found there are many projects out there. I chose Hugo, and spent some time learning the basics of how it works. I took my existing blog posts and converted them to markdown. These markdown files are then processed by Hugo which uses templating to generate static HTML files. Previously, I was hosting my site on a Linux VM on DigitalOcean, but now this site simply resides in an AWS S3 bucket.

I had to do some tweaks to transition the site. For example, the URL structure is a little different, so I had to create a bunch of redirection rules for AWS. I am still in the process of building the pipeline, taking after Nick’s example, but I reached the point of accomplishing a good start in the process.

I write the markdown, generate the HTML output, and run a custom Python script I made to verify the links (inspired by Nick’s, but written from scratch). The script works by scanning my front page and building a list of all the links. I test each of those links, and then recursively scan the links of all my sub-pages one level deep. The first time I did this, I found several links in my older posts that no longer worked and left me wondering why I hadn’t done this a long time ago!

Currently I am manually linting the markdown files and manually uploading the final HTML files to AWS, but I intend to continue with Nick’s example and build a proper pipeline that automates as much of this as possible. However, I was also ready to present the site overhaul and start getting some content out there! I have some ideas I’ve been working on that are more metacognitive in nature that I hope to release soon.

As always, thank you for reading. I appreciate your time.