How I cracked the Facebook production engineering internship in 2nd Year.
Hey There,
I recently posted on LinkedIn about my Internship offer from Facebook, and I received an overwhelming number of messages asking how I got this offer, I couldn’t answer all of them. So, I decided to write a blog about it, and here it is.
Background
I applied on the Facebook Career page around the 15th of September, Being a Sophomore, I wasn’t expecting a call or interview, but forward to November 15th, I got an email from Facebook, to complete the first round of internship which is an MCQ assignment based on Linux.
Coding Round
After completing the questionnaire, I started searching Glassdoor, GFG, Youtube for past interview experiences. I knew that the coding round would not be as difficult as compared to the SDE roles. As I was doing Competitive programming for around 1.5 years, I was pretty confident with the coding round. I got the email stating that they will be moving forward with my application and they scheduled my coding interview for the 30th of November. I had to solve 2 questions in 45 mins, One was based on file handling and the second one was a standard DSA question. My interview went better than I expected, I was done with the questions in the first 30-35 mins of the interview and then I just asked some questions from the interviewer about life at Facebook.
P.S: Language is not a barrier in the Interview, you can use any language you want. ( I used C++ ).
Systems Round
I was pretty confident about my coding interview, So I started preparing for the Systems round the next day. I had a rough idea about the file system hierarchy, Processes, some basic troubleshooting tools, etc as I was following “Essentials of Linux System Administration” from the Linux Foundation. So, I started reading “Operating Systems: Three Easy Pieces”, I only left the Concurrency part for this book. After completing this in around 2–3 days, I started reading “Operating System Concepts by Abraham Silberschatz”, I read the first four parts of this book covering Process management, Memory management, and Storage management. After this, I read “ Linux Kernel Development by Robert Love ”. After covering all this I was pretty confident with the OS part, then I started reading about different troubleshooting tools like vmstat, htop, etc. I practiced some basic commands and read some basic stuff about networking.
I got the mail on 7th December confirming I cleared the coding round and my systems round was scheduled on 15th December. This was pretty much everything I did in around 2 weeks before my interview.
Some Resources for Systems round :
- https://www.amazon.in/Operating-System-Concepts-Abraham-Silberschatz/dp/1118129385
- https://www.amazon.in/Operating-Systems-Three-Easy-Pieces-ebook/dp/B00TPZ17O4
- https://www.amazon.in/Linux-Kernel-Development-Developers-Library/dp/0672329468
Resources provided by Facebook :
The UNIX Programming Environment:
- “Linux and the UNIX Philosophy”. http://www.amazon.com/Linux-Unix-Philosophy-Mike-Gancarz/dp/1555582737.
- “The UNIX Programming Environment,” by Kernighan and Pike — http://www.amazon.com/Unix-Programming-Environment-Prentice-Hall-Software/dp/013937681X.
- “Advanced Programming in the UNIX Environment”
- The Art of Unix Programming, by Eric S. Raymond. Available for free online http://www.faqs.org/docs/artu/, also as a book on Amazon.
Epilogue
My systems round went well, I was Bewildered after the interview, I was just happy that I read so many new things in very little time. Fast forward to 21st Dec, I got a mail from my recruiter, with my offer letter. 😊
Thanks a lot for reading.
Good Luck !
If you have any doubt contact me on Linkedin or Instagram.