"We have business decisions made by business people, and technical decisions made by technical people. While we are accountable to fulfill business needs, business does not dictate our programming languages, tooling, technology choices, or even how we spend our time. It is common for engineers to solve technical annoyances on our own."
Individual contributors are empowered to make decisions. I am a recent hire and our team has been mob programming because we decided that was the best way to move forward on a legacy project. We are free to choose when to pair program or work individually when we deem necessary.
I cannot imagine going back to following orders from the highest paid person in the room. This is a true meritocracy culture.
Google. monorepo with almost full visibility, code search/cross referencing/review tools, good infrastructure support, great videoconference and collaboration tools, a culture of written knowledge vs. oral lore, clear strategy in many parts of the business (loosely coupled, tightly aligned). Perks, pay, vacation are excellent. Work life balance is generally good. World experts in relevant subject matter are never far away.
The things you mentioned are mostly true, however the technical culture is very reactionary and the promo process rewards worse engineers on average in my experience. Most of the better engineers I knew there ended up leaving after a while.
I ask if a company uses a monorepo as one of the ways to decide to pass on them if they do. Definitely not an indicator of good engineering practices in my opinion.
One of my former bosses was an ex-Google manager and had the same opinion. I guess Google's monorepo grew out of a historical accident from their early customizations of Perforce, and had nothing to do with any supposed engineering benefits that are used to rationalize it now. Then other companies adopted it for the same shallow cargo-cult copying reasons they also use Google's interview hazing approach. And it became an empty marketing icon, e.g. with the ACM article on monorepos.
Any more, I think monorepo vs. project repos is just a bunch of bikeshedding, and the real value of a monorepo is easier centralized surveillance. I grant this might be an important priority for megacorps, but it still doesn't mean it has anything to do with good engineering practices or culture.
I recently started working at Asana and I was pleasantly surprised how people constantly strive to empower each other and make them feel secure in making decisions and picking up responsibility. Mentorship has been gret as well. It has been by far the best environment I have worked in so far.
What do yo mean by engineering culture? Sounds like a broad term. It depends on the company, the department and even down to the team. But from my own experience and friends feedback:
- Innovation: Space X
- Responsibility: Apple
- Just chillin: Google
- Perks: FB
- Resources (hardware): Apple & FB
- Resources (brains): Apple & Google through Acqui-hiring
I'll toss my hat in the ring for SoundHound. I worked there a few years back, and it honestly felt like family. I was going through a lot of changes in my personal life so I decided to leave, but I regret that now. I should have stayed there for at least 4/5 years.
Managers there really care about their reports, and their development. It's a relaxed, family friendly atmosphere, and the technology is truly the best in the world. The CEO is pretty much the inventor of deep learning, and they have nothing but good prospects for the future.
This stuff varies way too much team by team regardless of company level mandates.
Your best bet is to apply to the places that seem like they might be aligned with your interests, and when one decides to move forward and produce an offer, use that time to really kick the tires and talk to the management and the ICs on the specific team you'll be working with.
I've found that regardless of what sort of culture upper management may be trying to build, at the end of the day your experience will be mostly made up of the specific things you'll be doing and the people you'll be doing them with.
I wonder about 2Sigma. I seem to naively assume that contributing to a lot of open source projects equals great engineering culture, and this company does seem to have a lot of lead devs from large OS projects.
I've heard a lot of bad things about the culture there. The main complaint I've heard is that the company sometimes organizes new projects in a directly competitive manner: multiple internal teams will be assigned the same project and given the set of criteria for evaluating the work. Then at whatever deadline, only the team that "wins" gets bonuses associated with that work.
It may not affect open-source teams though, only the finance side, and it could have changed since 2014-2016 when some of my former colleagues were there.
I also think it's telling that Wes McKinney decided to create Ursa Labs. I know Two Sigma is partnering in the early stages, but I read it as clearly a sign that he wasn't empowered with whatever he was promised by them.
I've been at some great places. The problem with culture is it changes. I could tell you companies that are great, but they could change in 6 months if they get new management. I can also tell you places that suck now that were great a year ago.
So then maybe the real test for great culture is if they can maintain it for an appreciable amount of time? It's a really tough one to answer.
It's hard to judge without being in there. Most people can only judge from blogs by the founders, which is why Basecamp and Fog Creek get mentioned a lot.
I'd say a good guideline is to stay away from open offices, or places with no monitor. Geek perks like mechanical keyboards are nice too.
I visited Atlassian's Sydney office.
There was a sign on the fridge in the kitchen attached to a function space that had 'guidelines you've had too much to drink'
Included on the list was 'if you're slurring your words, you've had too much to drink' as well as 'if you've started making unwanted advances towards colleagues, you've had too much to drink'.
The fact that
1) They had a sign telling you not to sexually harass your coworkers
2) It happened so often that they NEEDED TO PUT UP A SIGN telling people not to do it any more
made me decide I probably didn't want to work there.
(This was 2015, maybe things have gotten better?)
* (sometimes) Microsoft (private offices, supposedly going away)
* RedHat
Basically anywhere that passes the Joel Test. In my experience, that seems to be accurate - with more emphasis needed on a quiet, low interruption environment.
I've often thought, would it be useful to create a "Paul Graham Test" based mostly on the essays "Great Hackers" and "Maker's Schedule, Manager's Schedule" as an analogue to the Joel Test. It reinforces some parts of the Joel Test, particularly the unequivocal importance of private offices.
But it seems like so many Y Combinator companies don't embody these quality-first principles, and comments or posts espousing them even here on Hacker News seem to get consistently downvoted or quickly pushed out of the spotlight, or undercut by comments about how wanting an office is "whining" or hijacking the discussion into a debate about headphones vs. real estate costs vs. Agile teams, none of which are relevant.
I really wonder why Y Combinator, as a clear thought leader in the technology start-up space, doesn't vocally support private offices more, given Graham's own unequivocal endorsement of them in an essay about foundational ideas about software productivity and quality.
The same could be said about other topics beyond offices too.
The people I talk to, from Microsoft. Disagree. The politics are brutal and the infrastructure brittle and constantly changing (with all the overhead and oversight of a high-security industry like finance) until nothing really gets done.
[+] [-] pdt256|7 years ago|reply
I was sold when I read this statement:
"We have business decisions made by business people, and technical decisions made by technical people. While we are accountable to fulfill business needs, business does not dictate our programming languages, tooling, technology choices, or even how we spend our time. It is common for engineers to solve technical annoyances on our own."
Individual contributors are empowered to make decisions. I am a recent hire and our team has been mob programming because we decided that was the best way to move forward on a legacy project. We are free to choose when to pair program or work individually when we deem necessary.
I cannot imagine going back to following orders from the highest paid person in the room. This is a true meritocracy culture.
[+] [-] napo|7 years ago|reply
[+] [-] jshute|7 years ago|reply
[+] [-] kenmicklas|7 years ago|reply
[+] [-] noir_lord|7 years ago|reply
Inside maybe, outside not so much.
I wouldn't rely on anything google does outside Ads (not that I do), GCE and maybe Android.
They have a (somewhat deserved) reputation for destroying services seemingly at random.
[+] [-] mlthoughts2018|7 years ago|reply
One of my former bosses was an ex-Google manager and had the same opinion. I guess Google's monorepo grew out of a historical accident from their early customizations of Perforce, and had nothing to do with any supposed engineering benefits that are used to rationalize it now. Then other companies adopted it for the same shallow cargo-cult copying reasons they also use Google's interview hazing approach. And it became an empty marketing icon, e.g. with the ACM article on monorepos.
Any more, I think monorepo vs. project repos is just a bunch of bikeshedding, and the real value of a monorepo is easier centralized surveillance. I grant this might be an important priority for megacorps, but it still doesn't mean it has anything to do with good engineering practices or culture.
[+] [-] gspilio|7 years ago|reply
[+] [-] gspilio|7 years ago|reply
https://wavelength.asana.com/work-life-balance/ (describes the fractal of work-rest)
https://wavelength.asana.com/work-plans-high-level-objective... (how we think about planning)
https://wavelength.asana.com/workstyle-aors/ (how we think about responsibility)
[+] [-] pspeter3|7 years ago|reply
[+] [-] bsvalley|7 years ago|reply
- Innovation: Space X
- Responsibility: Apple
- Just chillin: Google
- Perks: FB
- Resources (hardware): Apple & FB
- Resources (brains): Apple & Google through Acqui-hiring
- Learning: Space X & Apple
[+] [-] iamcasen|7 years ago|reply
Managers there really care about their reports, and their development. It's a relaxed, family friendly atmosphere, and the technology is truly the best in the world. The CEO is pretty much the inventor of deep learning, and they have nothing but good prospects for the future.
[+] [-] a-dub|7 years ago|reply
Your best bet is to apply to the places that seem like they might be aligned with your interests, and when one decides to move forward and produce an offer, use that time to really kick the tires and talk to the management and the ICs on the specific team you'll be working with.
I've found that regardless of what sort of culture upper management may be trying to build, at the end of the day your experience will be mostly made up of the specific things you'll be doing and the people you'll be doing them with.
[+] [-] hetspookjee|7 years ago|reply
[+] [-] mlthoughts2018|7 years ago|reply
It may not affect open-source teams though, only the finance side, and it could have changed since 2014-2016 when some of my former colleagues were there.
I also think it's telling that Wes McKinney decided to create Ursa Labs. I know Two Sigma is partnering in the early stages, but I read it as clearly a sign that he wasn't empowered with whatever he was promised by them.
[+] [-] foobaw|7 years ago|reply
[+] [-] acconrad|7 years ago|reply
So then maybe the real test for great culture is if they can maintain it for an appreciable amount of time? It's a really tough one to answer.
[+] [-] commandlinefan|7 years ago|reply
[+] [-] sidcool|7 years ago|reply
[+] [-] muzani|7 years ago|reply
I'd say a good guideline is to stay away from open offices, or places with no monitor. Geek perks like mechanical keyboards are nice too.
[+] [-] otalp|7 years ago|reply
[+] [-] yurylifshits|7 years ago|reply
[+] [-] handbanana|7 years ago|reply
[+] [-] ianrtracey|7 years ago|reply
[+] [-] atlastian|7 years ago|reply
made me decide I probably didn't want to work there. (This was 2015, maybe things have gotten better?)
[+] [-] handbanana|7 years ago|reply
[+] [-] knoxa2511|7 years ago|reply
[+] [-] reggiepret|7 years ago|reply
[+] [-] JBReefer|7 years ago|reply
* Fog Creek
* Stack Overflow
* (sometimes) Microsoft (private offices, supposedly going away)
* RedHat
Basically anywhere that passes the Joel Test. In my experience, that seems to be accurate - with more emphasis needed on a quiet, low interruption environment.
[+] [-] mlthoughts2018|7 years ago|reply
But it seems like so many Y Combinator companies don't embody these quality-first principles, and comments or posts espousing them even here on Hacker News seem to get consistently downvoted or quickly pushed out of the spotlight, or undercut by comments about how wanting an office is "whining" or hijacking the discussion into a debate about headphones vs. real estate costs vs. Agile teams, none of which are relevant.
I really wonder why Y Combinator, as a clear thought leader in the technology start-up space, doesn't vocally support private offices more, given Graham's own unequivocal endorsement of them in an essay about foundational ideas about software productivity and quality.
The same could be said about other topics beyond offices too.
[+] [-] Floegipoky|7 years ago|reply
[+] [-] TooBrokeToBeg|7 years ago|reply
[+] [-] bluejekyll|7 years ago|reply
[+] [-] mkoryak|7 years ago|reply
[+] [-] sidcool|7 years ago|reply
[+] [-] handbanana|7 years ago|reply
[+] [-] ocfx|7 years ago|reply
[deleted]
[+] [-] unknown|7 years ago|reply
[deleted]