These past two years at Facebook have been an absolute nightmare, something that I hope never to repeat in my career. I’ve held my feelings back long enough. Now that I’m coming upon my two-year anniversary at Facebook, I need to just come out and say it: there’s a whole lot to hate about working here. In the interest of brevity, I’ve trimmed my complaints down to just the top ten things:
- There is way too much code being committed and shipped. Over the past two years, the number of engineers at Facebook has more than doubled. But the rate of source code commits continues to grow proportionally with the number of engineers. This is in clear violation of the law that Fred Brooks established nearly 40 years ago in The Mythical Man Month. And that’s exactly what this “supposed” productivity is: myth. I see engineers around me committing code all the time, releasing new features onto the site every week, and I just sit back and chuckle to myself. Happy, happy fools.
- There are too few meetings. This is actually related to, and arguably a prime cause of, #1 above. There’s even a “no meeting Wednesday” meme in the company, which you might as well call a “failure to communicate” death wish. Software needs to be talked about and debated, not simply written. It’s lunacy to be writing and shipping code at a blistering pace, instead of letting things bake a bit in committees representing broad swaths of all semi-affected parties.
- Zuck is too involved. Now that we’re a publicly-traded company, the CEO’s job should primarily be interfacing with the public – specifically the major investors, analysts, and pundits. Instead, Zuck is still planning upcoming products, talking with engineers, developing the strategy. This is a complete misappropriation of time. His job should be pumping up the stock price externally, not “building stuff.”
- There is not enough focus on short-term revenue. This is related to #3: specifically Zuck’s idealism (perhaps even naïveté) that focusing on building great products will lead to solid long-term businesses. The stock is down this quarter. We’re public now – we should be juicing next quarter’s revenues, not building cool stuff. Seems to me that we show less ad pixels than other major web sites. We should introduce banner ads (with eye-catching graphics and animations, ideally showing toe fungus or the spontaneous dancing that results from discovering low mortgage rates). We should sell user data to interested third parties at a decent price. Nobody in the company seems to be proposing these (admittedly obvious) business strategies, which, if anything, shows a clear lack of business acumen at the highest levels.
- The food is too good. What’s wrong with good food? Well, here’s what’s wrong: there’s too much of it. Three meals a day. Free. Cooked by award-winning chefs. And too many choices: salads, entrees, desserts, vegetarian food, soups, whole grains, usually a second dessert, organic stuff, barbeque, ice cream, fresh-squeezed orange juice. For someone like me with zero gastronomic self-control, this supposed “benefit” or “perk” is a complete disaster. Why doesn’t the FDA step in?
- Too many decisions are being made by engineers. Specifically, by just the engineers in the immediate product team of whatever’s shipping. No one at Facebook seems to understand that hierarchies in organizations exist for a reason, one of which is to make sure people higher up can override decisions they don’t like. I’ve seen decisions being made by lone engineers. Or an engineer and a designer over lunch. Or by interns. All without telling their managers, even. This sort of autonomous decision-making suggests a complete lack of understanding of how corporations are supposed to work, a disregard for people with titles and broad management responsibilities. I’ve been preaching a much simpler approach: always go with the opinion of the person who’s closest to Zuck. Or the opinion of the person in the room who manages the most people. No one’s listening.
- Too many new ideas are being created at Hackathons. This is a direct corollary of #6. I was told the other day that something like 70% of Hackathon projects, which are pretty much projects that engineers in small groups dream up and implement in single-day coding parties, end up shipping on the main site. I’m all for creativity and supposed “empowerment,” but that’s way too much stuff shipping without being formally outlined and approved by committees of senior execs. We have execs for a reason. They should be telling us what to build. Not the other way around. Corporations should be autocracies, not democracies. What – we should all just go off and create whatever amuses us? Where’s the leadership?
- All the internal focus on Mobile and Platform is completely misguided. I don’t mean to belittle your intelligence by belaboring this point, so I won’t. I’ll just say this: mobile devices are self-evidently of no consequence, and it’s ridiculous to give third-party developers the means to build on a common social graph.
- There is a fully-working hot tub in the New York office that interviews are conducted in. I didn’t believe this until I saw the photos on Twitter. It was billed to me as a way to test candidates’ resilience under pressure. I was told that it’s used rarely, and only on exceptionally good candidates as a way to probe the extent of their mettle. This is about the least professional thing that I have ever heard of, and I’m sure it violates laws in several states. [Ed: This is completely untrue, in case this fantastical point seems plausible at first. I installed a hot tub (non-functioning) as a conference room in Facebook Seattle. Interviews are never done in them.]
- There is too much internal trust. People at Facebook regularly assume – I kid you not – that employees they’ve never worked with will excel at their jobs, work hard, and deliver what they promise. This type of idealism is frankly nauseating. When it comes down to it, politics and mutual suspicion are ultimately what create the dynamism and drama that make work worthwhile. Without these, it’s just code, code, code. Ship, ship, ship. I get tired just thinking about it.
Consider this fair warning if you’re a software engineer. I can only call it as I see it.