site banner

Culture War Roundup for the week of October 3, 2022

This weekly roundup thread is intended for all culture war posts. 'Culture war' is vaguely defined, but it basically means controversial issues that fall along set tribal lines. Arguments over culture war issues generate a lot of heat and little light, and few deeply entrenched people ever change their minds. This thread is for voicing opinions and analyzing the state of the discussion while trying to optimize for light over heat.

Optimistically, we think that engaging with people you disagree with is worth your time, and so is being nice! Pessimistically, there are many dynamics that can lead discussions on Culture War topics to become unproductive. There's a human tendency to divide along tribal lines, praising your ingroup and vilifying your outgroup - and if you think you find it easy to criticize your ingroup, then it may be that your outgroup is not who you think it is. Extremists with opposing positions can feed off each other, highlighting each other's worst points to justify their own angry rhetoric, which becomes in turn a new example of bad behavior for the other side to highlight.

We would like to avoid these negative dynamics. Accordingly, we ask that you do not use this thread for waging the Culture War. Examples of waging the Culture War:

  • Shaming.

  • Attempting to 'build consensus' or enforce ideological conformity.

  • Making sweeping generalizations to vilify a group you dislike.

  • Recruiting for a cause.

  • Posting links that could be summarized as 'Boo outgroup!' Basically, if your content is 'Can you believe what Those People did this week?' then you should either refrain from posting, or do some very patient work to contextualize and/or steel-man the relevant viewpoint.

In general, you should argue to understand, not to win. This thread is not territory to be claimed by one group or another; indeed, the aim is to have many different viewpoints represented here. Thus, we also ask that you follow some guidelines:

  • Speak plainly. Avoid sarcasm and mockery. When disagreeing with someone, state your objections explicitly.

  • Be as precise and charitable as you can. Don't paraphrase unflatteringly.

  • Don't imply that someone said something they did not say, even if you think it follows from what they said.

  • Write like everyone is reading and you want them to be included in the discussion.

On an ad hoc basis, the mods will try to compile a list of the best posts/comments from the previous week, posted in Quality Contribution threads and archived at /r/TheThread. You may nominate a comment for this list by clicking on 'report' at the bottom of the post and typing 'Actually a quality contribution' as the report reason.

24
Jump in the discussion.

No email address required.

In the end, we survived the semester only by throwing them many bones and basically not giving any grades below an A-.

And then, these people have over-inflated estimates of their own competence, and off they go out into the real world to make basic mistakes and cause problems...

If such people are lucky enough to pass an interview, they'll often become aware of their limitations on the job and shift to contributing in other, less technical ways. For example, coordinating diversity initiatives, contributing to codes of conduct, or scrubbing codebases of "biased" language. That last one is fantastic, because if your employer is dumb enough to measure lines of code, it looks like you're actually contributing code.

I used to be an interview-giver (~50 per year) at a major tech company. One of the reasons I stopped giving interviews was the experience I had around a particular candidate in 2019.

Background context: the company I'm referencing here has a general candidate intake; relatively few people are recruited to work on a particular team. The candidate, after an initial screen, goes through five typical whiteboarding coding interviews (now four; one has been replaced by a Goodliness and Leadership "G&L" interview to provide a more, err, holistic perspective). Each interviewer scores the candidate on several attributes, briefly comments on them, and provides a rating from Strong No Hire to Strong Hire. If the initial scores are promising, everyone writes up a full review and justification that takes 1-2 hours of time. A hiring committee composed of technical leadership then reviews the packet and gives the thumbs up or down.

My go-to questions were framed around an array that starts with increasing integers and then switches, once, to decreasing integers. E.g. you might have [1, 3, 5, 4, 2] or [11, 12, 15, 9]. I start with a very simple question that tests that the candidate understands the property, followed by a warm-up, and then three more sophisticated questions that I actually try to get a hiring signal from. Around 50% of candidates make it substantially past the warm-up, and even those who don't usually still feel good about the interview and hopefully learned something because they made genuine progress.

So, the candidate comes in, and he had graduated cum laude with a CS degree from a HBCU before going to work at a government contractor. So after some chit-chat to get him into a productive headspace, I pose the simple question: how might you find the minimum value for an array with this property? Most candidates can immediately answer (sometimes with some clarifications on the spec) so I rarely ask them to code it out, but he just didn't get it. So we code, and he struggles everywhere, from not knowing how to get the length of the array to not understanding how something could be increasing and then decreasing. We spent 45 minutes with me hand-holding him to a pseudocode solution on the initial sanity check and don't even get to the warm-up.

Naturally, I give Strong No Hire. Surprisingly, I am told by the recruiter I need to do the full write up, which I dutifully and meticulously do. The recruiter comes back and tells me that she thinks I unfairly rated him (how would she know???) on two of the attributes and needed to either further justify them or change them. I justify further. Finally, he goes to hiring committee, he's (thankfully) turned down, and the scores everyone gave him are released to us. Literally everyone had given him the lowest possible rating on every attribute and said Strong No Hire. Despite that, all of us had to spend hours writing up the interviews and resisting calls from the recruiter to revise our scores, which was highly exceptional and not something we used to be asked. The second that happened, I removed myself permanently from the interviewer pool: clearly my time wasn't something they respected or valued.

I checked up on the candidate on LinkedIn a couple months ago, and he's still at his government contractor, writing the code that runs the US military. Glad that critical ad impression code was protected from him.

how might you find the minimum value for an array with this property?

min(array[first_index],array[last_index])?

Either something is seriously wrong with the HBCU's or that student goofed real hard due to anxiety or whatever, it's hard to imagine someone failing upwards that spectacularly.

There's something seriously wrong at the HBCUs. This is pretty well known at "major tech company", which has actually attempted to do something about that. Not successfully.

(and finding the max is trivial in O(N) time, a bit harder in O(log N) time)

But is that something wrong with HBCUs?

As a non American outsider, my impression is that they are regular colleges other than the history and the current student demographics.

Something being "wrong" with the proportion of black people in tech is independent of something being wrong with HBCUs.

I didn't say what was wrong at the HBCUs. "Major tech company" thinks it's the coursework, and that's what they were (and maybe "are") trying to fix. Witchy types think something is wrong with the incoming student body, and a look at Howard University's incoming SAT scores does not disabuse them of this notion. Howard is perhaps the most prestigious of the HBCUs and its average incoming SAT score composite is 1213. The nearby University of Maryland College Park, the flagship Maryland state school (not particularly prestigious), has an average SAT score composite is 1380.

Something being "wrong" with the proportion of black people in tech is independent of something being wrong with HBCUs.

They are probably not independent. One possibility, held mostly by optimists, is that HBCUs attract black students and then fail them, resulting in the low proportion of black people in tech. Another, held by witches, is that black students as a whole are less intelligent and this results both in the problems at HBCUs (with students passing without having learned) and the low proportion of black people in tech.

You don't need to couch what you are saying in Euphemisms. We are off reddit and I am familiar with the efforts of Google and the fact that blacks (as a group) in America have lower average IQ's, lol.

I was under the impression that HBCU's would operate like normal colleges and fail those who deserve to fail. But if they have lower standards then the situation OP described makes sense.

I don't think HBCUs have worse instructional quality or students than colleges that recruit students with similar SAT scores. An expectation that Howard grads perform similarly to MIT grads isn't a realistic expectation.

What I find interesting is how much easier your actual (ie. not the warmup one) problem is, relative to the problems I was given when I interviewed at the exact same company a decade ago. Then, when I worked there, the problems I was giving people during interviews were easier than the ones I was given, but harder than the one you are giving.

I think that this was ultimately unavoidable, given the number of people the company wanted and did hire over this time period. It did result in the transformation of the image of the company within the industry though, from the coolest place that everyone wanted to work at, through a place that everyone wanted to have on their resume, to another Microsoft: a steady job paying well, but not particularly exciting or hard to come by.

I’m confused. Where does he actually state the non warm up problem? Was it edited?

With experience, you can easily guess what the real problem will be, based on input and the warm up part, but in any case, he does say what the problem is in another comment.

Yeah, they're not particularly hard and not intended to be; the goal is to just see if someone is a competent coder, not a genius. I still only ended up giving a LH or higher recommendation to ~20% of people.

In some ways going for the best and brightest would be disadvantageous; they'd get bored wiring protos and updating config files all day. The main things selected for are competence, willingness to do some bare minimum of work, and compliance/desire not to rock the boat too much. Which probably makes sense.

It is true that for an established company, not destroying it is the first order of business. That said, even if you ignore how lousy Google is on product side (recent story of Stadia being probably the best example of the fundamental problem it has), if you assume that it could come up with a great and compelling product, the ability to effectively execute on this is simply not there. Chrome was originally built by a team of 10 people or so. A team I was on for a whole, which is responsible for the project that is absolutely fundamental to GCP’s existence, was 15 people when the software was 95% feature complete (and the remaining features, including the ones I worked on, are mostly useless crap), is apparently above 60 people today, I have no idea what they all even do. This means that even if the promo driven culture was not a thing, projects like Stadia couldn’t survive anyway, because Google is not efficient enough to run projects that don’t have insanely good margins and quick growth. Their current cash cow of AdWords is going to slowly but steadily lose value, as general search slowly loses relevance on modern web.

I’m just rambling here, but I find it sad to compare how cool Google was in mid-to-late 2000s, vs the sad thing it is now. And that is even before you consider loss of open company culture, DEI etc.

If I am running Flagship Product with a team of 15, and I am successful at making Flagship Product work, I am going to be rewarded with a higher headcount.

I've been playing with a theory for awhile: Google became Saudi Arabia. After it solidified its ads product, it had an infinite money spigot. It could throw lots of money around internally, and it was unlikely for what would otherwise be successful products to significantly improve its bottom line. Internal politics became the main driver of who got resources for vanity projects, and the general transformation of its culture (including the Wahhabist DEI initiatives) followed from that.

Do you happen to have any particular insights into the birth, life, and death of Stadia?

Nothing more than this HN comment from 2019 very concisely puts. Stadia’s failure mode is extremely typical to Google. I actually sat very close to people who worked on what became Stadia back in 2015 (which is also instructive as to how long it takes to develop products at Google: Stadia was in development before the launch for longer than it was in GA), and I could reach to them, but I doubt I’d learn anything I cannot guess from the outside: indeed, I doubt that these particular people who I knew that worked on Stadia in 2015 have still worked on Stadia in 2022! Many such cases.

Yeah, they're not particularly hard and not intended to be; the goal is to just see if someone is a competent coder, not a genius. I still only ended up giving a LH or higher recommendation to ~20% of people.

Are the people applying and getting hired at major tech companies really that bad at basic algorithmic thinking? Conceptually, that stuff was at the level of a quiz in AP CS in junior year in high school.

Maybe I should crank out an online course or something...

did they post the follow up questions elsewhere? All I see as a question is the one where you just compare the first and last element in the array. I imagine the actual questions are much harder.

The example follow-ups were "write a function to verify that an array satisfies this constraint; "invert" an array that initially satisfies this constraint such that it decreases and then increases; or sort an array that initially satisfies this constraint.". It might not have been the most elegant solutions, but that's the kind of stuff I was expected to accomplish in C++ in 1-2 45 minutes classes in 2002.

Seems pretty doable, I assume efficiency counts?

More comments

People applying, definitely.

Getting hired usually is a signal that someone knows basic data structures (nothing too exotic) and can make vaguely accurate gesticulations about complexity.

And yeah, you should. Not as intellectually stimulating as being a bricklayer or plumber, but definitely much better compensated.

It's probably too late now, but I'm pretty sure once upon a time I was on hiring committees at the same company, and you should have told that recruiter's manager (the recruiters are almost always TVCs, who only care about hitting their hiring targets) about that. They shouldn't waste yours and others' time, and they shouldn't be getting incompetent people hired.

I too have set my interviews / week to zero.

*edit: should -> shouldn't

Once upon a time, people working there cared about the company culture. Now, most of my friends who still work there are extremely detached, and only do it for a paycheck. In fact, given the current climate, going against the recruiter and the candidate in this particular case is a move with rather low upside to you (due to the tragedy of commons) and very high downside. You’d have to be pretty autistic to try, like, for example, James Damore.

Is it comparing the first and last values, or is there a catch I’m missing?

Your choice to remove from the interview gives me mixed feelings. On one hand, it seems like jury selection: if everyone competent finds a way out, who is left? On the other, screw that, and screw them for wasting your time. The best signal is refusing to be complicit.

This has been on my mind because the number one complaint about my defense-contractor employer is related. Last time we had a merger we picked up a bunch of policies which are, apparently, universally reviled in our branch. I’m under the impression it’s not just unfamiliarity, but actual lost productivity. So if there’s a better way to mitigate this, I and the rest of the company would love to know...

Yep, exactly that. No catch.

It then is supposed to segue neatly into the actual warm-up (to find the maximum). Depending on the performance there, I have different follow-up questions: write a function to verify that an array satisfies this constraint; "invert" an array that initially satisfies this constraint such that it decreases and then increases; or sort an array that initially satisfies this constraint. (Though it's been leaked and has since been retired.)

Out of curiosity, did you expect the warmup to be addressed with something like:

Compare two middlemost entries; the max lies in the half of the array containing the greater of the two. Return this half of the array. Repeat until the remaining array has length 1 (with the max entry guaranteed).

Or is there a better way? Conversely, suppose the interviewee does the obvious thing and compares consecutive pairs until a decreasing pair is found. Would they have any chance of getting hired?

More or less. It's essentially a binary search, where you're looking for a local maximum instead of an exact value. It's optimal.

Usually competitive candidates see this immediately. If someone suggests a linear scan, I'll ask if we can do better and they eventually get to the binary search. That's not in itself something that results in a NH recommendation, but in practice the people who get the binary search right away tend to do better on later parts.

Or is there a better way?

The max can be any one of N entries. So in order to specify its position, you need the number of bits in N. Any search which allows you to find the max in fewer than that many bits would imply that you can specify the position of the max in fewer than that many bits, and is therefore impossible.

If a query on the list just gives you a single bit of information, you're right, giving us the log2 bound. I have seen the claim made in an interview that a quantum speedup is possible to improve on that. (Cf https://web.mit.edu/rsi/www/pdfs/papers/2003/2003-brianj.pdf for a quantum search on an ordered list).

Would love for someone well-versed in quantum algorithms to confirm.

I was an interviewer at another big tech company that imported much of its interviewing processes from your big tech company.

I never encountered a situation as egregious as yours, but I could perceive that the URM candidates were more frequently completely lost than other candidates. We had lowered the bar for getting to on-site interviews for those candidates, so that's a natural consequence. Thankfully we had not lowered the bar for actually passing the interviews, and I was never pressured to change a hire/no-hire rating.

We didn't say it super loudly that the bar was lowered for these candidates. I have to wonder if some interviewers weren't aware of this and ended up with the impression that generally worse interview performance for URM candidates had something to do with the sexes or races involved instead of being an artifact of a biased screening process.

Yeah, until everyone else is out and Tacoma needs a new bridge across the Narrows.