Live data from Hacker News

Ask HN: What current companies have the best software engineering culture?

news.ycombinator.com

31–40 of 226 posts

Re: Ask HN: What current companies have the best software engineering culture?

#31
post #5

There is no universal scale. Some people prefer to work at big companies such as Google, Microsoft, Facebook... some at smaller fast moving startups and everything in between. There are for sure better and worse companies in each category, but even within big companies there is huge variance and it depends what you are looking for. Though some generic observation: 1. Product companies tends to have better culture tha…

> Good litmus test is to ask employees, do they have hackathons I'm a designer rather than an engineer, but I've always been a bit puzzled by the popularity of intra-company hackathons. It seems like a great way for management to keep employees working longer hours for less pay – an overnight hackathon that results in, say, 80 hours of additional work from a small team only costs the company some pizzas.

Heh, actually that is a good question, since answer will also tell you a lot about culture. It is an indirect question about working hours too. E.g.:

1. We do hackathon once a quarter during work hours.

2. We do 24h hackathons, but it's really fun!

3. Well we work so long that we don't have time for hackathon.

4. We care so much about work-life balance, that we don't do hackathons.

Depending on what you are looking for, you may be satisfied with different answer.

Re: Ask HN: What current companies have the best software engineering culture?

#32
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.

Re: Ask HN: What current companies have the best software engineering culture?

#33

Google has an unique software engineering culture that was built and designed by the first engineers. Many of the practices show deep understanding of the challenges that growing an engineering culture faces. A few examples: There are clearly defined initiation rites for new employees that make them familiar with the engineering practices. Focus is on a few key languages (C++, Java, Javascript, Python, Go) and code r…

I'm interested to know more about the "initiation rites."

I'm guessing he means readability. Google fetisihizes consistency, even at the cost of ingenuity and productivity. Heroism is a virtue at some other companies; at Google, it's a sin.

Re: Ask HN: What current companies have the best software engineering culture?

#34
post #20

Earlier quoted context omitted.

it depends on what hackathons are geared to doing - if it's _actual_ client/business work that they'd be doing normally, then it's not a proper hackathon, and just an excuse to get more hours out of the employees. But if it's a free for all, do anything you want style, and participation is optional (truly optional, not fake-optional via management peer pressure), then it's a good sign.

My hangup is that in either case, it's still extra work that benefits the company rather than the employee. It's performed on company premises with company equipment - gamified overtime, essentially. I suppose there's an argument to be made that a good employee can make it mutually beneficial (use the time to learn a new, marketable skill that can get them a raise or a better job), but still...

In the situation the parent described, I find it hard to construe it as benefiting the company over the individual (other than naturally making the company more attractive to work for).

We did this when I was at Guidewire and it was amazing. I explored Event Sourcing during a hackathon and eventually went on to build it into a product using those skills - it's a really happy memory. In another hackathon I built easter eggs into our internal seating chart application - the vibe of everyone hacking together was great.

This was a hackathon where it was broad enough that "reading an interesting programming book" counted, and nobody really bothered you if you did something completely different.

Re: Ask HN: What current companies have the best software engineering culture?

#35

Earlier quoted context omitted.

I'm assuming you're kidding, but if not, would you be willing to elaborate?

I don't have direct experience, but, judging by what I've heard, they're probably "best" by some measure. ;)

It takes all kinds. Some people like doing as they're told.

Re: Ask HN: What current companies have the best software engineering culture?

#36
Reading the Netflix engineering blog now and then, I do appreciate how many of their engineering decisions also take into account the effect it will have on their colleagues, i.e. "does this change affect how quickly/independently our engineers can do stuff"?

Re: Ask HN: What current companies have the best software engineering culture?

#37
post #28

Valve's new employee handbook looks pretty interesting - http://www.valvesoftware.com/company/Valve_Handbook_LowRes.p...

That Valve Employee Handbook is the 2012 edition. Is there a newer publication?

I think GP meant the Valve "New Employee" Handbook

Re: Ask HN: What current companies have the best software engineering culture?

#38

Google has an unique software engineering culture that was built and designed by the first engineers. Many of the practices show deep understanding of the challenges that growing an engineering culture faces. A few examples: There are clearly defined initiation rites for new employees that make them familiar with the engineering practices. Focus is on a few key languages (C++, Java, Javascript, Python, Go) and code r…

Google python coding style looks like java...

Re: Ask HN: What current companies have the best software engineering culture?

#39

Google has an unique software engineering culture that was built and designed by the first engineers. Many of the practices show deep understanding of the challenges that growing an engineering culture faces. A few examples: There are clearly defined initiation rites for new employees that make them familiar with the engineering practices. Focus is on a few key languages (C++, Java, Javascript, Python, Go) and code r…

Google python coding style looks like java...

I've always maintained that python is perl for bureaucrats, so that makes total sense :)

Re: Ask HN: What current companies have the best software engineering culture?

#40
Without cross-company exposure it's hard to answer this question, but for me, Netflix is very good at projecting good engineering culture. The fact that they build engineering tools that work in general contexts, that they write blog posts describing them, and that they open source these tools impresses me. When I read their blog posts, I see a company that's effectively solved a particular problem in a very general way that works well in specific cases too. I love it.

The degree to which Twitter open-sources its work is another thing that I like.

Post reply on HN