The engineering culture is still very bottom-up: teams generally have a lot of power and responsibility to determine what they work on.
Internal developer tools are a huge focus. Anything which slows developers down is fixed if possible.
Very good internal mobility: bootcamp means you have a good deal of leeway in finding a team, and, after a year, internal mobility is encouraged.
Tons of opportunities to make millions of people's lives just a little bit better. Like it or not, Facebook's products are used by over a billion people worldwide. There are few places where improvements and fixes can have such a broad reach.
Lots of intellectual challenges: There are many types of challenges in building products for billions of people: technical (scaling and perf), product (how do you make it useful for everyone), regulatory (how to not fall afoul of privacy regulations), security (how to minimize badness that happens due to the products), and more.
The biggest challenge facing Facebook right now is that it is simultaneously too big to run the way it runs now (with teams trying to fight for impact and all hacking on the same products), and too small to fit with the well-intentioned goals that Mark has for all of the ways that Facebook can help people.
A company without any strong sense of unifying purpose tends toward bloat and stagnation. It feels like this is the direction Facebook is heading. The amount of infighting between teams around responsibility and ownership of new features is growing and will only keep accelerating.
Find a way to stop growing exponentially.
Start paying out dividends and focus on delivering value to users and advertisers alike.
A short initial phone chat with the recruiter (who was excellent, even offering tips for the main interview). Then, a technical phone interview with a developer. The developer I spoke to was great; they seemed like a nice guy and managed to pose so
I had an initial phone screen that included some easy tree and array questions. The on-site interview consisted of four different sessions. One was behavioral, while the other three focused on algorithms. It was quite tough.
The first round of the interview consists of a phone screen, which takes about 45-50 minutes. During this time, the interview focuses on a coding problem. No questions from the resume are asked in this round. At the end of this first stage process,
A short initial phone chat with the recruiter (who was excellent, even offering tips for the main interview). Then, a technical phone interview with a developer. The developer I spoke to was great; they seemed like a nice guy and managed to pose so
I had an initial phone screen that included some easy tree and array questions. The on-site interview consisted of four different sessions. One was behavioral, while the other three focused on algorithms. It was quite tough.
The first round of the interview consists of a phone screen, which takes about 45-50 minutes. During this time, the interview focuses on a coding problem. No questions from the resume are asked in this round. At the end of this first stage process,