Software Engineering interviews: The history repeats

Gonzalo Gasca Meza
6 min readMay 2, 2021

Recently YouTube algorithm recommended me System Design, Algorithms and Software Engineering interviewing video. Am I looking for a new job: No, I currently love my job at Google as a Software Engineer.

There is already many articles about how the interview process for Software Engineering works today and the complains about LeetCode as the method to evaluate the capacity of someone delivering code and being a successful candidate. The current process is very similar as few years ago Cisco CCIE certification preparation. Let’s start with a story:

CCIE Exam

Cisco Systems, Inc around 2000 started a program called Cisco CCIE certification (Cisco Certified Internetwork Expert). This was the most valuable certification in the network industry in the 2000s. CCIE consisted of 4 different tracks: Routing and Switching, Voice, Security and Storage. Later they added other technologies such as Data Center. In order to get the certification, you needed to pass two exams: Written and Lab exam. Written exam was a proctored exam of 100 questions, which you needed at least 80% positive answers and this give you the right to perform the lab exam. Lab exam consisted in a full day exam in Cisco offices in front of real Cisco equipment where you had 8 hours to complete different tasks. Lab exam was available in just a few Cisco offices in the world: San Jose, RTP, Belgium and Tokyo. Cisco build a whole industry around certifications (Cisco Press, Exam centers, Partner programs, Events)

Getting certified…

I started my career at Cisco Systems as part of the Voice Escalation team, helping top Cisco customers solve production problems. From 2004 to 2009, everyday I was solving one of the most complex Voice problems in production networks. (Lehman Brothers, Deutsch Bank, Dimension Data, Disney, etc). This means our team needed to understand Networking, TCP/IP stack, QoS CallManager, Unity, IOS code base, Windows/Linux OS in depth, SQL, MYSQL, Exchange 5.5, 2000, 2003, Active Directory, VoiceMail technology, C++, Perl, HTML/CSS, etc.

I presented my first Cisco Voice CCIE exam attempt in 2007 in San Jose, California, I failed two more attempts in a span of 18 months. Lab exam was not easy, I was already a tech lead for the Escalation Voice team in California, Cisco HQ, and involved in Voice technology since college, where I started contributing to the different open source projects. Passing the CCIE exam was not easy, I passed the exam in my fourth attempt when I traveled to Tokyo (with a broken leg) and became a CCIE Voice #23918 in 2009. Ok, why does this matter?

Back then there was also a huge industry of brain dumps: testking.com, piratebay, forums and sites offering the written exam questions, which gave you a the ticket to present the lab exam. There was also a new industry which allowed you to rent Cisco lab equipment to practice, and the emergence of multiple bootcamps. In these bootcamps you had the chance for a week to complete similar challenges as the exam.

Passing the written exam was easy, but doing the lab exam was a different beast, it require:

  1. Familiarity with multiple Cisco Voice and Networking products. (CallManager, Unity, IOS routers and switches, QoS, T1/PRI, Frame Relay, FXO, FXS, etc)
  2. Familiar with Cisco product line and have access to real equipment (~$5K-$100K worth of equipment)
  3. Execute the instructions as fast as possible.

Start noticing the same pattern?

Personally, I put ~6 months studying day and night before each attempt, and yes every failure was painful. It made me doubt about my capacity as engineer, the meaning of having a certification, and if it was worth the effort. As a Cisco employee we were getting a $5000 dollar bonus and public recognition, but…externally if you were a Cisco CCIE, Cisco partners would hire you on the spot for at least 150–250K, which back then was a pretty good salary. Even if you had no experience, …if you have time and money, you could study day & night, attend multiple boot-camps and yes possibly the lab. Many companies just hired CCIEs for the fact of getting Cisco partner discounts.

Forums started to emerge, people discussed exam questions, if you were part of study groups people started sharing. Many grads students started studying for the exam as the compensation was very good. Passing the CCIE Routing and Switching exam was the easiest, it had the most available material available for people to study before the lab. Cisco tried to track down websites such as testking.com or braindumps and successfully reduced some of these practices, but at the end the exam lost credibility, Cisco as a company started losing market share and Cloud emergence hit the company hard, now this certification doesn’t mean much.

State of affairs

Cisco CCIE was not for Software Engineers, it was for Network Engineers mainly. But, this is a very similar trend as Software Engineering today. Websites such as Leetcode, interviewing.io, educative.io, YouTube channels of kids (with some exceptions) with 0 experience, promising you will get a job in FAANG for 200K+ is the reality now. If you are a senior engineer, you probably don’t have much time to study all Leetcode questions and you want to focus more on System Design. There is websites and YouTube channels that can help you as well, because of course who doesn’t want to land a job in FAANG and make 400K+ year.

This is a similar comparison, between certifications and current job offerings:

╔═══════════╦════════════════════╦═══════════════╗
║ YoE ║ Level ║ Certification ║
╠═══════════╬════════════════════╬═══════════════╣
║ 0–3 ║ L3 ║ CCNA ║
║ 3–5 ║ L4 ║ CCNP ║
║ 5+ ║ L5 ║ CCIE ║
║ 10+ ║ L6 ║ 2+ CCIE ║
╚═══════════╩════════════════════╩═══════════════╝

Unfortunately today we need to go through this process, and I advise you to do the following:

If you a junior engineer:

  • Find time to practice Data Structures and Algorithms
  • Yes, solve Leetcode problems
  • Contribute to Open Source projects
  • Record Youtube videos explaining Computer Science Concepts and system design questions. Watch it yourself, until you feel confident you actually would watch yourself :)
  • Form study groups and help each other interviewing, giving honest feedback, sharing tips, motivation is very important.
  • Don’t lose motivation if an interview does not go well, there are many other opportunities for you in the future.
  • FAANG is not everything, there are many other companies with very fun work (Aerospace, Cryptocurrency, Self-driving cars, Machine Learning)

If you are senior engineer or staff:

  • Push for system design interviews, but in the field you work on. Do you work in Machine Learning infrastructure? Probably you do not want to be asked a Payment system design question.
  • Interview only for companies that do not do LeetCode
  • Share your Open Source contributions or Github projects with the companies you are interviewing with.
  • A take home project in your field and presentation/discussion around it is the one of realistic ways to see candidate work
  • If not an option, make a plan of studying Leetcode (Many websites already have discussed this, so I’m not gonna repeat the same!)

What is the future of Tech interviews?

Process is always painful and is made to avoid false positives. Leetcode process means is ok to miss you but avoid a lot of false positives. No one can evaluate your work, even in internal processes there is flaws.

I think for junior engineers Leetcode will continue happening, currently there is no standard across the board as they currently face stiffer competition. Do we need a standard or certification? Probably no, as the history showed us there is a risk of people abusing the system. For senior engineers I believe take home projects and real coding projects sharing makes the most sense. But only time will tell.

--

--