I ended up going to Google and not applying to Facebook. At the time, it was for pretty superficial reasons:
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.
"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."
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 ;).
Yeah I think this is an issue for many people at Google in that everyone that I know that has worked for them recently (5 past co-workers... not exactly a fair survey) has overall been positive but negative on feeling overqualified for the work they end up doing. Its probably a symptom of Google being able to load up on so many highly qualified people with a limited amount of high-end, brainy work.
I think it's true for the average Googler as in "wasn't a brand name superstar when they joined". You do usually need at least one solid win (= launched feature that's reasonably successful with users) working on somebody else's team before you get the autonomy to propose and pursue your own stuff - Google wants to make back their investment in you before you go off and pursue some crazy idea, and you usually need that sort of experience with the production infrastructure and internal data sources to have any chance of success. But 20% time exists even for Nooglers, and is a good way to get experience in parts of the company you wouldn't otherwise see, develop skills you wouldn't otherwise have, or prepare for a transfer if you don't like your initial team.
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.
Sebastian has a whole team and much more than a year!
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.
Seconded. 20% time is still real, if you ask/push for it. If your idea fits somewhere under the broad umbrella of your group's mandate, so much the better.
I have to disagree a little with one of the earlier points, though. Through start-up acquisitions, Google is getting a lot more groups with the developer/hacker mindset. Those groups tend to keep to themselves and rail against Google's slow pace, and often eventually quit. Google could learn from that mentality, but equally those developers could learn from Google's methodical approach. In my (limited) experience Google could do much better at integrating newly acquired start-up teams into the overall corporate culture and development philosophy.
+1 Thanks for sharing. Regarding the language of choice, I think there's some Scala, Erlang and other frameworks in the mix at either party. I think it depends on whether you're working on core products, or the duct tape that you mentioned. (Example, Twitter attracts both sides of the camp - Django and RoR). But regardless, with your skillset, I think you'll be happy with the challenges and intellectual stimulation at either place. It's ultimately about the cultural fit like you said. Congrats, and all the best on the new job!
I'm a Facebook engineer and I definitely feel that Facebook is willing to take those 5% chances. Heck, one of Facebook's mottos is "Be Bold".
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.
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.
"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."
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.
Yep, the demographics on this thread have changed since I posted. A lot of us read HackerNews, and maybe we contribute out of proportion to our numbers when we see FB getting slammed unilaterally, as was the case before I wrote my response.
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.
My name is Pedram Keyani and I'm on the Site Integrity team at Facebook. I worked at Google from 2005 to 2007 and have worked at Facebook since then. The comparisons aren't going to be completely fair because I am comparing a younger smaller google of 5 years ago to the Facebook of today but I'll give you my perspective on both places and try to stay as fair and balanced as possible but please keep in mind that I'm obviously biased since I left one to go to the other.
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.
"--- 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."
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" ;)
"describing one's work place as stressful and demanding is a softball? "
no, but describing one's work place's only flaw as (paraphrased) 'we are so awesome that some good people can't hack it and leave' is.
"Not everyone is meant to be put outside their comfort zone...I've seen some good people just not hack it and leave" . In other words, people leave because the company's work is so demanding they can't keep up. Not that there's anything with anything the company does. No Sir. It is all those pesky people who can't stretch far enough.
Every company of 5k people will have definite dark sides that are not just 'some people are not suited to raise their game to our levels'.
Either don't go there, iow be diplomatic, which makes sense since you are an employee commenting on a public forum, xor give an honest unvarnished opinion of what those dark sides are.
Don't do these softball, 'we are so awesome that some people can't measure up and leave' stuff as the only 'negative' you can think of. Facebook has no other flaws (as a company to work for)? Seriously?
This is Hacker News, and soft soap (or what appears to be soft soap) will be spotted and called out. Think of it as feedback. Nothing personal :)
That said, I thought the rest of your answer was great ( I upvoted, fwiw) and conveyed something of what working for FB is like. This is just a minor blemish.
That's totally fair feedback and it totally makes sense the way you put it. So here is a more direct version of what I was trying to say.
I love this place because it has given me so many opportunities to try hard new things and grow but I've also had some of my most stressful life events while working here. Being lean and scrappy also means that when the shit hits the fan you are often times looking around for the "expert" and realize that you are supposed to be that person and if you don't solve the problem then everyone is fucked.
To give a little more context. The Site Integrity team fights spam, abuse and protects people from having their account taken over and when I joined over 5 years ago there really weren't too many people thinking about this stuff every day. I had previous experience with some of it from working on orkut.com so when I got here that is the kind of stuff I was able to have a lot of impact on. Spammers are smart and try to hit us when we are asleep or on vacation and I learned that the hard way during a trip to lake tahoe shortly after I started where I literally fought a spam attack for 2 days straight while my friends and family were skiing. I'm not complaining though because I found out that I am able to be very clear in situations like that every attack made my game that much better. Most everyone on my team is just like that but there are a number of people that really need a lot of backup and need a 9-5 routine.
FB is attracting more and more people I know who are top notch technically - Alex Feinberg, Simon Marlow, to name a couple. With Google the impression is that the really cutting edge people are the 'old guard'- Ghemawat,Dean, Norvig, Horzle (spelling?), even Guido Van Rossum.
Here is one more FB edge: From a purely local (Indian) viewpoint, FaceBook hires ultra sharp people for its US offices, vs Google mainly hiring into the local (Bangalore) office, which is a horror politically (i.e manager competence and behavior) and technically, and then (by HR policy) making you wait 2 or 3 years before you can transfer. I really wish someone at Google HQ would do some Augean stable cleaning here.
As of today, for a sharp Indian dev, it probably makes more sense to apply to Facebook than Google.
But then OTOH Larry and Sergei are more inspiring leaders than Zuckerberg. So ...
(due disclosure: spoken as someone who has no intention of working for either company, and has no axe to grind for either company. just stream of consciousness, and it is the middle of the night here, so apologies for any incoherence)
Hey I'm Peter Brook, an engineer at Facebook hacking our Android code. Reading over some of these responses, I feel like there are some popular misconceptions about Facebook that are being repeated and I wanted to jump in and share my own personal experience.
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.
For what it is worth, from somebody who works at neither: Google and Facebook are not points at two separate coordinates in the multidimensional vector space Interesting Things I Could Possibly Want. They are probability distributions over the same space. Pick any axis you want to look at: some jobs at Google are better than the average Facebook job at it, and some jobs are Facebook are better than the average Google job at it. I think it is virtually impossible to find a meaningful axis among which all of one company's jobs strictly dominate the other's. (e.g. Do you like, I don't know, freedom to pick what tech stack you work on? I guarantee you some jobs at Google/FB will give you no freedom to do that, and some jobs at Google/FB will give you unlimited freedom to do that, and many jobs are somewhere between those two.)
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. I can never get over Facebook's "ick" factor. My opinion of Facebook is that it's rotten at the top; I feel it's run by morally-flexible people who will do anything for money. Technically, I don't think they're working in sufficiently diverse problem areas. Delivering status updates and plumbing ads, that's it.
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.
"Delivering status updates and plumbing ads, that's it."
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.
I work for Facebook, on the Infrastructure Engineering team, where our slant is more toward software that helps us run the infrastructure and underpins the products. Whilst I've not worked for Google, quite unsurprisingly I've interviewed my fair share of folk who were at Google, and we've hired many of them.
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.
Google. Both google and facebook have some questionable ethics but facebook seems to have a total disconnect in this respect while google still has some semblance of honor. But why the false dichotomy? Why not Google, facebook or somewhere else?
Both will look good on your resume though, if you are intent on being in the employment cycle this won't hurt.
I work at Facebook and I did internship at google this year. Thing which make Facebook far better for me is the fact that you choose team for yourself after seeing the codebase and finding how your job is going to look like - bootcamp. This year I went to google internship and after arriving I found out that I am in department, which doesn't get respect around google, no one cares about it and where fun parts of this job mentioned during interview are maybe 5% of what I am going to do and the rest is something I wanted to avoid doing. I asked hr to move, but it was already too late, since I was already there.
I am sure there are some good places there, but you risk that hr will choose you something you don't want to do and it will be hard to change for at least a few months. Maybe as soon as you're in it's easier to move, but it will be never as easy as it is in Facebook, where there is no hr buerocracy around changing teams and you can just change your desk any day you want.
That's odd. Because http://www.youtube.com/watch?v=gb3Wed9M25A this new hangout they clearly said they have 2 interviews, and then a round of matching, and if anyone finds you interesting you would work with that team. So you are saying they make the team description so cool but in reality it's just an obsolete party like Google Code? Damn :( But it's cool you worked for two big companies.
I was offered a job at Google and Facebook last month, both for the Seattle offices.
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.
Facebook. Google is really an ad company with some money being diverted elsewhere. It really shines through when you see them buy AdMob and break the open source AdWhirl mediation in favor of their own closed source stuff. Ads are where you'll be rewarded if you go to work there, but there are much better ad companies to work for with cool new innovative stuff and with opportunities for equity.
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.
So, when I joined Google, I had a choice between it and being employee #1 at a YC startup. Both were tempting, but I'd done the startup dance before (twice, plus once as a founder) and I was curious if I was prematurely disqualifying what could be a good thing. The last time I'd worked in a big company was an internship in high school; in college I was absolutely certain I never wanted to work for a company with >50 employees.
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.
I took the opposite route. A startup I worked for got acquired by Google LA. Instead of joining Google, I jumped to another startup and experienced the most stressful 4 years of my life after that being a founding member of a failed startup that went on for way too long. :/ but.. I would do the same thing all over again.
I don't work at either, but know a lot of people at both.
Anecdotally, both sets of people really like their jobs a lot.
I think the people at Facebook feel they have more structure. This is desireable for some people, less so for others. But we're not talking about too much structure, just a sense that things are a bit better organized at Facebook.
That being said, everyone I know at Google seems much happier. The company seems to place a high priority on building the self-esteem of its employees, and reducing the many minor humiliations that are part of working for anyone especially a big company.
The people at Facebook are treated well too, but they all seem much more stressed out.
If you want to work on large-scale reliable systems, get your code reviewed by top-notch engineers, and live a happy life of a grown man, go to Google. If you want to code some PHP at 2 AM in the morning and watch it hit production by noon, go to Facebook.
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 kind of like the rationalization detailed here. However, can you explain more on why would you choose to be googler than founding something of your own. I thought that starting something of your own has its own learning, which noone can take deny.
I don't work at either, but know a lot of
people at both. Anecdotally, both sets of
people really like their jobs a lot. I think
the people at Facebook feel they have
more structure. This is desireable for
some people, less so for others.
Pick the company that gives you the right position. If Google puts you on Search Quality team while your interest is in Compute Engine, would you willing to spend 6-18 months there before getting switched to another team? Get the job that makes sense. But I will always pick Google over FB. The obvious reason is Facebook is boring. Their projects are always about social networking in one way or another. Boring. At least Google projects spam from the whole spectrum.
I think you are a little bit wrong about social. E.g. I know MySQL developer who works for Facebook. How MySQL can be social? The only thing Facebook brings to this is how much you should scale but the same is for Google.
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.
Well, consider working on search and thinking "geesh my dream job is not to make search better. I don't like AI. I want to work on building automation tools for the build system. Maybe the search part can help me understand how to make build system more intelligently, but still, why waste 18 months of my time? Here is GitHub / Bitbucket hiring me doing what exactly I love to do! "So then you would end up going there.
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.
The products and work that Google is doing is far, far more interesting to me, but that's a pretty personal reason. I have inexpensive tastes and live modestly outside of my electronics so I don't think compensation or likely even benefits would be an overriding concern.