Facebook | Data Engineer | Menlo Park | July 2021
Anonymous User
1273

Just cleared the DE phone interview, SQL 5/5, Python 5/5. Not a piece of cake given the time constrains, edge cases, and sometimes unclear questions.

There is a plenty of useful tips or even specific examples in other comments here or on Glassdoor. Let me mention three things people usually don't mention:

Tip #1: Practicing LeetCode is not enough. Practice LeetCode with timer while talking. Especially if you are not a native English speaker. Practice talking about how you understand the problem, asking clarifying questions, talking about you are going to attack the problem, talk about what you are actually doing, practice talking about debugging. Speaking of timer, aim at becoming comfortable with between 3 to 4 minutes for Easy questions - you need a buffer to account for the interview stress.

Practicing that with LeetCode Easy problem will be much more useful for the DE phone interview than chasing Medium and Hard problems without talking or without time limit (but do a few of them too). Practice talking while solving the same easy problems multiple times. Don't rely on problems on LeetCode or HackerRank - there is a lot of real world FB interview examples in discussions here and on Glassdoor. For these problems, use codepad.io to become familiar with the environment, and keep practicing coding while talking with timer.

Tip #2: The interviewer let me choose whether I want to start with SQL and Python. It makes sense to start with the simpler one to boost your confidence before the second part and maybe earn some extra time. Think twice about which one is the simpler for you. I've been writing SQL for 15 years while I have written only a few Python scripts in my life, so I started with SQL. Not a good idea, the Python tasks are super simple and very easy to debug with print() while the SQL problems seemed to be a bit more complex to understand, not speaking of the fact that typing the same joins all over again is frustrating. That brings us to the next tip.

Tip #3: The SQL part includes increasingly complex problems using the same schema. The screen will reset after each problem. You will become more and more frustrated as you are typing the same joins over and over again while the clock is ticking.

It would help to copy your solutions to a temporary text editor so you can reuse parts of previous solution to save time. For example, if problem #3 requires joining four tables and the problem #5 just three of them, it's faster to create a skeleton of your answer by editing your solution to a previous similar problem. I admit I'm not sure if this is allowed, I got this idea when I started working on my last SQL problem.

Comments (4)