It’s a problem that everybody else is using the same process. (I blame it on CtCi)
Even if you make it through the interview process, you're going to be working for people who cargo cult their business practices and surrounded by coworkers who are willing to spend vast amounts of energy on stupid things to accomplish their goals.
It's a massively negative indicator for company culture imo.
I can't remember the last time I actually enjoyed using Google's software or their libraries, I don't know why I'd work for a mini-Google.
Is your company able to back the trend when it’s obviously wrong?
I prefer money over perfect culture though.
as you said, i would never work at a company with bad interviewing practices because it means that either the employees were hired by these bad practices OR the practices changed and no one cares.
Most companies that pay very well and are competitive do it, and the reason is because we get so many crappy applicants that it remains to this day the least risky, cost effective way to filter out bad developers.
Here’s another avenue, show me your OSS work if you have it. That give me a far better picture of how you develop than LC ever could. Don’t have OSS, then a take home test also works perfectly fine or a programming exercise that’s realistic
> Here’s another avenue, show me your OSS work if you have it.
For the complaining elsewhere in this thread about how leetcode filters for people who have free time to work on it and thus selects for upper middle class... this is even worse in that regard. Furthermore, the contributions of a new grad are... often "poor".
The take-home test is similarly derided in many circles that refuse to do leetcode and the "write this program" is even less transferable to doing interviews at other companies.
The issue is that SV cargo cults extremely hard. A lot of startups copy the big companies (and often the founders of small companies are from big companies - so they take what they know with them). Then everyone is like, "SV is so cool and full of money! Let's copy everything they do to emulate their success."
That's all it is. I'm not a fan of the author (for personal reasons) of CTCI but I don't think she or the existence of the book is the issue.
The worse to me are the interviews that ask you technology specific commands (for ops positions, especially k8s) and/or specific language constructs.
Why do you assume that poor products are poor products chiefly because of code?
My understanding is that Google internal politics are completely dominated by their promotion process [1]. I view the outcome of google products not as the result of poor hires, but the inevitable consequence of the organization's incentive structure. If pay (doubling or tripling) is dependent on launching new stuff, your best people will ship new stuff! If pay does not go up for maintaining old stuff, it will not be maintained. If pay does not go up for improving old products, old products will not be fixed. It doesn't matter which people you plug into that system, you will always get the same results.
Sure it does. Collaborative software development is a low-pass filter, not a high-pass one. If you put 100 people on a team and tell them to develop a product, the product quality will track the least controversial ideas, not the best. With more people, the set of uncontroversial ideas gets progressively smaller, and trends toward the features that nobody really cares about because those are the only ones that don't provoke strong emotional reactions. The simple fact that you added more people is what made the product shitty, not that the people were incompetent or poorly-skilled.
I've been in design discussions where we've had a room full of incredibly accomplished people, folks who've written major open-source projects or launched consumer products with billions of users, and the eventual decision was more brain-dead than anything that any one individual in that room could've come up with. And everybody knew it too, but you don't want to piss off highly intelligent and accomplished people, so you make the decision that everyone can kinda live with rather than the one that will wow users.
The lesson here should be "Don't hire unless you absolutely need to", not "Google hires stupid people."
You need a feedback loop to sanity check features some how, but you also need vision and the courage to release stuff that not everybody wants. Every good product I've worked on has had team members who thought the newest features were stupid. Too bad, you aren't the target audience, get over it.
Accept that you'll be releasing features that are either wildly liked or hated. You are going to be hitting both ends of the bell curve more often this way, embrace and accept it.
For all of his and Apple's faults, Jobs aggressively fostered a culture of "good is the enemy of perfect," which placed the focus on polished features instead of the dull hum of incremental development. And that bucking of homogenization is what led to such a rabid base of loyalists, as consumers tuned in to that momentum of (albeit perceived) innovation.
Google, on the other hand, has never really had a fan base to speak of, and the few remaining loyalists are rapidly disappearing. I genuinely have never met a consumer or dev who believes Google is at the bleeding edge of any feature. That is wholly reflective of Page and Brin's ideologies, who fostered a culture of "over-engineer, refactor and ship incomplete," which is exactly what you're describing. Angular, for example, is the perfect representation of the Page/Brin ideology, and that's why nobody uses it.
HP, IBM, Cisco, Sun, Netscape, Google - they were all visionary when they were small and bloated and inefficient once they got big. Apple too - do you remember the late 80s and early 90s, when Apple had a zillion PowerMac models, plans for Copland that never shipped, multiple new programming languages, the Newton, and basically a lot of ideas but shitty execution?
Steve Jobs basically managed to rein it in by being an asshole - he had both the product taste to be right, the charisma to convince everyone else of it, and the insensitivity to not care whose feelings he hurt. Elon Musk is similar. But note that the flip side of this is often a crisis of succession: IMHO Apple really hasn't been that visionary or helpful since Jobs died, and have basically pushed out a series of incremental improvements.
plus a lot just blindly memorize thousands of leetcode answers but aren’t great coders.