I was an intern at Facebook in the summer of 2011, and joined full-time as an engineer in the Seattle office that winter. I joined part way though my junior year of college, and though a balance of time I am managing to graduate this quarter. During my (non-Facebook) undergrad, I was completely in to robotics research. I had done research my entire undergrad and was sure I was going to graduate school for robotics. In fact, when I got my full time offer, I basically said thanks but I know I am going to grad school. A week before my deadline expired, I completely flipped and accepted the Facebook FT offer. There were several reasons why, but these are the relevant bits:
People. Facebook is a company focused on humans. My intern manager and my team manager as an intern were both outstanding human beings. I really, truly felt that they cared about me and about the direction that Facebook was going. This manifested itself part way though the Summer when I and some other interns proposed that the interns should do a Reddit AMA about what it was like to be an intern at Facebook. Both my intern manager and team manager were really excited about the idea and helped push it for approval. We got push back, and they advocated for us to the point where I wanted to hug them for caring so much. This initial effort finally did manifest itself in (so far) several Facebook team lead AMAs. At some level, seeing that my manager cared so much made me feel like I’d be okay in life if I just ended up next to such a quality guy.
Personal growth. I really enjoy learning new things about life. I knew that I’d learn a whole bunch of CS in grad school, but Facebook offered opportunities for many different kinds of learning, and in the end that potential for a diversity of learning experiences was really attractive. Boy was I not disappointed. I was immediately encouraged to begin interview training and have now interviewed dozens of candidates. I asked if I could mentor a new employee through Facebook’s “bootcamp” process and immediately got a “sure, go for it!” response. I asked if I could mentor an intern, and got the same response. Less than 1 year after being an intern, I had the opportunity to mentor one! These sorts of experiences pushed me to learn all sorts of new stuff, all while being surrounded by extremely competent mentors that could help me whenever I asked to chat.
Impact. This one gets hyped a lot, but it’s kind of ridiculous and hard to oversell. There is the opportunity for individuals to have crazy levels of impact at Facebook. I am the lead engineer on a critical component of our infrastructure, and all I had to do was step up and take the responsibility (and execute effectively). In meetings and company wide, we are very open to anyone stepping up and pitching their ideas. Of course, the idea might get shot down, but there’s still a lot of opportunity to learn Facebook’s product strategies, understand them, and then suggest and implement improvements to those strategies.
Technical work. This is a minor thing, since it is clear to anyone who has worked at Facebook, but we solve a lot of very hard problems. As an intern, for my intern project, I wrote a statistical analysis service in python that communicated with a backend ML service written in C++, and was controlled via a thrift interface by a PHP frontend I wrote, which updated the client side periodically (since the analysis took a while) via js/ajax. Nobody really held my hand through this (although I’m sure I could have gotten help if I’d asked more, and asking for help is definitely a skill I should get better at), these were just the technologies we had in place and so I just made it happen. In my FT work, I am hitting everything from network optimization to intricacies of Android to how to create maintainable APIs.
That said, both of these companies are stellar places to work. I've heard great things from my roommate who interned there, and I have close friends at both companies.