I worked at Meta and did 400+ interviews there. My advice:
- No smalltalk, you'll jump very quickly into coding and go with it, because you want to spend the most time coding you can
- Whiteboard style - they generally don't care about perfect syntax or compilable code. They also want to see you walk through and explain your code without an IDE telling you what's wrong or by running the code and guessing and checking.
- Generally 2 medium questions in 45 mins and you want to solve both with clean solutions. You don't have to have the perfect approach if you have a very clean good approach. Clean code means: no extra logic or if statements, no overusing variables you do f need, readable names, visually tidy, consistent white space.
u/EnoughWinter5966 wrote (the comment Michael replied to):
Such a goofy interview style, all this gets is people that are bots who memorize lc.
u/michaelnovatireplied·· edited
People can get through the cracks who memorized but it was rare and almost never when I was there because of this:
- interviewers are extremely calibrated amongst each other
- you'll end up doing three to four coding interviews which is 6 to 8 problems and patterns emerge for how someone's approaching those problems and it was clear if someone was memorizing or cheating because out of those problems will be at least one and usually many where the person shows signs of that
- something the more experienced interviewers would do is ask what might sound like a trivial follow-up or might even ask something that's incorrect to throw you off a bit and see if you actually understand the problem or if you were just memorizing
- similarly, when people walk through their problems we could interrupt them to ask them specific trivial sounding questions, but it was actually to prevent someone from stating like a memorized speech
- finally, the clean code aspect. do you have no idea how many people have done hundreds and hundreds of leetcode problems all by themselves and start adopting patterns they can't explain without even realizing it? we see that they don't really understand or can't coherently explain "easy" concepts and when you kind of zoom out a bit, we really want to see someone who writes clean elegant code that communicates a clear understanding of how programming works.
- There is a hiring manager interview that is also very useful in figuring out if someone's resume is accurate and what kinds of past experience they have , and I have some people try to exaggerate through these interviews but it's a completely different type of faking it then the coding interviews and for someone to be able to fake both kinds of interviews is even harder.
- finally, systems design is one of the hardest interviews to prepare for in general, and it's ultimately testing your experience with large skill systems, and I haven't seen anyone be able to memorize their way through it, even though that's the one I've seen people try the most at memorizing things.
Sorry some of this is a bit vague because it's kind of an art on the side of the interviewer and one of the reasons why they get so much training and calibration.
u/kuriousaboutanything wrote (the comment Michael replied to):
"Trivial follow-up" : I was asked how I could improve the space/redundancy in a function I wrote that was originally, as per my code, taking a normal C++ string. The answer he was expecting was putting a reference '&' there :)
u/michaelnovatireplied·· edited
Yeah "trivial" might not be the right word, but minor/small adjustments that are not fundamentally new problems
u/kuriousaboutanything wrote (the comment Michael replied to):
That was actually a good way to figure out if a candidate has real experience coding or has just prepped the Leetcode questions to get a green Submitted pop-op in LC. I am still not sure about how Meta organize their coding rounds, with all the 'leaked' questions. Their reasoning
u/michaelnovatireplied·
There is a large pool of suggested questions, but people can ask their own too. The questions are listed in the feedback and the hiring panel will take into account both the questions and how well calibrated the interviewer is with those questions (and many more data points) in interpreting the feedback. Much more complex than it appears.
Meta is extremely practical so they will spend as much time improving this process as they deem necessary to catch the most number of "memorizers" with an acceptable false positive rate - which will be corrected for through the performance process and firing people quickly later on who aren't performing.
u/bluedevilzn wrote (the comment Michael replied to):
What about screening Interviews for e6+?
u/michaelnovatireplied·
The coding is the same! You often do 2 system design interviews and they are looking closely at your experience to pattern match to Metas levels.
I think E7+ might have more unique extra interviews now, I left 6.years ago and keep in touch with people but dont know for 7+... when I was there there were only 150 E7+ and most were promoted internally
u/Mango_flavored_gum wrote (the comment Michael replied to):
Hi Michael, thanks for the great reply. Any tips on prepping for the interview besides using a note pad / none compilers.
I feel like my current biggest problem is during dry runs. I always thing it makes sense but when compiling it I find issues. Most of the time very simple s
u/michaelnovatireplied·
I don't want to share anything from my company but a problem solving method can be helpful and we have one on our blog that we suggest.
Like a step by step problem solving approach you have in your head that helps you walk through problems cleanly.
Not finding edge cases isn't a failure no, but id identifying edges can show a detail of the extremes of how your code works. So accidentally not noticing is one thing, not understanding an edge case might be a problem.
And yes, practice makes perfect, the best way to try doing all these tips all at once in a realistic environment.
u/EnoughWinter5966 wrote (the comment Michael replied to):
But if you’ve practiced a lot of problems everything is just a variation and that’s muscle memory. I could bust out a med dfs or bfs graph algorithm in a few mins if you need me to, bc I have it down.
u/michaelnovatireplied·
You want to do BFS and DFS with muscle memory but you don't need to do quick sort with muscle memory.
Maybe anything 5 lines of code or less that does one thing might be muscle memory level?
u/sang89 wrote (the comment Michael replied to):
>hiring manager interview
hey u/michaelnovati do you mind using my mock interview app and critiquing it in terms of relevancy to the actual hiring manager interview?
ive built it as a coaching tool for job seekers for practicing skills like explaining past experience, behaviora
u/michaelnovatireplied·★ FEATURED
It might be a conflict of interest because I'm the co-founder of an interview prep platform. I didn't disclose that above because it wasn't relevant and I genuinely wanted to answer with my Meta hat on, not my Formation hat, but I'll disclose here because now it is if we're talking about paid/free interview prep.
u/plussizeandproud wrote (the comment Michael replied to):
hey michael, for Meta coding rounds are you expected to produce bug free code in the first pass? What if your interviewer rushes to the next question without giving you time to fix your bugs? Is the approach sufficient to clear the bar if you identify the time and space complexit
u/michaelnovatireplied·
Definitely not, sometimes having too perfect code is suspicious even haha.
But by the end you want "clean code", which is both bug free and just elegant.
RE: space/time complexity - you need to not just answer the question, but explain why in plain words and walk through it... they ultimately want to know you deeply understand the code, and not if you memorized various complexiities.
u/plussizeandproud wrote (the comment Michael replied to):
Hmm, so if you explain things sufficiently then is it possible that the interviewer will have gotten enough 'signal' to not have you finish up your code? I guess it all depends haha
u/michaelnovatireplied·
Correct, it's possible, depending on the interviewer. I would strongly recommend following the lead and advice of the interviewer in the moment
u/throwawayz_z wrote (the comment Michael replied to):
quick question.
I had myself an interview with meta and I got 2 mediums.
Was able to solve the first with ease verified it, etc. The second took a decent explanation from the interviewer (it was an uncommon problem and is a borderline hard imo). Second question coding was incom
u/michaelnovatireplied·
It's borderline but hard to tell. If it's SUPER borderline or something logistically went weird, they might do a 2nd phone screen too.
I advise people not to overthink because it's beyond your control after the interview - even though I myself would overthink :P
u/throwawayz_z wrote (the comment Michael replied to):
oof so even if it's borderline it wouldn't be a pass into an onsite at all? (not without a secondary call it sounded like)
...Yeah I am overthinking this lol you're not wrong.
u/michaelnovatireplied·
You might make it if you leaned positive. Back then it was kind of a "50% shot of passing the onsite" bar. So depending on which side of that you land.
Also the feedback from the first round carries through to the end, so if do pass and you were borderline and ALL of your onsite is borderline, you probably won't get an offer either. At least on the plus side, it doesn't get any harder coding-wise.
u/dombrogia wrote (the comment Michael replied to):
What blog are you referring to?
u/michaelnovatireplied·
Sorry, it's this https://formation.dev/blog/the-engineering-method/amp/
u/jtro wrote (the comment Michael replied to):
Hi Michael, do they allow use of IntelliSense? I see CoderPad has it available and I've been practicing with it on. Thanks!
u/michaelnovatireplied·
I'm not sure if they explicitly block it or not, but you should be ready to do it without it on, but without being expected to write compilable code. So if you forget some syntax you would just say "this is what I remember, I forget the exact syntax" and as long as what you thought was possible exists (or the interviewer says it's ok) then you are good.
u/Gold_Pie3758 wrote (the comment Michael replied to):
Hi, Can I have my video off during the coding interview?
u/michaelnovatireplied·
Hmm, so I'm not sure post-COVID, but before, the phone screen was audio only and the onsite was IN PERSON. Now I'm not so sure, but I would be prepared to do video on.
u/Less-Walrus-9732 wrote (the comment Michael replied to):
I have mine lined up for next week. coding + troubleshooting. I would like to how would a troubleshoot round look like?
u/michaelnovatireplied·
This is a Meta for a SWE role?
u/Less-Walrus-9732 wrote (the comment Michael replied to):
It is for a production engineer role.
u/michaelnovatireplied·
Ah ok, I don't know much about that pipeline and definitely not that interview type.