Hacker News new | past | comments | ask | show | jobs | submit login

Facebook --- far and away the best engineering culture I've ever seen, and I've been programming for 20 years. Other companies aren't even in the same league.

Facebook has an incredibly high hiring bar. I never once met someone who I didn't feel was qualified to be there. I was seldom the smartest person in the room.

The high average engineer quality allows the company to give developers almost complete autonomy. At Facebook, you not only get to choose your team, but once you're on that team, you, not some PM or manager, decide what to work on. You're evaluated on impact twice a year, and Facebook has an expansive and nuanced understanding of "impact" that rewards things like developer productivity improvements, side projects, and removal of bad code.

Facebook encourages cross-team collaboration in a way that Google only dreams of doing. There's a single codebase unified under "fbsource", of course, but also a lack of OWNERS files. That means that it's your job as an engineer to decide what code to add, not some team of blessed approvers. There's no readability process. Teams are trained to expect people from all over the company to contribute code. It's a dream job if you want to wear lots of different hats, or if you have a maniacal obsession with following a problem to its root cause and fixing it.

One engineer famously traced a sporadic failure to a single bad register on a single core on a single server. He was recognized for it too: Facebook has a "fix of the week" program that highlights heroic fixes and clever hacks.

Facebook management "gets it" in a way I haven't seen anywhere else. Developer productivity is paramount. When something goes wrong, management doesn't overreact. The general ethos is to apply tooling to make developers better, not to add process to make developers slower.

Best of all, Facebook is fun. The code review tool, Phabricator, has built-in meme support! The internal Facebook groups are full of interesting discussion and trolling (of the good sort). The people there all feel like, well, characters. They're memorable in a way I haven't seen at other technology companies.

Best of all, at Facebook, there's none of the insufferable technical grandstanding you see at other companies. It's hard to describe --- at other companies, people with just enough competence to be annoying regularly create elaborate word-salad design documents that would fit right in at /r/iamverysmart. At Facebook? People say what needs to be said.

The most striking thing about Facebook is how it does more with fewer developers. At Facebook, you feel incredibly productive. There's always enough to do. Teams are much smaller than equivalent teams at other companies, but somehow move faster. Management trusts you --- I never once heard "you can't check that in: the technical risk is too great".

Oh, and the pay is fantastic, especially if you demonstrate extraordinary impact.

Is Facebook perfect? Of course not. After all, I'm not there anymore. Some people ragequit. The company is growing more corporate over time, little by little. Traffic in MPK is nasty. Traffic in SEA is worse. The tooling has some room for improvement --- but you're welcome to send patches! The playfulness isn't for everyone. The open allocation policy sometimes leads to duplication of work, forcing people to discard their hard work. There are few hard rules, and sometimes you don't know where you stand in the power structure.

All that said, I'd go back to Facebook in a millisecond if circumstances lined up. Despite Facebook's flaws and its inevitable slow decline, it's still the best fucking engineering culture on earth right now.




As someone who generally wouldn't look at large companies, that does make FB sound kind-of interesting.

One question: how much emphasis is placed on day-to-day visibility? Is it legitimate to hide in a corner for a few weeks trying something out?


> Is it legitimate to hide in a corner for a few weeks trying something out?

Yes.


Fewer developers? There have 15,000 employees, what do they all do?


Facebook engineering is probability based. If you hire enough engineers and produce enough code, eventually some people are good and some code is good. The culture seems laughable.


How is their remote/work from home policy? How are the offices? Are they massive refurbished warehouses where hundreds of people constantly distract each other?


I'm not aware of any remote work policy, but there are the occasional remote people. Every big tech company will make exceptions for their top people and accommodate unusual arrangements, even Microsoft.

> massive refurbished warehouses

I wouldn't say "warehouses" --- the visual design is quite good, with a modernist bent. Frank Gehry designed the last few new offices.

But yes, the offices are very open. Fortunately, you don't have to be there in order to code.


What are the realistic expectations of in-office presence? Are there core hours when everyone is more or less expected to be present? Or is it accepted to hop in to the office every other day for a couple of hours of sync, and code from home otherwise?


I've worked in both modes. I've never heard of anyone being chastised for not being in the office enough --- but of course, that kind of feedback would be given in private.

I think the expectation is that you just be an adult about your work habits. Make sure that you're not slowing down the people you work with. It's up to you to figure out how to do that. One strategy is to just be in the office, but there are other options too.

(I'd say "teammates", but close collaborators aren't necessarily teammates at FB. You might work closely with someone every day and share only Zuck as the lowest common manager.)


That sounds great ! This said, as an outsider, I can't quite tell what FB engineers are working on these days ? (apart from the Oculus team)


How is the work / life balance at Facebook?


It's whatever you want it to be. You're responsible for the impact you make, not how long you're at your desk. Facebook has high impact expectations, but if you're smart, you can have a big impact and still have a life.

Facebook culture also has a big social aspect. I think I made more personal friends at Facebook than I made in the entire rest of my career. One downside (according to some people) of this effect is that Facebook tends to become your social life. Personally, I appreciated the personal relationship formation, since it's rare to see so many smart people in one place.


Thanks for taking the time of answering my question.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: