← Timeline

I’m Michael. I was a principal engineer at Facebook from 2009 to 2017, where I was the top code contributor of all time and also conducted hundreds of interviews. I recently co-founded Formation.dev, an engineering fellowship that trains and refers engineers directly into big tech. Ask me Anything!

r/IAmA

u/One-Art-4098 wrote (the comment Michael replied to):

How have technical interviews changed over the years? Why is it still so hard to pass the systems design interview?

u/michaelnovati replied · ★ FEATURED
Good question. Facebook's interview process might seem surprisingly similar for like 10 years, but it shouldn't be surprising. When you have candidates trained in different languages, and working on vastly different companies/projects, you need an extremely consistent interview process to fairly evaluate people and compare them to each other. Behind the scenes there's even more checks and balances to keep the process consistent and fair. RE: System design. It's hard at Facebook because it's testing for your experience with different kinds of large scale products (whether it's more backend scaling, or highly used user facing products). If you don't have that experience, it's hard to fake it. They have a program called the "Rotational Engineer" program that's a mid-level program for people who never had the "scaled up" experience and need to fill in some gaps. The other thing about Facebook, is that won't down level you to entry level if you have some experience and are weak only on system design. At Formation.dev now, I work with people who actually have experience and don't know how to connect the dots yet to the FAANG-level system design expectations and have had great success there. To summarize: if you have the experience and are failing, there are ways to improve your performance for sure. If you don't have experience and are failing, it's hard to fake it, so I would maybe look at the Rotational Engineer role, or maybe look at another company first that has a more knowledge-based system design process.