Facebook system design tips

Microsoft leetworld
Apr 10 27 Comments

I did on site for e5 backend swe. Feedback was Goode except 1 of the 2 design rounds interviewer feedback was soso. Recruiter shared that overall design was good but I stumbled a bit when doing numeric estimates of storage, machine cost. Seems that Facebook cares a lot of estimating the real cost of operating the system which is something I didn't prepare for.

They asked me to come back for 1 more design round. Any tips for best chance of success? Is this extra interview typical for people on border of e5?

Uodate: I did the extra design round and got e5 offer! I peas cticed design questions, read the chapters 3 and 4 in Designing Data Intensive Applications (about storage systems) and practiced doing by hand numbers calculations. Very relieved I can stop leetxiding and can now decide between fb L5 and Google L4 offers.

comments

Want to comment? LOG IN or SIGN UP
TOP 27 Comments
  • Microsoft leetworld
    OP
    Uodate: I did the extra design round and got e5 offer!
    Apr 22 4
    • Apple
      tesla21

      Apple

      PRE
      Tesla Motors
      tesla21more
      So sys design questions were more on general distributed system design like examples found on grokking? Did u have to talk about consensus algo like raft/ paxos etc, how does update work in nosql, problems with consistent hashing etc ? I want to know about the depth of interviews.
      Apr 22
    • Microsoft leetworld
      OP
      Facebook fcosues more on bottlenecks, scale, and data storage. No crazy paxos or anything. Ball parking numbers and knowing how databases work is helpful. . How btrees or log structures databases store data is helpful. Focus on the problem not technology for fb. How many machines, how much data to store, network badwoth required, latencies.
      Apr 22
    • Microsoft leetworld
      OP
      The actual questions are standard like design Instagram. But go into more detail than grokking does, especially for estimating numbers and designing a good database.
      Apr 22
    • Apple
      tesla21

      Apple

      PRE
      Tesla Motors
      tesla21more
      @op got it. Really appreciate your response.
      Apr 22
  • Amazon / Eng mk15fh
    I'm sitting on a FB E5 offer right now.

    In my case, they requested a follow-up interview for coding. My recruiter (who is excellent, by the way; has been remarkably transparent with me and I really appreciate that) was pretty clear on what that meant: I had one hire and one no-hire in my two coding rounds, but I suppose it could also mean you have two "hire but with weak confidence" rounds, as well. They're looking for "additional signal," meaning they can't really decide which way to go with you based on the feedback they already have (it's a mix of good/bad and/or low confidence).

    My design and career (behavioral) feedback was apparently very positive. In general, design interviews are used for leveling, though I get the impression that they're increasing in importance when it comes to the overall outcome, so I wouldn't just assume you can blow the design interview off and take a down-leveled offer (if they were going to do that, they would have done it already). You could be on the border, period, or you could just on the border of E5...or both, because it's also possible they're only really interested in hiring at E5.

    Anyhow, I also think the cost/revenue estimation thing was one area where I excelled, because that's a common day-to-day thing on some teams (including mine) at Amazon, especially if you're one of the team leads (as I am). I work closely with my manager on this and literally attach dollar estimates to almost everything I currently do (costs and revenues alike); that's how we prioritize our engineering plans for the year. Which is a good segue into how I approach design interviews in general:

    1.) Gather requirements, make estimates, and state assumptions. The best way to do this is to create relevant categories for your requirements: intended users and primary use cases, SLA/performance/scalability, security, cost, etc. Stating assumptions is a good "cover your ass" move in case you somehow miss some key requirements that the interviewer may be thinking about (it can be as simple as "that may be subject to change" or "I'll look into that when we get to it").
    2.) Use the requirements categories/frameworks to define components and trade-offs. If your categories are well thought-out, the discussion will naturally center around them which then trivializes the tasks of deciding both which components to build and how to prioritize them.
    3.) At this point it should be easy to stitch the components together into something more cohesive. Most of your discussion at this point should be around trade-offs and prioritization.
    4.) Drill down into each component/category as necessary or as the interviewer wants.

    For cost and user/scaling estimates, just use the Fermi method (look it up).

    Good luck!
    Apr 12 5
    • WeWork / Eng AOfu71
      What was your offer in terms of TC? And did you talk about moving up to L6?
      Apr 12
    • Amazon / Eng mk15fh
      About the same as the other E5 offers you can find around here: ~330-350 or so to start, including the cash bonus target but ignoring signing bonuses and potential RSU refreshers.

      I had no interest in E6 and don't think I would have any chance of getting it anyhow; I have some strong lead experience, but only a few years of it and only in one org/culture. I think E6 is scoped beyond what I'm used to or comfortable with (I'm a team lead who deals with multiple tech stacks and interfaces with other teams regularly, but I don't facilitate org-level work directly--that's reserved for PEs or people trending PE over the shorter term), and I'm also a bit burned out right now and don't really need more stress. Already concerned about how E5 is going to be...
      Apr 12
    • WeWork / Eng AOfu71
      Thanks for your reply. Appreciate it. I have an on-site at FB soon and my current TC is already higher than $350K. Not sure if I’m leveled at E6 or not but don’t want to waste too much time if it is E5 and lower pay.
      Apr 12
    • Amazon / Eng mk15fh
      Sure thing. To be fair, I think actual TC would be north of 400; my estimate is deliberately conservative because you have a signing bonus covering you in year one and the refreshers start to kick in soon thereafter. That said, if you're already above 350, I don't know if they'll offer enough to make it enticing. Worth trying E6, I suppose!
      Apr 12
    • Microsoft leetworld
      OP
      Thanks very helpful, and congrats on the offer!
      Apr 12
  • LinkedIn hgfth
    Grokking the system design has notes on how to make estimates. Use it for your prep. How many coding interviews u had? Yoe? Level at Msft?
    Apr 10 4
    • Microsoft leetworld
      OP
      2 coding rounds, 2 design, 1 career. Coding was good and career interview had excellent feedback. 1 design round was good but other one was so so
      Apr 10
    • Microsoft leetworld
      OP
      7 yoe. Level 64 msft
      Apr 10
    • Microsoft leetworld
      OP
      Didn't feel like I bombed it. I had right idea and clear diagrams explained myself
      Apr 10
    • Microsoft leetworld
      OP
      Yeah I don't know. I thi k because it's for e5 they want to make sure and maybe don't trust Microsoft lol
      Apr 10
  • Apple
    sfo-lax

    Apple

    PRE
    Amazon
    sfo-laxmore
    @leetworld what is career round ? Did U get LC hards ?
    Apr 10 3
    • Microsoft leetworld
      OP
      Career round they asked me about past projects. It was a senior engineer. I had lot of interesting projects in the last few years.
      Apr 10
    • Microsoft leetworld
      OP
      I got leetcode mediums 2 questions per round
      Apr 10
    • HPE pt44
      @leetworld: can you share the questions ? Just curious to know.
      Apr 10
  • Apple
    tesla21

    Apple

    PRE
    Tesla Motors
    tesla21more
    Overall interview was for a generalist swe or with any specific speciality ? Do u suggest going with specialty ?
    Apr 19 1
    • Microsoft leetworld
      OP
      General swe oure backend. Not full stack.
      Apr 19
  • Microsoft leetworld
    OP
    Update: I did the follow up design question. I was more prepared and felt I nailed the overall design. This time we spent most of the time going deep into data model, ballparking numbers and got into the image and Metadata data store design layer (it was design Instagram question).

    However it has been a few business days and no response from recruiter yet. That feels like a reject oh well.
    Apr 19 0
  • Amazon / Eng 3d
    When is the interview? Ping me, if I have time I can run a mock interview for you.
    Apr 10 0
  • WeWork / Eng AOfu71
    Is this L5? I thought L6 had two design rounds
    Apr 10 2
    • Microsoft leetworld
      OP
      I think it is l5.
      Apr 10
    • Amazon / Eng mk15fh
      I had two design rounds and two coding rounds as an (ultimately successful) E5 candidate. My originally scheduled loop (which had to be rescheduled for various reasons) had three coding rounds, so there doesn't seem to be a rhyme or reason to it. FB traditionally had four on-site rounds (or did the first time I interviewed there), so my guess is that the fifth round is primarily used for experimentation and interviewer training, plus additional signal in the appropriate area.
      Apr 11