Skip to Content

What does it take to be a senior software engineer at Facebook?

Answer by Pedram Keyani, engineering director at Uber, on Quora.

When I look at amazing high impact engineers at Facebook (FB), I see a few common traits. They all boil down to someone being able to have more impact with more autonomy:

  • They can solve technical problems that few other people are willing or capable of handling.
  • They either have a very deep knowledge of one area or can jump from area to area and tackle problems quickly and work well with others.
  • They not only solve their problems but create solutions or frameworks that make other teams or big parts of the company better and faster (They know how to multiply their impact).
  • They don’t shy away from hard problems that may take several months or even years to prove they are worth tackling. They don’t get too caught up on individual performance reviews which lets them move beyond the scope of what most people are willing to risk their career on.
  • Many of them are really great communicators and well organized but that doesn’t seem to be a hard requirement because some people are just so gifted that they can also get by working alone on insanely narrow and hard problems.

 

The traits above are probably common to Facebook and many other high tech companies. Below are some things that I think are unique to Facebook in terms of people being able to grow in this environment:

  • Deals well with ambiguity and changing requirements. One of Facebook’s core values is to move fast and that means that while many companies take months to document what they are going to work on, we jump in with prototypes and iterate and tweak from there. This means that front-end engineers need to be able to keep up with different versions of code on multiple platforms (web, android, iPhone, tablets, etc.). Anything we built had to scale from day one, so our backend engineers had to be able to build infrastructure and frameworks that can be quickly adapted to new products or come up with scalable solutions quickly and know those things are going to be constantly tweaked.
  • They have to be able to be direct in terms of giving and getting feedback. The open culture means that no one (I mean no one, including Mark Zuckerberg) is above listening to feedback. That open and honest feedback helps people grow and scale and the best people are the ones that recognize areas to grow based on feedback. The ones that don’t rise up don’t seem approachable and/or don’t take feedback well.

 

As a side note, I really dislike the term “senior engineer” though it is hard to not use at times. It implies there is some time function associated with the level of skill but honestly, some people at Facebook who had been there for less than two years were doing some of the most critical and challenging work for the company.

Another point that is worth addressing is that I doubt many of the senior people ever sat down and thought, “What do I need to do to be the top engineer at this place?” Most of them are really humble people who seriously geek out and stay awake because hard problems interest them. They work and struggle when the rest of us sleep; they don’t lose focus when things get tough; and they don’t give up until they are satisfied with their solution.

If you want to become an amazing engineer/manager/designer/janitor anywhere then throw yourself into the tasks at hand, focus your energy and ideas on how to tackle bigger problems and don’t ever settle for anything but your absolute best.

Pedram Keyani is an engineering director at Uber and former Facebook engineering director.

This question originally appeared on Quora: What does it take to be a senior software engineer at Facebook?

Read additional Quora posts on career advice:

What successful companies with more than 100 employees are unconventionally managed?

How should I prepare for a software engineer interview at Facebook?

Why do people quit their jobs at dream companies like Facebook or Google?