The production Engineer Intern Role consist of
**Quiz/OA Round -------------> Coding Round (Screening) ------------> Linux and Operating Systems Onsite (Final Round) -----------> Offer/ Rejection
**1. The OA was about operating system concepts and linux. They were all multiple choice questions and select the choices that seem correct type questions
2. For my coding round I got asked valid parenthesis (lc easy) and a file handling problem which I will post now
https://leetcode.com/problems/valid-parentheses/
"""
I want to monitor a value produced from a streaming app; say one of the swap columns from vmstat. If it goes over a certain value for a certain amount of time I'd like a message printed out.
The command should take standard input and be invoked as:
yourscript <max_count> <max_value>
Example: vmstat 1 | yourscript 7 5 200
That means that when column 7 has gone over 200 for more than 5 times in a row, print something out. My plan is to leave this running over night and check back on it in the morning.
=== Sample input ===
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----
5 4 0 554724 1698688 32809648 200 0 0 1439 3177 10347 30 1 51 18 0
5 4 0 556532 1698688 32809712 200 0 0 1304 3168 6853 31 1 58 11 0
5 4 0 517944 1698696 32809792 0 0 0 1360 3345 10589 31 1 53 15 0
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----
6 4 0 477476 1698748 32836968 300 0 4 1459 3819 20150 39 2 42 17 0
""""""
I want to monitor a value produced from a streaming app; say one of the swap columns from vmstat. If it goes over a certain value for a certain amount of time I'd like a message printed out.
The command should take standard input and be invoked as:
yourscript <max_count> <max_value>
Example: vmstat 1 | yourscript 7 5 200
That means that when column 7 has gone over 200 for more than 5 times in a row, print something out. My plan is to leave this running over night and check back on it in the morning.
=== Sample input ===
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----
5 4 0 554724 1698688 32809648 200 0 0 1439 3177 10347 30 1 51 18 0
5 4 0 556532 1698688 32809712 200 0 0 1304 3168 6853 31 1 58 11 0
5 4 0 517944 1698696 32809792 0 0 0 1360 3345 10589 31 1 53 15 0
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----
6 4 0 477476 1698748 32836968 300 0 4 1459 3819 20150 39 2 42 17 0
"""
Note: For the coding round there was an option to do a mock interview (go to preperation hub). This helped a lot because they gave feedback which was useful for the actual interview

3. The OS and Linux System Round for me at least was all conceptual questions. This is what the interviewer asked
Explain Virtual Memory
Explain how the process allocate memory
Explain the types of context switching and what are system calls
Explain what a process is and the process lifecycle (including Zombie and Orphan processes)
Explain performance tools like vmstat, Iostat, Strace, Pidstat, etc
Paging, demand paging, swapping, etc related to performance
Explain the kernel, memory management techiques (COW) and how filesystems allocate memory
I went beyond and explain what that deadlocks were and threads and semaphores and monitors
these are the resources that helped me throughout the process:
https://igotanoffer.com/blogs/tech/facebook-production-engineer-interview#coding
https://igotanoffer.com/blogs/tech/facebook-production-engineer-interview#coding
note: I didn'g get asked any networking questionsthroughout the interview process except the OA
Last words: I grinded for the last round for 4-6 hours a day for a week straight. My advice is to read the textbook which I linked (does not explain context switching and the process clearly) and watch hella youtube videos. I used chatgpt to solidfy my understanding of concepts. Good luck and happy learning :)