1. I didn't want to code PHP and probably would have to at Facebook, while Google's frontends are in C++, Java, and some Python.
2. I didn't want to work for Mark Zuckerburg.
3. If I wanted to do social networking, I'd much rather work for myself than for a big company.
After almost 4 years at Google, and having met several Facebookers here in Silicon Valley, I'd say there're a few major cultural differences though:
1. Facebook thrives on "Move fast and break things", while Google thrives on "Do the impossible". You will likely pump out features and launch things much more quickly at Facebook than at Google. However, many of those features will just be incremental tweaks on what's already there. Google's one of the few places where you can say "I have an idea that has a 5% chance of success, will take a year to investigate, but will radically change the world if it succeeds" and get buy-in from both management and your peers.
2. A while back, I read a comment here that divided the programming population into 3 groups. Developers focus on getting useful shit done, and will resort to duct tape and chicken wire if they need to. Engineers focus on scalable, maintainable, beautiful solutions, at the expense of time-to-market if necessary. Computer scientists focus interesting algorithms and pushing the state of the art forwards, regardless of usefulness. Facebook seems to be a largely developer-driven company (with some engineers backing them up in infrastructure), while Google usually has mixed teams of engineers and computer scientists.
3. You will likely learn more about technology at Google. The hybrid approach to research at Google means that you're frequently working with Ph.Ds at the very top of their fields, doing absolutely fascinating, science fiction research. You will likely learn more about the market and the realities of shipping software quickly under deadlines at Facebook.
4. Overall, I'd say that Facebook's market strategy is to use speed to move into markets before anyone else does, and then hold them through network effects and constant innovation. Google's market strategy is to use smarts & persistence to get into markets that nobody else can enter, and then hold them by holding onto the only talent that can produce a working system with products of that complexity. Both cultures are highly optimized for these strategies. Facebook tries to hire fast, driven engineers, work them hard, and take away any roadblocks or distractions to shipping new features. Google tries to hire either really smart, curious young engineers or world-leaders in their fields, put them together, and give them the freedom to work on world-changing problems. Google IMHO treats their employees slightly better because their market strategy is more dependent upon retaining employees.
For me, I'd already worked in startups before, so I'd done the "toss together a pile of hacks to get to market before we run out of funding" dance before and wanted to try something new. No regrets at all - I've learned a ton at Google, and it's probably opened up markets that I wouldn't be able to play in before if I choose to go found another company. Right now, I'm finding that the number of toys and smart people helping out within the Googleplex makes it more efficient to try the intrapreneurship thing, though.
Is this really true for the average Googler? Honest question.
From what I hear from friends working there, superstars like Peter Norvig or Sebastian Thrun may get a year(EDIT or more! see comment below) to work on self driving cars or massive neural networks doing computer vision etc, but a lot of developers just fix production bugs on Gmail or Google Plus or whatever, and implement incremental features decided by their managers and don't really have the option to work on the cutting edge projects, especially if you aren't working in the Mountain View office.
(Not to challenge the rest of your points, they also tell me Google is a good place to work, but Sebastian Thrun might be able to pull off working on self driving cars even at Facebook.)
Fwiw, if I had to select between FB and Google, I'd go with Google (I have some superficial reasons not to work for FB, mainly because I don't want to do 'social networking'), but once in I'd do everything I could to change teams to one of these world changing groups ;).
I've got pretty much complete freedom to work on what I want as long as it's related to Search and will benefit the company if it succeeds. I came into Google with some minor name recognition in the startup & Haskell communities (I wrote a top Haskell tutorial and a blog about my experiences founding a failed startup) but no world-changing accomplishments, and between then and getting my current project I contributed to 4 major "wins" in search (Search Options, moving the individual property searches to www.google.com, the visual redesign of 2010, and the Authorship program), plus some pinch-hitting on the Google+ and Doodle teams.
I think this type of freedom does differ among departments. G+, Docs, and Android are very command-and-control, with somebody at the top deciding exactly which features everyone will be working on and relatively little individual discretion for engineers. Research is the complete opposite end of the spectrum - usually researchers are brought into Research, and then they keep doing their specialty but with more data available. Search, Chrome, YouTube, GMail, and Maps all give engineers a large amount of discretion in proposing projects from the ground up and then working on them.
But an average Googler gets their 20% time, plus a real chance to pitch for more resources. The (relatively flat) management chain is very open to great ideas regardless of where they come from, and willing to invest in them if they're sufficiently good. Mind you that bar isn't met all that often, but it does happen with some regularity.
I wouldn't go to Google for the sole purpose of pursuing your own idea there, but you should feel confident that if you have a great one, you'll be given a chance to make a case for it.
This is from the perspective of a Seattle Google employee, so I don't think location is an issue.
I'm not sure how this sentence is related to the previous sentence; are you associating django and/or ruby on rails with duct tape / "core" products ?
Google is overwhelmingly C++/Java/Python, but there are outliers (especially among acquisitions). I can't comment as to Facebook's mix.
As an intern, I started a project on my second day at a Hackathon that had absolutely nothing to do with my assigned team. I ended up devoting the second half of my internship to that project and by the end of the year I took an offer as a full-time engineer at Facebook, still working on that same project that I had kicked off on my second day.
I'm not here to say Facebook is way better than Google; I think they're both amazing companies. But the idea that Facebook isn't willing to take crazy chances definitely contradicts my experience at the company.
1. Facebook's motto is "move fast and break things". I would prefer if it was "move fast because you have the systems in place to prevent broken things from reaching production".
2. Facebook's new HQ is going to be a single room.
A single. Room.
This is a company run by people who apparently didn't read Peopleware ... if they've even heard of it.
Basically, it's a personality thing. I am mortified by screwing up. That's not a perfect character for business success, I realise. Foolish optimism is the oil of capitalism.
But it's who I am. I suspect I would be deeply uncomfortable with Facebook's culture.
I'd be interested in hearing what about my attitude you object to.
Spoiler alert: My answer is at the bottom
--- My high level on Google --- Google hires lots of smart people and puts them in a technical environment to be incredibly productive. Working on a social product (orkut.com) I always felt like a bit of an unloved step child. We weren't considered core and never got much attention during company meetings even though orkut was hitting some amazing page view stats. It's a hard core data company and social was never part of their DNA. This will take them time to do assuming the Google social antibodies don't win.
--- Facebook - the mission --- We, to oversimplify it, are building technology and products to help people share their lives and connect with the people that matter to them the most. Love and belonging are right above safety and security in Maslow's hierarchy and that is what we all come to work to build for. If you don't believe in the mission of the company then the rest of this is going to be meaningless for you.
--- Facebook - the good --- Facebook hires really smart people who want to get stuff done. The entire company is set up around giving each person and team as much autonomy as possible and removing barriers to turing ideas into reality. It sounds like hyperbole but our first company value is "move fast and break things" because we know that most ideas that sound great are, in reality, crap and spending 6 months to design something without testing your core idea is a fool's errand. At Facebook, code wins arguments so we solve debates by building things quickly and throwing them over the fence to get data and then iterate to improve it or learn that it was a bad idea.
As a smaller company (I think we are 5K right now) building something with such a big surface area we have to be lean and scrappy. Where some companies have a team of 20 people working on something, we have 2 people. It sounds scary (and it is, see "the bad" section below) but it pushes people outside their comfort zone and frankly that is the zone we should all strive to always spend some time in because that is where you learn and grow. In my time here I have built a bunch of things I had no qualifications to build but with only 50 engineers I couldn't wait for us to hire the right people. In the process I built, watch fail, rebuilt, and learned from many ambitious projects. I'm proud to admit I've brought down a number of Facebook services in the middle of the night and come in the next day, not to a pink slip, but from my manager telling me how well I fought the fire I caused and then we work through the design to improve it.
This is a company that practices radical transparency. At our weekly Q&A where Zuck stands in front of the company and has to answer any question employees throw at him and if he gives a bullshit answer then the rest of questions will be people calling him out. He sets the standard that the entire company lives by, it's part of the reason why we get things done so blazingly fast despite our tiny size. Another reason we operate so quickly is that we don't build bureaucracy as a response to mistakes and as a result decisions get made quickly. Another benefit of the radical transparency is that each team communicates very openly about their goals, projects, and progress which again makes communication and collaboration really fast.
I could write for hours about hackathons at Facebook but the most significant bit is that it creates a time constrained environment that really brings out the best in people.
--- Facebook - the bad --- Not everyone is meant to be put outside their comfort zone. It is a scary place at times and I've seen some good people just not hack it and leave. This is an incredible place to build amazing stuff but it is also a demanding one. We don't measure by effort, it's about what you can get done and the impact you can have.
We are a well known company that a lot of people write about and the articles about us are of two flavors "Mark Zuckerberg, man of the year" or "Facebook is destroying society". A lot of new grads come here and get really down when they read bad press about us and don't have the context that the press is an industry like any other and they want page views and no one reads a vanilla article. I try my hardest to remind new employees of they realize that the news is not reality, what we are doing is reality.
Working on something that over a billion people use also means that you can't change the font size without upsetting tens of millions of people. If you work at Facebook for more than a month you are going to experience people being outraged over changes we make and often times publicly claiming we have made the change for a nefarious reason. Again it's heartbreaking to hear but unlike the news we can't simply ignore this. We have a responsibility to listen to feedback and try to pull out the good from the people-just-dont-like-change. It's not always easy to do but it's an important part of building a service that so many people care about.
--- My advice --- Pick the place where you are most passionate about the mission and think you will be excited to wake up and go to work at…. hell, pick whatever company/startup/project/organization that makes you want to sleep less just so you can do more. It's past 1am and I'm getting back to my project.
This is like an interview candidate answering "What is your weakness?" with " I work so hard for my employer that I often forget to go home" ;)
Google products and projects run across the spectrum from technical to social to political. Google has research labs, it has offices in many of the developing parts of the world, it's very much involved in education.
There is absolutely no comparison: I would be proud to call myself a Googler. I run much of my private life online on Google services, and have spearheaded my company's move to Google apps & standardization on Android. Facebook? Facebook is the reason I installed the RequestPolicy plugin to block their cookies.
Facebook's messaging, events, photos, and groups products have replaced entire classes of web products for me. I don't know how it is on the inside, but from my vantage point, it seems like there's plenty of interesting work going on there.
First, let's not lose track of the high order bits here: the Venn diagram between these two companies is more overlap than not. Both are large-scale, consumer-facing Internet services. They both build heavily customized datacenters; contribute a lot to open source; write a lot of back-end code in C++; have intricate big-data pipelines that make their products go; solve basic problems in information retrieval; care about ad targeting; contribute research results, and PC members, to CS conferences in various disciplines; will hire every good ML person in the world if they can; and so forth.
There is consequently a lot of overlap between their employee populations. Many people have gone on from work they're proud of at Google to do work they're proud of at Facebook. Some have gone the other way, and as FB gets closer to Google's size there will be more of them in the future. Our kids go to the same schools; this is not the Bloods and the Crips. Choosing between the two is one of those "nice problems to have."
While there are lots of "little" differences, I think most are driven by two primary differences.
First: Facebook is about 10% the size of Google, in both headcount and revenue. (An interesting consequence of this, by the way, is that only about 10% as many Facebook engineers as Google engineers are reading and responding on a "smackdown" thread like this one; you should bear this in mind when skimming them.) I think my friends at Google would agree that engineers at Facebook have considerably more autonomy and responsibility, and less process obstructing the exercise of that autonomy.
Second: Google is famously pursuing many "if-you-build-it-they-will-come" tech-for-tech's-sake projects. Each project represents a small portion of Google's much larger headcount, and yields a lot in PR, recruiting, and hopefully someday in creating revolutionary consumer products. Facebook is focused on those technologies that allow humans to communicate with other humans. That problem space is plenty big, encompassing work in programming languages, databases, networking, data science, information retrieval, machine learning, etc. We leave other technical problems to organizations with other missions; they have smart people, too, who understand their problem space better than we will. This is a classic trade-off between breadth and depth; while neither company is 100% dedicated to one or the other, they have clearly chosen different spots on this continuum.
Finally, if anybody is actually wrestling with this dilemma, and would like to reach out in private, feel free to do so at Keith Michael Adams' initials @fb.com.
Well that's interesting, because I count 1 Google employee vs 5 Facebook employees. Did this thread get sent out on an internal Facebook mailing list or something? Several are new users.
Google:
http://news.ycombinator.com/item?id=4824681
Facebook:
http://news.ycombinator.com/item?id=4824909
http://news.ycombinator.com/item?id=4824979
http://news.ycombinator.com/item?id=4824964
We don't use mailing lists much at Facebook, preferring to use Facebook where possible. Like anybody else, Facebook employees who see something of interest on HN often use Facebook to share the link with those friends. There is nothing conspiratorial about this process; it's the same way all other links on Facebook spread through peer groups.
Both will look good on your resume though, if you are intent on being in the employment cycle this won't hurt.
Not to me.
I personally would not hold having either one on your resume as a negative about you. In fact I just helped an ex googler to find a job.
No regrets. The YC startup went out of business 8 months later, and I've had a chance to work on some really cool stuff at the Googleplex.
While I agree that choice must be based on desired position/knowledge or specialization that author wants to acquire. It is completely possible that neither Google nor Facebook is right for you because there are limits how much you can do there. Don't forget that you will need to compete with the best what is good for your education but it might be possible that it is not the knowledge you want to acquire.
Okay. Maybe I am a bit cynical about Facebook's work. But the reality is a lot of what they do is toward the scale of social media and on the surface people think "okay new feature from Facebook. Cool Story. Look at Google, more interesting shit. Even their DB work is used multiple domains, not just for social aspect. Because Google is not just a social network company. That's the point I was trying to make. Maybe it's a bit cynical, but it's true. If you go to a different team at FB, still social network? Damn. Let me do something else already.
Facebook is more of a social company who eventually put ads in. Heck, they were losing a ton of money on mobile for so long, and finally started putting sponsored stuff in the feed, and it isn't a bad implementation at all. The sponsored posts don't bother me at all and the new native client is slick. And they focused on the social part for a long time before monetizing - it shows what they really care about. At Facebook, if you launch and it decreases the amount that people use a feature, it's just as much a bug as a crash.
Tons of my friends who are not techies are totally into Facebook. I communicate with relatives and have made friends and business connections I never would have or could have without it. They've succeeded at being really important to the public at large and really accessible and inviting. Google, well, I was using search engines long before them, and appreciate the slightly better results. Their Google+ product has only really caught on with techies, despite plastering links to it on top of every page and spamming emails wherever possible. If you are into social and writing something other than ads for the public at large, Google is a failure. I might go for something smaller than Facebook, like Tumblr, but I wouldn't go for Google over either given their poor performance.
I hear this a lot. It's meant as a put down.
Doesn't Facebook make most of it's money from ads? Why don't you consider Facebook "really an ad company"?
If you're the one figuring out the tradeoffs here, I'd highly recommend using your backchannels and figuring out about the position/team you'll be entering (and, relatedly, how easy internal mobility (+) is), which is highly likely to matter more to you than the exact symbol on your stock options.
+ The nice part about working at either, and in general being a technologist in 2012, is that if things don't work out you'll be able to stand on the street corner, whistle, and have another job within 30 minutes.
Google offered a bit more in terms of total pay + benefits, but I considered both packages very good and therefore not a factor in my decision.
Here are the main factors that went into my decision:
First, Google has > 10X the number of engineers as FB. By this very fact, and having been in existance for longer, the scope of things Google works on is much larger. On the other hand, FB has a much sharper focus on impact: self-driving cars simply won't get worked on because there isn't enough people and more pressing work needed to be done. This is a matter of taste, and I preferred FB here.
Second, having a family, I was concerned about work-life balance. To my friends to worked at Google, it was now a 9-5 job. At FB all-night hackathons are still very much a part of the culture, however there are lots of people with families there now (especially in Seattle). My FB friends had lives outside of work but enjoyed what they were doing and worked very hard. On the benefits side, FB offers a week more of vacation and 4 months of parental leave. In all, I give Google the edge in work-life balance.
Third, culture was very important to me. I felt that there was a sense of complacency amongst a large minority of Googlers. They worked on large, established products making incremental improvements. At Facebook, I met lots of people fired up about the V1 projects they were working on. If your entrepreneurial like myself, you might prefer the Facebook culture.
Fourth, Google tried to match me up with a team before my start date. Facebook matches employees with teams after a 6-week bootcamp. I liked the latter approach, because I could really get to know teams before I joined.
I joined Facebook last week, and my first impressions have backed up my intuition.
Quick sidebar: hiring is super important for us at Facebook. We want to keep working with the smartest people on the planet, who also fit in culturally, and so interviewing is one of the things we take really seriously.
The one thing that we are also very serious about at Facebook is that once you get the job, we want you to be doing that which you are most passionate about, because we know that when you are doing something that you are passionate about, you will produce your best work, and be happy doing it. We don't just slot people into where we think they fit, or where we have a gap, simply because the skills on their resumé fit. A lot of time and effort goes into introducing new hires to as broad a swathe of engineering teams and activities as possible to allow them to make an informed decision about which team they want to join.
We also don't tie engineers to any one team for the duration of their tenure at Facebook, and actively encourage them to not get in a rut, regularly move teams and challenge themselves with something they're unfamiliar with. Personal success and career satisfaction is very much up to the individual in many respects. And this applies equally to individual contributors and managers.
What I love most about working at Facebook though is still being able to have a tangible impact. I have seen it grow from < 100M users to > 1B users, and seen the infrastructure and engineering teams grow with it, and all without negatively impacting the scope to actually do stuff. And I don't just mean small iterations on a big bit of software. We constantly evaluate our tools and systems, and are not scared to discard what no longer works, and regularly build new and highly impactful stuff from the ground up. Oh, and there is seldom any precedent to go by either!
It is a fantastic place to work, with lots of great people, who are all insanely smart and very motivated.
Maybe it's because I don't really use Facebook, but I don't know what most of the Facebook employees work on. I never really here of cool projects coming out of Facebook.
On the other hand, Google has a million different projects, and a good portion of them would be interesting to work on.
Facebook lives by "move fast, break things" principle, which might be appealing for software engineers who love seeing their code live quickly, but must be a hell for infrastructure engineers who get paged in the middle of the night when things break.
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.
As of now, c. 50% of people would favor Google
"Job at FB or GOOG, which would you take?"
He's not asking employees who are already wearing the t-shirt of the company. He's asking everyone else. It's not a very difficult question to understand, isn't Facebook?
Working at small companies is far more appealing to me, so those offers would be my backup plans to begin with.
What is making this a hard decision for you?