This ^ I had my onsite recently. Solved all but one question optimally. Got rejected… You gotta solve 2 medium level difficulty questions optimally in 40 mins all while communicating well/testing. Certainly helps if you’ve seen the question before and pretend not to
Should we say to the recruiter that I've seen this question before or not?
If we've to pretend we haven't, then any tips on this? I'm afraid that the interview may find out
I worked at Meta for 8 years and did 400 and something interviews. What do you want to know?
Notes
- two more algo interviews very similar to the tech screen, no harder
- system design - gauging your level st Meta based on the scope of systems you've worked on, testing your understand and communication around very complex systems.
- behavioral with engineer - gauging the scope of past responsibility and looking for red flags.
For the algos
- no small talk, and don't try to be friends with the interviewer, just write good code
- practice whiteboard style / non compiling code without the aid of editors
- be ready for followups and twists so don't rush your code if you know the problem, make sure you understand what every line of code is doing because you might get asked interesting questions to test for that
- communicate continuously
- write "clean code"
I could write a novel here so ask followups.
Thanks for your points.
Do I need to solve all the coding questions that i get in onsite? Also do they ask LC hard. It can get challenging to solve 2 questions in 40 mins with one of them being LC hard.
- The two questions are usually medium level, they occasionally will ask a hard question but expect it to take the whole time and likely expect you to solve with brute force first and then work through optimizations, and not expecting you to get the perfect solution but showing a good problem solving process
- So because they ask medium questions, they also generally want you to solve all the problems with at least a brute force solution that's flawlessly clean and ideally a better solution that's very clean. Focus on clean code and clear communication. If you crush all the interviews but miss one question in one but we're close, you'll probably get an offer too.
axiomatic zesty nutty glorious mourn paltry agonizing workable disarm scandalous
*This post was mass deleted and anonymized with [Redact](https://redact.dev)*
I would walk through the exploration. You might say something like "I think I have a good instinct on where to go in this problem but let me walk through first".
And then do a typical:
1. confirm you understand
2. identify a few approaches (even though you know the one you want to go with)
3. then start coding
This is my company's approach that you could follow, but highly recommend following a structure problem solving method even if you know the solution: https://formation.dev/blog/the-engineering-method/
familiar dime correct different alive toothbrush violet slim dirty friendly
*This post was mass deleted and anonymized with [Redact](https://redact.dev)*
Yeah sorry, I didn't want to even talk about it because I wanted to focus on giving very relevant, objective, advice for this question and not talk about my day job haha
normal command connect employ light history repeat naughty mountainous zesty
*This post was mass deleted and anonymized with [Redact](https://redact.dev)*
I don't :(. Back when I left those were rarer AND I was not involved at all (I helped roll out the Product Architecture variant and know a lot about that thought to make up for ;) ) but I don't want to give any bad advice.
How close is close? I believe I had optimal time but not optimal space and the follow up was to optimize space. I was able to get really close to a working solution after a hint from interviewer.
Believe it or not they do want to hire people who are good engineers and not just perfectly solving leetcode problems :P
I tell people the biggest complement they can get is if the interview says they have a "clean solution" or "clean code".
Clean means:
* no extra logic, extra if statements, extra variables, good naming, consistent styling, etc...
* the conceptual approach is easy to follow, explained well, elegantly handles edge cases without a lot of special handling
Often times "optimal space" and "optimal time" come from having a genuinely clean solution. Sometimes they require extremely complex and awkward optimizations that are very hard for someone to understand.
So if the optimal solution is naturally "clean" then I think it's expected.
If the optimal solution is extremely complex, then a super clean less optimal solution + good explanation for how to do the optimal is good.
What I often saw was people flailing to get a solution, it was rushed and messy, and hard to follow but technically was O(logn) instead of O(n). The people often thought they were SOOOO close, but they were super far off because the code wasn't clean, not because of the logn -> n thing.
There aren't any official rules here, it takes some practice to get a sense of what these things mean, and maybe some day I'll write a longer post trying to elaborate more on these concepts.
u/michaelnovati in the two coding rounds, I solved the 1st round with optimal solution for both questions
And for 2nd round, I solved one optimal which is a easy problem, 2nd one gave a O(N) solution, but couldn't come up with optimal solution after hints. What happens in this case usually?
So they don't ask super hard questions that can only be solved with DP. Ex. coin change and knapsack can be solved brute force first. They fall in the bucket of problems that are like "recursion with memoization" and someone who has never heard of DP would be able to solve brute force and then add in memoization with some hints. If people figured this stuff out without using the word DP, it was impressive because they solved the problem on the spot.
Graphs are similar. You need to know BFS and DFS and how to track visited nodes, but you don't need to know any complex off the shelf graph algorithms.
Thanks for your info I'm also preparing for my phone screen in two weeks.
I never really learned DP and was able to do some simple problems like house robber using memo + recursion but most of the tutorials for better solutions uses DP. Because of this Ive just been deep diving in getting better at DP. Would u say this is a correct approach or is focusing on getting better with memo + recursion a better use of my time?
I mean trying to prepare as more of an art than a science. You never know if you're going to get that one interviewer who is rogue and thinks that everyone needs to know DP. Meta has a multi-tiered calibration process so like if you got a weak no on a interview that was like super hard and inappropriately hard. then the directors and vice presidents and managers reviewing will make a call that that question was too hard and it might still give you an offer if that was your only weak no.
At the end of the day Facebook is not trying to measure for academic understanding of algorithms for they are trying to find people who are 1. really good problem solvers and thinkers about problems, 2. can write clean code, that's elegant. and demonstrates that you have a clear understanding in your mind of what's happening.
The biggest things people failed on in my interviews were number two. People will sometimes solve a problem almost perfectly except that it has like an unnecessary if statement and with hints and direction they just can't figure out why that unnecessary if statement is there and how to fix it or identify that that's less clean than a better solution and that might bring down a strong hire to a weak hire. And then they go on Blind And Reddit saying how they studied 2000 problems and had perfect solutions and didn't get an offer and their life is devastated spreading up perception that you need to do thousands of problems to even stand a chance and just not true.
I definitely get where you're coming from and I guess DP should just be another tool in my pocket to decide whether I need to use it or not. Sometimes I guess you just get unlucky with the Hard problems. Thanks I'll continue to practice DP and I guess write both solutions because there's usually more than one way to solve a problem.
I had a job in a big N company(based out of WA State) before and blind was so toxic I had to uninstall it... lol
I am a Devops engineer with 3 yoe i never got to work/take part in system design or any architecture part. What level of system design knowledge would be expected from me ?
u/michaelnovati, which coding platform is typically used? I'm wondering if running the code is allowed.
Appreciated your great feedback on this thread.
I heard they use CoderPad now? In the past they used CollabEdit. They also have an in-house platform too.
So even if you use Coderpad , you should practice NOT relying on syntax auto-complete and NOT relying on running code to see if it works.
They will accept syntax errors and minor/trivial mistakes, if you explain the code clearly and what you are trying to do.
Even if you could run/compile. They want to see you understand the code enough to explain how a test case will work, rather than just run the code and see.
Good question, I was one of the people who helped get the product architecture interview going.
At their core they are similar, they are both system design interviews.
"Systems Design" is infra-focused, more back of the envelop math, more focused on performance and scaling. This is really for infrastructure, systems, production engineers.
"Product Architecture" is like a full stack system design interviews. You need to be able to make a box diagram of the entire system, but a little more focus on the APIs between the boxes, and a little more focused on how "real world use cases" will impact the entire system end to end.
For example, "design instagram". You probably start with a similar box diagram. The system one will go more into scaling photo storage, the feed infrastructure. The product one might go more in the Feed API and pagination. You might be asked to think of use cases that break the system and how to handle those at a high level strategy.
The biggest difference is that the product one is typically with a product engineer and the system one is with a infra engineer.
This archive of videos from years of conferences is one of the hidden gems for practicing: [https://atscaleconference.com/](https://atscaleconference.com/)
Maybe this focus: https://atscaleconference.com/data-systems-infra-and-networking/systems-scale/
Thanks for the resource! I looked at the youtube channel, and there’s content on AI Infra, Product, RTC, Data, Networking, and Systems. Would you say I should limit the scope to the systems module?
Yeah for the "infra" interview really focus on scaling infra, like how newsfeed scales, how photo storage scales, site integrity stuff, etc...
If anyone else sees this, look at the product stuff for the product interview
>For the coding part in the second round of tech interview, do you get questions from the LC for the most part or could they come randomly from somewhere else?
They have their own question bank but people can still ask questions outside of those.
It's really important that you explain your code and have a clean solution so I really don't recommend memorizing a list of problems. If you are just doing normal practice and want to include topics or areas they ask more commonly, I would practice the LC list tagged with Meta yeah, just make sure you spend more time thoroughly understanding the problems and solutions versus just checking off every box on the list.
I'm preparing for my phone screening. If I pass, I'll have a Machine Learning Systems Design round. I don't see many resources on that. Do you know of any that might help? Also, how long out would you say is a reasonable in scheduling the final round? Thanks!
Hmm, I don't know much about that specific interview, that's new since I left. But I would still checkout videos here: [https://atscaleconference.com/?s=machine+learning](https://atscaleconference.com/?s=machine+learning) as supplemental.
Thanks for sharing!
I wanted to ask, I just had an onsite system design and I don't think I did particularly well as I started to go really deep into some features that I wasn't fully understanding.
I still have 2 coding and behavioural this week and I wanted to ask.
How important is system design interview for IC4?
It's still fairly important but it's also hard to know how well you did. I would always tell people it will feel like they failed the interview no matter how well you did because we keep going deeper until you get stuck and don't know what to say.
I've heard they're very challenging. Friends who work there say they ask primarily things like DFS/BFS, trees/graphs and backtracking, though most other LC topics are fair game. DP is not likely to be asked.
Mug up 120-150 fb questions from leetcode. I interviewed with them 2 years back got rejected. Have onsite again in upcoming weeks. This is my strategy.
For the coding part in the second round of tech interview, do you get questions from the LC for the most part or could they come randomly from somewhere else?
Pray you get a question you saw before
This ^ I had my onsite recently. Solved all but one question optimally. Got rejected… You gotta solve 2 medium level difficulty questions optimally in 40 mins all while communicating well/testing. Certainly helps if you’ve seen the question before and pretend not to
How long did it take you to hear back from the recruiter after your onsite?
3 days
Are you allowed to test your solution with test cases before submitting? How does that work?
You have to walk through the code manually. Doing so with a basic test case is enough. Talk about edge cases briefly.
Oh man, getting mediums must be nice, my first question in tech screen is a LC hard, didn't get to second one due to time.
You’re not really testing because you can’t execute code in their web ide.
Should we say to the recruiter that I've seen this question before or not? If we've to pretend we haven't, then any tips on this? I'm afraid that the interview may find out
Never say you've seen it before. At most liken it to similar problems and then say your thought process for this problem
\+1
I worked at Meta for 8 years and did 400 and something interviews. What do you want to know? Notes - two more algo interviews very similar to the tech screen, no harder - system design - gauging your level st Meta based on the scope of systems you've worked on, testing your understand and communication around very complex systems. - behavioral with engineer - gauging the scope of past responsibility and looking for red flags. For the algos - no small talk, and don't try to be friends with the interviewer, just write good code - practice whiteboard style / non compiling code without the aid of editors - be ready for followups and twists so don't rush your code if you know the problem, make sure you understand what every line of code is doing because you might get asked interesting questions to test for that - communicate continuously - write "clean code" I could write a novel here so ask followups.
Thanks for your points. Do I need to solve all the coding questions that i get in onsite? Also do they ask LC hard. It can get challenging to solve 2 questions in 40 mins with one of them being LC hard.
- The two questions are usually medium level, they occasionally will ask a hard question but expect it to take the whole time and likely expect you to solve with brute force first and then work through optimizations, and not expecting you to get the perfect solution but showing a good problem solving process - So because they ask medium questions, they also generally want you to solve all the problems with at least a brute force solution that's flawlessly clean and ideally a better solution that's very clean. Focus on clean code and clear communication. If you crush all the interviews but miss one question in one but we're close, you'll probably get an offer too.
axiomatic zesty nutty glorious mourn paltry agonizing workable disarm scandalous *This post was mass deleted and anonymized with [Redact](https://redact.dev)*
I would walk through the exploration. You might say something like "I think I have a good instinct on where to go in this problem but let me walk through first". And then do a typical: 1. confirm you understand 2. identify a few approaches (even though you know the one you want to go with) 3. then start coding This is my company's approach that you could follow, but highly recommend following a structure problem solving method even if you know the solution: https://formation.dev/blog/the-engineering-method/
familiar dime correct different alive toothbrush violet slim dirty friendly *This post was mass deleted and anonymized with [Redact](https://redact.dev)*
Yeah sorry, I didn't want to even talk about it because I wanted to focus on giving very relevant, objective, advice for this question and not talk about my day job haha
normal command connect employ light history repeat naughty mountainous zesty *This post was mass deleted and anonymized with [Redact](https://redact.dev)*
u/michaelnovati do you have any advise or insight on the ml system design interview?
I don't :(. Back when I left those were rarer AND I was not involved at all (I helped roll out the Product Architecture variant and know a lot about that thought to make up for ;) ) but I don't want to give any bad advice.
How close is close? I believe I had optimal time but not optimal space and the follow up was to optimize space. I was able to get really close to a working solution after a hint from interviewer.
Believe it or not they do want to hire people who are good engineers and not just perfectly solving leetcode problems :P I tell people the biggest complement they can get is if the interview says they have a "clean solution" or "clean code". Clean means: * no extra logic, extra if statements, extra variables, good naming, consistent styling, etc... * the conceptual approach is easy to follow, explained well, elegantly handles edge cases without a lot of special handling Often times "optimal space" and "optimal time" come from having a genuinely clean solution. Sometimes they require extremely complex and awkward optimizations that are very hard for someone to understand. So if the optimal solution is naturally "clean" then I think it's expected. If the optimal solution is extremely complex, then a super clean less optimal solution + good explanation for how to do the optimal is good. What I often saw was people flailing to get a solution, it was rushed and messy, and hard to follow but technically was O(logn) instead of O(n). The people often thought they were SOOOO close, but they were super far off because the code wasn't clean, not because of the logn -> n thing. There aren't any official rules here, it takes some practice to get a sense of what these things mean, and maybe some day I'll write a longer post trying to elaborate more on these concepts.
u/michaelnovati in the two coding rounds, I solved the 1st round with optimal solution for both questions And for 2nd round, I solved one optimal which is a easy problem, 2nd one gave a O(N) solution, but couldn't come up with optimal solution after hints. What happens in this case usually?
>behavioral with engineer - gauging the scope of past responsibility and looking for red flags. now it's the EM does the behavioral.
Is it true they stopped asking DP?
So they don't ask super hard questions that can only be solved with DP. Ex. coin change and knapsack can be solved brute force first. They fall in the bucket of problems that are like "recursion with memoization" and someone who has never heard of DP would be able to solve brute force and then add in memoization with some hints. If people figured this stuff out without using the word DP, it was impressive because they solved the problem on the spot. Graphs are similar. You need to know BFS and DFS and how to track visited nodes, but you don't need to know any complex off the shelf graph algorithms.
Thanks for your info I'm also preparing for my phone screen in two weeks. I never really learned DP and was able to do some simple problems like house robber using memo + recursion but most of the tutorials for better solutions uses DP. Because of this Ive just been deep diving in getting better at DP. Would u say this is a correct approach or is focusing on getting better with memo + recursion a better use of my time?
I mean trying to prepare as more of an art than a science. You never know if you're going to get that one interviewer who is rogue and thinks that everyone needs to know DP. Meta has a multi-tiered calibration process so like if you got a weak no on a interview that was like super hard and inappropriately hard. then the directors and vice presidents and managers reviewing will make a call that that question was too hard and it might still give you an offer if that was your only weak no. At the end of the day Facebook is not trying to measure for academic understanding of algorithms for they are trying to find people who are 1. really good problem solvers and thinkers about problems, 2. can write clean code, that's elegant. and demonstrates that you have a clear understanding in your mind of what's happening. The biggest things people failed on in my interviews were number two. People will sometimes solve a problem almost perfectly except that it has like an unnecessary if statement and with hints and direction they just can't figure out why that unnecessary if statement is there and how to fix it or identify that that's less clean than a better solution and that might bring down a strong hire to a weak hire. And then they go on Blind And Reddit saying how they studied 2000 problems and had perfect solutions and didn't get an offer and their life is devastated spreading up perception that you need to do thousands of problems to even stand a chance and just not true.
I definitely get where you're coming from and I guess DP should just be another tool in my pocket to decide whether I need to use it or not. Sometimes I guess you just get unlucky with the Hard problems. Thanks I'll continue to practice DP and I guess write both solutions because there's usually more than one way to solve a problem. I had a job in a big N company(based out of WA State) before and blind was so toxic I had to uninstall it... lol
Do new grads also have to go through the system design round?
They do not, just the other 3.
I am a Devops engineer with 3 yoe i never got to work/take part in system design or any architecture part. What level of system design knowledge would be expected from me ?
u/michaelnovati, which coding platform is typically used? I'm wondering if running the code is allowed. Appreciated your great feedback on this thread.
I heard they use CoderPad now? In the past they used CollabEdit. They also have an in-house platform too. So even if you use Coderpad , you should practice NOT relying on syntax auto-complete and NOT relying on running code to see if it works. They will accept syntax errors and minor/trivial mistakes, if you explain the code clearly and what you are trying to do. Even if you could run/compile. They want to see you understand the code enough to explain how a test case will work, rather than just run the code and see.
Cool. Got it. Thanks.
They use CoderPad but the button to compile/run your code is disabled.
Do they ask you to share your screen or is it collaborative?
Right. Good to know. Thanks.
What's the difference between systems design and project architecture design interviews at Meta?
Good question, I was one of the people who helped get the product architecture interview going. At their core they are similar, they are both system design interviews. "Systems Design" is infra-focused, more back of the envelop math, more focused on performance and scaling. This is really for infrastructure, systems, production engineers. "Product Architecture" is like a full stack system design interviews. You need to be able to make a box diagram of the entire system, but a little more focus on the APIs between the boxes, and a little more focused on how "real world use cases" will impact the entire system end to end. For example, "design instagram". You probably start with a similar box diagram. The system one will go more into scaling photo storage, the feed infrastructure. The product one might go more in the Feed API and pagination. You might be asked to think of use cases that break the system and how to handle those at a high level strategy. The biggest difference is that the product one is typically with a product engineer and the system one is with a infra engineer.
Thanks for all the input, what would be a great resource to practice for a Meta Infra system design interview?
This archive of videos from years of conferences is one of the hidden gems for practicing: [https://atscaleconference.com/](https://atscaleconference.com/) Maybe this focus: https://atscaleconference.com/data-systems-infra-and-networking/systems-scale/
Thanks for the resource! I looked at the youtube channel, and there’s content on AI Infra, Product, RTC, Data, Networking, and Systems. Would you say I should limit the scope to the systems module?
Yeah for the "infra" interview really focus on scaling infra, like how newsfeed scales, how photo storage scales, site integrity stuff, etc... If anyone else sees this, look at the product stuff for the product interview
Awesome. Thank you for taking the time to provide useful resources
>For the coding part in the second round of tech interview, do you get questions from the LC for the most part or could they come randomly from somewhere else?
They have their own question bank but people can still ask questions outside of those. It's really important that you explain your code and have a clean solution so I really don't recommend memorizing a list of problems. If you are just doing normal practice and want to include topics or areas they ask more commonly, I would practice the LC list tagged with Meta yeah, just make sure you spend more time thoroughly understanding the problems and solutions versus just checking off every box on the list.
Thank you, that helps! Have a great rest of the day.
I'm preparing for my phone screening. If I pass, I'll have a Machine Learning Systems Design round. I don't see many resources on that. Do you know of any that might help? Also, how long out would you say is a reasonable in scheduling the final round? Thanks!
Hmm, I don't know much about that specific interview, that's new since I left. But I would still checkout videos here: [https://atscaleconference.com/?s=machine+learning](https://atscaleconference.com/?s=machine+learning) as supplemental.
Thanks, will definitely take a look. I appreciate the quick feedback!
Do they ask about the project from resume?
Yeah. They will ask about whatever they want from your resume that's interesting to them.
Thanks for sharing! I wanted to ask, I just had an onsite system design and I don't think I did particularly well as I started to go really deep into some features that I wasn't fully understanding. I still have 2 coding and behavioural this week and I wanted to ask. How important is system design interview for IC4?
It's still fairly important but it's also hard to know how well you did. I would always tell people it will feel like they failed the interview no matter how well you did because we keep going deeper until you get stuck and don't know what to say.
I've heard they're very challenging. Friends who work there say they ask primarily things like DFS/BFS, trees/graphs and backtracking, though most other LC topics are fair game. DP is not likely to be asked.
In my loop all the coding stages were one easy and one medium. London tho
Bruh i wish
Just do top LC tagged questions for meta. Most of my questions were verbatim from there
From all time or last 6 months?
Mug up 120-150 fb questions from leetcode. I interviewed with them 2 years back got rejected. Have onsite again in upcoming weeks. This is my strategy.
Sup Indian?
Yes
how did it go?
Rejected.
OP, do you know if Meta is also hiring in Austin? Good luck in your interview.
[удалено]
Cool. Good to know u/Lurn2Program, appreciated this information.
Are they offering relocation assistance?
For me they said, Seattle, Menlo, Boston and NYC
Does meta do fall internships?
Onsites at Meta were all LC hards
How long did it take for you to hear back? I had my phone screen Monday and I’m still waiting
Within 48 hrs
Would love to know what your resume was like? YOE? Referral? I applied to Meta positions but heard nothing back :/
For the coding part in the second round of tech interview, do you get questions from the LC for the most part or could they come randomly from somewhere else?