How I Landed an Internship in the United States (Facebook internship) Part 2: Interview Preparation
Introduction:
In this article, I will share my experience of searching for an internship, my background, the timeline of my journey, some practical strategies and observations, as well as interview preparation tips.
If you haven’t read the previous article, you can start from there:
The Internship Interview Process in the United States:
Resume Screening:
I found the resume screening process to be somewhat mystical and dependent on luck. With thousands of resumes to review, it’s unlikely that HR would thoroughly examine each one. Therefore, when applying, it’s advisable to apply early and to multiple opportunities.
“Remember to check the job description before applying to see if you meet the requirements. Some positions may state a minimum of 3 years of experience, but I still managed to secure an interview, so even if you’re slightly underqualified, it’s still worth applying.”
Additionally, I noticed that major companies in the United States don’t exclusively target graduates from renowned universities. During my internship, I met interns from various schools. Instead, work and internship experience seemed to hold more significance.
Online Assessment (OA):
Typically, this involves a 45-minute to 1-hour online test. Generally, it includes 1 to 3 coding questions. The questions I encountered were custom-designed by the companies. However, the core concepts were similar to those on LeetCode, with most questions falling into the medium difficulty range. The goal is to solve the questions and pass all the test cases, sometimes even with hidden cases.
Interviews:
I heard that in the past, there were in-person interviews. However, all the interviews I faced were conducted online.
Internship interviews usually consist of 1 to 2 rounds, which are comparatively simpler than full-time interviews.
Phone Interview:
It can involve coding on a shared screen or answering questions over the phone. It’s usually 45 minutes.
Virtual Interview:
This is an online video interview. It can be coding questions.
Preparing for Coding Interviews:
I highly recommend conducting mock interviews as part of your interview preparation. I am grateful to a senior student from National Taiwan University and a senior student from Cornell University who helped me with mock interviews.
Mock interviews for coding are crucial! Practice solving problems while explaining your thought process in English. Although I was able to code at a decent speed (with a high OA pass rate), during interviews, explaining what I was doing took more time. Also, just because I understood something didn’t mean others would.
When solving the OA, I usually spent a considerable amount of time planning before starting to code. During interviews, it’s best to avoid leaving the interviewer waiting. Discuss your approach with them before writing any code. Don’t stay silent or write code without any explanation. While practicing coding problems, I made an effort to make my solutions bug-free. Writing bug-free code during interviews is essential.
Tag questions
After receiving interview opportunities from companies, I focused on solving problems that were specifically related to those companies. When I received an offer, I had solved around 150 LeetCode questions, with about 80 of them solved multiple times. However, due to the relatively low number of questions I solved, I was rejected in the first round of the software engineering (SWE) intern interview.
For the first round of the Production Engineer (PE) interview, it was also a coding interview. I felt it was slightly easier than the SWE coding interview.
Preparing for System Interviews:
As I interviewed for a production engineer intern position, the email mentioned that the second round would involve system-related topics. However, I had not taken any Operating System classes.
To prepare for the system interviews, I had to rely on my knowledge of computer organization, which I had previously studied. Fortunately, I had paid close attention during those classes and reviewed the materials diligently before the exams. This allowed me to quickly refresh my memory when it came to preparing for the interviews (hence, the importance of being attentive in class!).
I revisited my class notes, covering topics such as memory, cache, and more. Additionally, since I had experience using Linux during my undergrad, I was familiar with various commands. I also refreshed my knowledge of Linux commands before the interviews. In summary, I dedicated significant time to studying and reviewing various subjects before the interviews.
During the system interviews, the interviewer asked a series of questions, and it felt like the topics were somewhat random. The questions gradually became more challenging as the interview progressed, resembling an oral examination version of the final exam for that course. The interviewer’s inquiries delved deeper depending on my responses, testing the depth of my understanding. If I hadn’t revised the topics covered in previous courses, I might not have been able to answer some of the questions. Looking back, it was undoubtedly a nerve-wracking experience.
Conclusion:
My journey of seeking an internship taught me valuable lessons about the job market and preparation. I learned the importance of thoroughly reviewing job descriptions before applying and not letting a few discrepancies discourage me from pursuing an opportunity.
Preparing for interviews proved to be a critical aspect of the internship application process. Mock interviews and practicing coding skills were instrumental in boosting my confidence and improving my performance. I also recognized the significance of being able to effectively communicate my thoughts and explanations during coding interviews.
Moreover, the experience of preparing for system interviews highlighted the importance of building a strong foundation of knowledge. Although I hadn’t taken a specific operating system course, my understanding of computer organization and familiarity with Linux commands helped me navigate the challenges presented during the interviews. This emphasized the value of being proactive in learning and continuously expanding one’s knowledge base.
Throughout my journey, I realized that while academic achievements are important, job hunting extends beyond grades. It involves factors such as economic conditions and luck. I came to appreciate the interplay between personal efforts and external circumstances, and the need to remain resilient and determined in the face of challenges.
Ultimately, my internship search provided me with valuable insights and shaped my perspective on career development. It taught me to be adaptable, persistent, and open to opportunities that may come my way.