Cisco Interview Experience 2020 | On Campus
This was an On-Campus virtual interview that happened during the month of August 2020 midst of the Covid-19 pandemic. Cisco visited our campus for two roles.
- Software Engineer – Network/Embedded/Application Development
- Software Engineer – Cloud Application Development.
I was interviewed for the Cloud Application Development role.
Round 1 (Online Test): This HackerRank test consisted of 15 MCQ’s and 2 coding questions which had to be solved within 60 minutes. The MCQ’s were mainly based on CS fundamentals consisting of computer networks, DBMS, and Operating Systems, and few questions were related to bit manipulations. Solving previous year GATE 1 mark Technical MCQ’s were enough to do well in MCQ’s section.
- You were given a list of strings which indicated at what time of the day an employee of a company checked in and checked out of the company on a particular day. Input was in the form of <Employee_Name>, <In_Time>, <Out_Time> (comma separated).
The time was always in HH:MM:SS 24-hours format. You were given a time of the day as query <Query_Time> Eg: 11:00:56. We have to determine how many numbers of employees were present inside the company at the point in time (Query_Time). In these examples, o/p should be 2 (Reason: Alice and Bob both are inside the office at time 11:00:56).
- You were given a 3×3 matrix consisting of numbers between 1- 9. Finally, you have to arrange the matrix in the following format
1 2 3 4 5 6 7 8 9
In the original matrix, only the following operations were allowed to convert the matrix.
Operation – You can exchange two adjacent numbers only if their sum is a prime number.
Find the minimum number of exchanges needed to reach the final(goal) matrix.
The trick to passing the round was to focus on solving the easy coding question first and then complete as many MCQs as possible. Then after completing the aforementioned parts move to the difficult question.
Note: For some weird unknown reason in this HackerRank Test option to code in C++ was unavailable. The only options were C, Java, and Python. Therefore, at least be comfortable with at least one other language other than your main CP language.
Since this happened during the Covid-19 pandemic all the following interview rounds were virtual interviews conducted on Cisco Teams. The coding question was solved by sharing the screen with the interviewer (Any editor can be used – Notepad/VS Code etc.)
Round 2 (Technical Interview):
This interview started with a brief introduction of myself and then quickly jumped to the discussion of the different projects that I had done. It was a 10-minute discussion. As my project was based on cloud computing following project-specific questions were asked:
- Which hypervisor did you use?
- How Does VirtualBox work? What is the kind of virtualization there?
- Why didn’t you use OVA’s? Why did you implement the infrastructure from scratch?
- What is an ISO file?
- Then the interviewer gave me an easy recursion/loop question. The question was to print a pattern based on an integer.
I/P: 4 O/P: 4321 - 4321 - 4321 - 4321
I/P: 3 O/P: 321 - 321 - 321
The interviewer checked for all the corner cases and made sure it worked for a set of inputs.
Then he switched over to theory questions:
- Different layers in the OSI model and explain what is the role of each layer. (You are expected to know about Presentation and Session layer as well)
- Describe what happens when you send a message to your friend in WhatsApp (Open Ended Question). You will have to ask the interviewer what does he want to answer. For example, given this question, one can answer regarding end-to-end encryption or System design aspects of Whatsapp or how the message is passed from one layer to another layer in the OSI model. In my case, the interviewer wanted to know about how the message is encapsulated in OSI layers starting from the application layer to physical layer in sender side and how it is read when reaches the receiver.
- Now he asked me “What do you know about different kinds of memory in OS?”. (Open Ended Question). Here again, I had to make sure I answer what he is really expecting to hear. In this case, he wanted to know about memory management in OS.
- Then he asked me about different IPC processes. Asked questions about shared memory, message passing, and pipes. How to message passing and pipes are different ?.
- Then he asked a few questions on Deadlock and what are the conditions for a deadlock to occur.
- Then he told me that I have 10 minutes to code a Stack. He did not tell me anything beyond this. You will have to ask questions like what methods do he need. Should it be implemented using Linked List or Arrays etc?
I initially coded using an array with the top(), push() and pop() functions. He verified that it is working by checking on a sample test case he already has.
- Then a follow-up question was asked based on the previous question. In the previous question, I had made the size of array static but the interviewer was expecting to know how can we design a stack without putting a max size constraint. He was expecting the implementation of dynamic arrays. I explained to him the approach and he was satisfied with it.
This round lasted for around 1 hour 10 minutes.
Tips: Be very clear with the basics. That is the most important. If you make mistakes in a complex question then it’s fine but if you miss the basics then it does not look good.
Round 3 (Technical Interview): This round was the most chilled out round and one of the best interviews I have ever given. The interviewer was quite a charming guy and was very relaxed/chilled. First, he introduced himself and explained his work at Cisco. Then he asked me about my interest areas and projects which I had done. Interestingly his interest areas and mine matched (We both shared common interests in Cloud Computing and Distributed Systems). Then followed multiple discussions on varied topics mentioned below. It was not a question and answer session as most typical interviews are supposed to be. It was more of a chat session between two people sharing the same interest areas as we both were discussing our own views/opinions on how cloud technology has helped our lives become better.
As my projects in the resume were based on Cloud Computing and Distributed Systems and I was getting interviewed for the Cloud Application Development role it was expected of me to know these topics. This round is very specific to the role you are interviewing for. We had a deep discussion on the following topics:
- Microservices vs Monolithic architectures
- Consistent Hashing and Load Balancing
- Read-Write Quorum
- Infrastructure as a Code (Ansible and Terraform)
- REST API’s
- How did you set up the infrastructure in your cloud project?
- Authentication vs Authorization
- Two factor Authentication
- Salting of passwords
- CAP theorem
- MapReduce vs Spark
Then he asked me why do I want to join the industry and why did I choose Cisco?
This round lasted for around 40 – 45 minutes.
Tips: Be enthusiastic about your area of interest and always have hands-on experience with the concepts in your area of interest. This helps a lot during the interview. Sometimes some interviewers do expect a few implementation details. Be thorough with the resume with each and every tech word/ buzz word used in the resume should be revised. The interviewer can ask any point mentioned in the resume.
Round 4 (HR Interview): This was a very short round. HR asked me to introduce myself and asked me about my past work experiences. He asked me why I went for the Masters and the reason behind it. He briefed me about what does the team does and what is my role if I join the team. Then he asked me why I was interested in Cloud technology. Then I asked him about how a routine workday feels like at Cisco? After this, the HR round was completed. This round lasted for 10 – 15 minutes.
Tips: Be truthful and clear while conveying your ideas.