Interviewed for EM position in early 2019. Behavioral, tech leadership etc went great. Coding was good enough to clear the bar. At both places, they called for additional System design interviews and decided not to move forward after that. At both places, HMs were very interested and asked me to try later & support me in future. My system design prep included- 1- DDIA- a very thorough read 2-3 times. Watched additional videos for topics which were not very clear in book- like consensus protocols, casual time-stamping , membership protocols etc. 2- Looked at sample questions in Grokking. I wasn’t very impressed with content but it’s ok combined with other resources. 3- Read few papers- FB Tao, Cassandra related. Not a whole lot though. I felt quite confident with my prep and I had least doubt about System design areas. But .. I was wrong. I gave some thought on why and some conclusion which I could draw- 1- One of G’s system design went fine. For second one interviewer didn’t come prepared with a question in mind. That session was more like a brainstorming with some real issue they had. This is also fine but interviewer wasn’t clearly scoping down the problem. I still felt I did decent and he seemed convinced. But seems like his feedback writing might be very vague because of the nature of question, so additional interviews after HC review. 2- I did blew one of the follow up interviews. Interviewer was one rude guy. It’s not just impression, I added more details in my feedback survey and hoping G doesn’t include such people in panel. Second guy was opposite , he was quite nice & supportive. Question was not really System design but more of a product design and I tried my best but didn’t make it. 3- For FB, looks like I scaled the system too early and didn’t suggest first quick solution which interviewer was expecting. I felt for all FB System Design interviews, interviewees were a bit junior and they might have trouble steering discussion in right direction or even getting the right assessment. Again, this is just a suspicion, I could be wrong. I want to try again and really trying to understand what I should focus on. TC- $350 #Google #Facebook
Thanks for the nice write up and sharing. Yoe? I guess you’re in Bay Area
Yes, bay area. 12+ years.
Thanks for sharing detailed your experience. Sorry to hear that. I went to dozens of E6 (and a few M1) system design interviews. Yes it's very hard. It's where your raw smartness is assessed. Strong candidates... are just smart. The big difference against weak candidates is they drive the discussion in a cohesive way. Weak candidates simply says the contents they memorized in a fragmented way, but strong candidates give their experience and knowledge, forming a nice story. I know it sounds like BS. You have to be pretty sharp in every answers backed with quick trade off and quantitative analysis. And a deep dive in your domain expert is necessary. BTW are you a specialist or just general SWE EM?
Thanks for insights. It was for general SWE. I don’t think i was weak candidate , otherwise they should have rejected me after first one. But not strong enough either for hire.
You have to do a lot of shadowing and reverse shadowed before being allowed to solo interview.
Good to know.
You may have to work on steering the discussion yourself and not expect it from interviews.
I didn’t mean that i was expecting them to steer discussion. But at least keep it in direction if I’m going detailed in one and course correct if some assumptions are wrong. And I also mentioned, the assessment part where experience does play significant role.
You can’t have someone at a level lower than the role you’re going for on the interview panel. “Junior” would still be at least at same level of role, and also a calibrated interviewer at both G and FB.
This was the case at G but definitely not at FB. Interviewers were not as senior. I can’t comment on calibration part as i still think it’s very subjective process and we can do our best attempt to bring objectivity.
System designs are tricky. I suggest you invest some time in actually designing and coding some scalable systems.