Facebook | PE | Melno Park [Reject]
Anonymous User
3095

Position: Production Engineer (similar to SRE at Google)

Phone Screen - 2 rounds:

  1. Systems round - A remote server is not responding. Debug the issue. Needed to cover entire TCP/IP stack(fragmentation/icmp/etc) + machine metrics (vmstat,iostat,strace etc). Describe virtual memory in terms of demand paging.
  2. Coding round - Partition array similar to:
    https://leetcode.com/problems/partition-equal-subset-sum/
    Once I finished above, I was asked to create a program/script to check if 10k servers have desired number of instances running for process-M. I chose a straightforwad bash approach of ps -ef | grep -o "M" | wc -l on each of the remote machine.
    Interviewer seemed satisfied with my approach

Virtual Onsite: 5 rounds

  1. Systems round - 2 machines are connected, suddenly 1 machine is responding slowly. Why ?
    We had a good discussion in which we discussed everything under the sun, from NFS being bad to Networking being wrong to Kernel running out of resources(buffer-cache/inodes/virtual memory). Interviewer was interested to know the commands that i would use (strace, lsof, readlink, cat /proc/pid etc).
  2. Networking round - We started from Data link layer (ARP), then evolved the network to have more switches + routers+ DNS servers+ Application servers with load balancers + flow control/security of tcp ip.
  3. Manager discussion - Usual stuff around things that I am proud of/ projects that I regret etc
  4. System Architecture - Copy some resource from N sources to M sinks. where N could be < 10 and M could be 10k/Millions etc.
  5. Coding round - 2 easy 1 medium. Palindrome detection, reversing linked list, concurrent meeting intervals.
    I was able to code all 3 with all edge cases (+ some optimizations that were asked)

Keeping my fingers crossed.
Did fairly well in all except System Architecture -which i really sucked :(.

Comments (7)