I was contacted by a recruiter via LinkedIn in April, and one week later, we had a call. He asked me to talk about myself, and afterward, he explained the process in detail: two screen interviews of 45 minutes each (Networking and Coding), and if I passed those, four virtual/onsite interviews (Technical, Design, Behavioral, and Coding) of 45 minutes each.
During our call, he asked me some questions:
- What is a tuple?
- What is a list?
- What is a dictionary?
- Name three flags of the TCP header.
- Name three fields in the IP header.
- Provide a brief description of a ROADM.
After that, he sent me all the information for the next steps, and I scheduled my two screen interviews. I chose a date one month later to have time to study.
One month later, I completed the two screening interviews.
Networking:
He asked me:
- If we have two devices connected to a switch, and the switch is connected to a router, what protocols and configurations do we need to use to communicate between the devices, such as to connect to a web server? (IP, ARP, TCP)
- What is the difference between flow control and congestion control? Could I wait for 10 seconds, for example, in a TCP connection, or is there a limit? (TCP calculates a timeout based on RTT)
- Describe one routing protocol in depth. I chose BGP. I talked about attributes, iBGP, eBGP, the number of sessions in iBGP, split horizon, and the basics of route reflectors.
Coding:
Take the standard input of the vmstat command and print a message if the value of a specified column is higher than the given threshold a certain number of times.
vmstat | python my_script.py
vmstat | python my_script.py 200 7 2
- Discuss time complexity and space complexity.
I didn’t manage to finish this problem because I froze for a few minutes and forgot how to handle the standard input and arguments. However, when I told this to the interviewer, he helped me. My advice is to ask for help at the beginning of the interview if needed.
I thought I didn’t pass these steps because of my performance in the coding interview, but one week later, they informed me that I had passed, and I scheduled the last four interviews. I used the same strategy as with the screening, choosing the latest possible date, one month later.
One month later, I completed the four interviews.
Technical:
- If there are two interfaces connected between them in the core network and they are not working, how should I find the problem? (Connecting by console, ping, config, check interface, make a loop to verify the interface).
- Discuss BGP in detail, as in the first networking protocol. How to influence the input traffic? I mentioned prepending and MEC, but the interviewer wanted a response about influencing the traffic with announcements of different masks. For example, announcing a /23 to one ISP and a /24 to another.
Design:
The recruiter asked me to design an access network:
- How do you connect the devices?
- How do you connect the uplink?
- How do you connect the routers?
- How would you use VRRP?
Behavioral:
- What are your motivations?
- Why Meta?
- Describe a time when you received negative feedback and didn’t agree.
- Describe a time when you did something wrong.
- Describe a time when you gave negative feedback.
- Who is your mentor?
- Describe a project that you started on your own.
- Management question.
Coding:
- Write a function to check if a string is a palindrome.
- Read text from a file separated by % and print random messages when the function is executed.
- Discuss time complexity and space complexity of both tasks.