Interviewing at Facebook? Advice from Facebook’s Engineering Hiring Manager, Dave Fetterman

Despite all the speculation in the marketplace, Facebook is still hiring – especially in engineering. The company is growing out multiple groups in its engineering team, ranging from mobile platforms to social search to powering important front-end features like the News Feed.

If you’re interested in a job with Facebook, you’ve found a great resource for background preparation. Many candidates read Inside Facebook for the latest Facebook trends, news, and stats before their Facebook interviews.

fetterman2In order to gain more insight about the Facebook interview process and what kinds of candidates Facebook is looking for, we sat down with Dave Fetterman, Facebook’s Engineering Hiring Manager and a founding engineer of the Facebook Platform.

Thanks for your time today Dave. You’ve spent a lot of time meeting with candidates for engineering positions at Facebook. What tips do you have for those interviewing for engineering roles at Facebook?

First of all, I’d tell them good choice, you’ve taken the first step to doing something really awesome.  There are parts of our process that are like any other tech interview.  We’re going to be doing whiteboard coding in any language you want to see how you solve problems – just to see how you think and to get you in the flow of doing code.  We’re still a small place, and a lot of what we do is still coding.  It’s something you need to be skilled at on day 1.

We’re also going to be hanging out and talking about how you use Facebook, how you’d like to use Facebook, what you’d change, if you see where we’re going. None of us here think this is the perfect version of Facebook, that’s why we’re still working hard.  We may whiteboard the high level architecture of something like designing the News Feed, or something new.  We want to see how you think about the different elements that go into what News Feed is.

This is important because it’s how ideas start here.  We sit down at lunch and sketch out in blocks and lines and clouds and arrows to think of new things that will become a part of Facebook.  We want to find people who don’t code to code but code to build.

A lot of interviews you do elsewhere will just focus on what you do as a coder.  At larger companies, that’s all you will be.  We want to see how you will approach the problem as someone who will be on a very small team.  Here, you will be on a team of 2, 3, or 4 people.

It’s important that you be able to look at problems both deeply as well as laterally. How will search be used throughout the site?  How will we need to expand the notion of data that will go into search?  What about the notions of social search?  How do you deal with concepts or questions that we don’t even know the answer to?  Sometimes we ask people crazy questions, and we want to see people think up crazy new things.

We are blessed with the challenge of solving lots of hard problems. Things like social search and mobile in ways that no one else has. Thinking about these unsolved problems is one of the best things you can do to prepare for your interview at Facebook.

Describe some things you’d advise candidates not to do, or some misconceptions you think candidates have when they come to talk to you.

Don’t assume that all the hard problems have already been solved.

That this is 2 guys in a dorm room.  We’re the 4th most trafficked website in the world.  Over half of the engineering we do is on the back-end systems that make everything you see all work.  This is not a shoestring operation.  When people come on campus, they see that it’s something that’s very real.

We’re not just a PHP shop.  We use all sorts of languages.  The stack is not as simple as a lot of people think.  We’re hacking the Linux networking kernel.  You can actually do AI here – on News Feed, search, advertising.

We’re not just doing web design.  It’s not shallow technology – it’s also really really deep.

How would you describe working at Facebook vs. working at a startup and vs. working at a larger company?

When you’re looking for a job, you can go to a big company and get a lot of security and always know what the path is, or you can go to work for a startup.  An advantage of going to a big company is that what you do will probably ship – but it may take a couple years. And you probably won’t have a lot of freedom or responsibility.

On the flip side, people think that if you’re at a startup your work really matters – but that isn’t true if the company doesn’t go anywhere.  Facebook is in this middle zone here.  You’re going to have a lot of freedom and responsibility, but it also still feels like a startup. When something ships, you’re going to be one of the five people who built that.  10’s or 100’s of millions of people are guaranteed to use it.

Based on what you’ve seen, what kind of people will really succeed at Facebook?

We like people who are builders.  Building is really important.  People who really enjoy creating things.  Builders who understand the products we’re trying to make.  Tenacious, self-starting people.

People who are capable of working within ambiguity toward a goal.  Who won’t always ask what to do next but can figure it out.  Who can adapt and can learn anything.

People who can take that sort of responsibility to make it good for 130 million people.  People who can build, test, support, and get business development and legal to understand what you’re doing.

Thanks Dave. Any final thoughts?

We have a lot of unsolved problems here that only we have.  You’re able to take on multiple high impact projects on ads, feeds, and a number of other things.  You’re also learning a lot.  You will not be siloed like you are at school.

And for the more enterprising amongst us, you don’t have to just be a coder.  This is a company where engineers are not an expense, we are creating the value.  People who want to branch out and do product management, speaking, and writing can. People who want to can be an entrepreneur for their products within Facebook.