03/12/2024

Unlock Your Career Potential

Where Passion Meets Profession

A Data Engineer Gives Tips on Meta’s Coding Test

A Data Engineer Gives Tips on Meta’s Coding Test
  • After his technical interview, William Orgertrice was rejected from a data engineering role at Meta.
  • He prepared with practice questions and mock interviews but wished he had studied differently.
  • He said the Meta portal is useful but the practice questions are much easier than the real ones.

This as-told-to essay is based on a conversation with William Orgertrice, a 29-year-old data engineer in Atlanta, about his Meta interview. It’s been edited for length and clarity.

I received an email from one of Meta’s recruiters in March asking me to apply for a data engineering position. The recruiter said they’d found my LinkedIn profile and thought I had the experience they were looking for.

The timing couldn’t have been more perfect. I’d just received the news I was going to be laid off from my data engineering job at a staffing agency, with an official end date of April 1, so I had newly re-entered the job hunt.

I successfully made it through Meta’s preliminary phone screening and spent the next two weeks preparing for the next round, a technical interview, with everything from mock interviews to practice questions. I felt confident going into my interview. But I still got rejected.

I’m proud of myself for making it to the second round, but if I could do it over again, I would take a different approach.

I was notified that I passed the first round of interviews at Meta right away

During the preliminary phone screening, the recruiter asked about my work experience, the technologies I was familiar with, and if I’d be willing to relocate to work out of one of Meta’s main headquarters. I was living in Atlanta but said I’d be willing to move to the Menlo Park office for the opportunity.

I’ve been in data engineering for five years and primarily used Python, Java, and SQL.

At the end of the call, the recruiter told me I’d be moving on to the next round, a one-hour technical interview with a data engineer from the team.

I spent two weeks preparing for my coding interview

I scheduled my interview two weeks out because I wanted to give myself enough time to study while moving quickly, given my impending layoff; however, I had the autonomy to choose how far out I wanted my interview to be.

I created an official Meta career profile on metacareer.com, which gave me access to a portal with interview prep resources, such as a breakdown of the Meta interview process and LeetCode-type practice questions for different programming languages.

Each applicant can choose a language preference, and I chose Python because it’s the language I’ve primarily worked with in my career. I also watched YouTube videos with coding question breakdowns and studied practice questions on Blind 75, to familiarize myself with the most frequently asked LeetCode questions.

I studied anywhere from 30 minutes to two hours each day leading up to the interview.

The mock interviews were the most helpful preparation tool for Meta’s data engineering job

To supplement my studies, I did two mock interviews, including a coding test from an Amazon engineer I reached out to via LinkedIn and a behavioral interview from the president of Technologists of Color, an organization I’ve been a part of for four years.

I got positive feedback from both interviewers, plus some helpful feedback. Most notably, they suggested the following:

  • Quantify my impact at previous companies.
  • Personalize statements by using “I” instead of “we.”
  • Think out loud during the coding test.

These mock interviews were the most helpful form of preparation because I got to simulate a real interview and receive direct, personalized feedback.

I felt confident going into my interview but ran out of time on both sets of questions

When I joined my virtual interview, I was met by a data engineer who was casual and straight to the point.

The interview was scheduled for an hour. From Meta’s portal, I knew to expect a five-minute introduction followed by 25 minutes to complete three to five coding questions and 25 minutes to complete three to five SQL questions.

The introduction felt super quick and was more of a brief background on who I am before moving into the Python questions. The interviewer put up one question at a time and remained present to answer any clarifying questions.

I shared my solutions on my computer using CoderPad, which is a code-sharing interface. I was also given an editor, IntelliSense, to troubleshoot my code as I worked. I didn’t know I’d be able to use IntelliSense going in, but it ended up being a helpful resource. I successfully found solutions for two problems and partially worked through the third before being cut for time. The third question was by far the longest and most complicated.

Then, I moved on to the SQL questions, which I found to be simple yet time-consuming. Again, I ran out of time on the third question.

I wrapped up the last five minutes of the interview by asking the interviewer questions

I asked about the team size, what projects they were working on, and how I could provide value to the team. The interviewer answered my questions and wrapped up the call by telling me I’d hear back about the next steps via email. I felt good about the interview and was honestly just proud of myself for doing it.

Two weeks later, I received an email from my recruiter’s colleague saying they decided to go forward with another candidate. In the email, the recruiter explained that, due to compliance reasons, they could not give feedback as to why I wasn’t chosen.

There could be countless reasons I got rejected, but the market is competitive, and my rejection simply means someone was a better fit. If I were to go through the Meta interview process again, I would’ve done several things differently to perform better.

The questions in the practice portal didn’t reflect the actual interview. Had I known, I would’ve prepared differently.

First, I would’ve gone through the Meta portal more thoroughly. I made the mistake of skipping right to the coding practice questions, but I missed out on super helpful resources like how to use IntelliSense during the test. I figured it out in real time, but it would’ve helped to familiarize myself with it first.

The portal’s practice questions were useful but significantly easier than the actual interview questions. I wish I’d known the questions in the portal weren’t a reflection of the actual interview.

For example, within the Meta Career Profile, you might be asked to solve a coding problem that requires looping through a list of items to find the answer. However, in the actual interview, you could be presented with a real-life scenario, such as navigating through computer files and using Python to determine the contents of each file.

If I were to prepare for another Meta interview, I’d rely more heavily on mock interviews because they’re a great way to get personalized feedback and more accurate practice questions.

I wish I had talked through my thought process, but I’m still proud of myself

I realize now that verbalizing my process and approach could’ve made up for not answering all of the questions. Being able to show your process and describe “why” you made each choice is likely more indicative of a skilled programmer than simply being able to find a solution.

Despite being rejected from Meta, I’m proud of myself for making it to the coding test interview. If I could do it again, I’d study harder, do more mock interviews, and focus more on showing the interviewer my thought process.

If you’ve gone through the interview process for a Big Tech or FAANG company and would like to share your story, email Tess Martinelli at [email protected].