Live data from Hacker News

Stop Interviewing with Leet Code

fev.al

331–340 of 675 posts

Re: Stop Interviewing with Leet Code

#331

All of these supposed "flaws" of leetcode are by design. Big companies want people who are smart enough to do the work, but obedient enough to put up with all the bullshit that comes with working at a big company. What person better matches that than someone who's able and willing to study for and pass a tech version of the SAT? Every anti-leetcode article I read is some version of "leetcode is bad because it measure…

Every unicorny startup I've interviewed w/ that had a standard big-tech interview loop (1 LC style screener + final w/ 2-3 rounds of LC + 1 system design) was chock full of ex-big tech engineers and managers, replete with stories about wanting a faster paced / dynamic environment. So yes, that absolutely is who they are recruiting. It probably comes down to no more than believing big tech companies have the very best…

> More than obedience, it probably is the aspect that they're smart and determined to succeed.

Depending on your definition of success, I'd say determined to succeed could well be the same thing as obidience.

Re: Stop Interviewing with Leet Code

#332

Earlier quoted context omitted.

None of them own a Mac?

Google doesn't allow any code on laptops. Everything is done via web IDEs or ssh into a linux machine. So nobody is using brew to obtain dependencies.

You shouldn't use Brew to obtain dependencies. This is how you end up with people complaining about a brew upgrade replacing the version of Postgres their project depends on.

You probably shouldn't be using dpkg or rpm for that, either, unless your CI and deployment targets are running the exact same version of Linux that you are, and even then—there are usually cleaner and more cross-platform/distro ways to do it, especially if you need to easily be able to build or run older versions of your own software (say, for debugging, for git-bisecting, whatever). I continue to wonder how TF people have been using typical Linux package managers, that they end up footgunning themselves with brew. "Incorrectly", I suspect is the answer, more often than not.

Where it excels is installing the tools that you use, that aren't dependencies of projects, but things you use to do your work.

Get your hammer from Brew. Get your lumber from... uh, the proverbial lumber yard, I suppose. Docker, environment-isolated language-specific package managers, vendored-in libs, that kind of thing.

I don't install project deps with Brew (it's a bad idea, but, again, so is doing that with dpkg or rpm or whatever directly on your local OS, a lot of the time) but I do install: wget, emacs, vscode, any non-Safari browsers I want, various xvm-type programs (nvm, pyenv, that stuff), spectacle, macdown, Slack, irssi, and so on.

Re: Stop Interviewing with Leet Code

#333

Earlier quoted context omitted.

> replaced them with real engineers nice gatekeeping. Shame on them for working to get a job they want.

After seeing all the unreliable and buggy software, i think more gatekeeping in IT would probably be beneficial. You wouldn't let someone do surgery on you that hasn't been to medical school.

What if my surgeon went to med school and was top of class, but had an attending who insisted on using the wrong tools? Or there was another surgeon on the team who created the "architecture" for a brain surgery, but for some reason in order to get to the brain they went through the chest. There can be many reasons for unreliable and buggy software that are completely unrelated to the developer.

Re: Stop Interviewing with Leet Code

#334

Earlier quoted context omitted.

Google doesn't allow any code on laptops. Everything is done via web IDEs or ssh into a linux machine. So nobody is using brew to obtain dependencies.

...worked in another place which didn't allow local code. It was the most horrible dev experience I had. Cannot fathom why google went that way too.

Google lives and does by its distributed build system. Most devs don’t even have exactly have code on their local workstation either—it comes via remotely mounting a file system.

But 99.9% of the builds happen remotely. So local vs remote code just isn’t that relevant.

It is also true that Google spends millions and millions on its dev environment every year, so this isn’t your average “no code on laptops” situation.

Re: Stop Interviewing with Leet Code

#335
Every time this comes up, lots of people start with the assumption that coding problems have a large amount of false negatives.

Because of this perceived "truth", I had the same worry when we started to implement a coding problem. Rather than guess, we decided to measure it: for the first six months, we used a wide filter (50% pass rate, actually like 65-80% of people who didn't cheat).

What we found was that there were zero candidates in the bottom 66% who passed the rest of the interviews. The plagiarism detector also had no false positives (based on manual review). So at least on this sample, we found that we could screen out about 80% of applicants without having _any_ false negatives.

I'm sure there are some bad employers misusing coding tests, just like with any tool, but I have to imagine many others have done similar experiments and found their tests to be effective.

Re: Stop Interviewing with Leet Code

#336
post #254

Earlier quoted context omitted.

Google doesn't allow any code on laptops. Everything is done via web IDEs or ssh into a linux machine. So nobody is using brew to obtain dependencies.

That seems unlikely, given that they’ve implemented an Xcode project generator for iOS apps built with their build system: https://tulsi.bazel.build/ No one’s running Xcode on the web or on a Linux machine.

I’m sure there are a few open source developers who use brew or Xcode directly, but most Mac builds happen in a distributed build system wired up to use remote macs. Yes, via Xcode. Not on local machines.

Re: Stop Interviewing with Leet Code

#337
post #327

Earlier quoted context omitted.

It'd be a fun social experiment if one of the big tech companies replaced the leetcode-style rounds with something arbitrary. Let's say: The "jumping jacks" round. You have to turn your webcam on and do 100 jumping jacks in 60 seconds. Only then will you potentially advance to the next round. The person watching on the other end can evaluate how far over 100 you got, whether or not your form matches best practice, an…

Have you heard of Amazon's "LP" interviews? It seems to be a little bit like that. The challenge there is to tell a number of well-rehearsed stories.

I'm going through job interviews now (not with Amazon, but others). The whole thing feels like well-rehearsed regurgitation. Well, and a smidge of acting, obviously, because you don't want it to come off as well-rehearsed. But they know exactly what they want to hear and you're competing with other candidates who see the same writing on the wall and are doing their own rehearsals.

I thought it was just the leetcode, but it's the behavioral questions and system design exercises, too.

Eh, I'm coming across as cynical. I'll be fine--I just wish we (as an industry) had a better system.

Re: Stop Interviewing with Leet Code

#338
post #88
post #75

Someone who builds a truly novel technology solution involving hundreds of hours of effort gets filtered out of an interview involving contrived scenarios. You may have built the next generation X, but given an array of strings and a fixed width, can you format the text such that each line has exactly maxWidth characters and is fully justified -- in the next 30 minutes? Maybe you should have cultivated that skillset…

> Someone who builds a truly novel technology solution involving hundreds of hours of effort This person should already have enough of a reputation to get a job at many companies, if their work is public enough. What do you suggest for the 99%+ other candidates?

Wasn't there famously the story of the guy who wrote a package manager (brew?) that become massively popular and was widely used at google, and yet google rejected him for a job because he couldn't invert a binary tree or something?

Don't know all the details so I could be missing something crucial, but if not it'd seem that reputation isn't enough

Re: Stop Interviewing with Leet Code

#339

Earlier quoted context omitted.

You won't get the job not because you "didn't worry about the algorithm" but because you didn't ask any questions about the problem; just went straightforward to the implementation. In FAANG interviews that would be a red flag.

In the FAANG interviews I've done you're never allowed to ask questions...? Maybe for clarification of the problem space, but not about the algorithm or the promise of a particular solution.

Facebook interviews were very much interactive with my interviewer probing me on O(n) type questions and me refining it down to be more efficient. I was certainly allowed to answer questions, typically about scale. My code which was on a whiteboard certainly wouldn't compile and a good amount of the discussion was making sure that the interviewer could follow it and that he was satisfied with each of the steps.

My first round I passed with a less than optimally efficient solution, but he was satisfied every step of the way during my work.

While I was lukewarm to the prospect of working for Facebook, the interview process was very positive and reflected very well.

On a personal level, self interest would have me like the leetcode style problems because I can get most of them right on the first try during a timed interview, without studying. If I were pursuing a job at a FAANG, I might actually study them and I'm sure it would go well for the testing portion of the interview.

However, when I interview this is not what I'm looking for. I'm typically looking for someone who knows the particular language that I'm hiring for. My questions run from the very simple to as deep as they can go on either language or implementation details. From the most junior to the most senior, they get the same starting questions and I expect the senior people to go deeper and explain why they choose something over something else. I'm also testing their ability to explain it to me (not just get it right) as that is part of their job working with juniors.

I really don't even care if they have the names of things right and don't really count things wrong against them if they get the names of two things backwards for instance. For example in Go, a huge percent of the time you might use slice over arrays. Some people get the names backwards, but can identify which one they actually use and they know that one can change size. They are correct in usage and misnaming them. I inform them of the name, encourage them a bit and move on.

I've never liked the "look at this code, what's wrong with it" approach. There are too many contexts that I have to jump into at the same time. There is often an expectation that I find a specific problem with it. I'm lacking the usual tools like an IDE or compiler. What level am I looking at in the code? Does it compile? Are there off by one errors? Cache invalidation? Spelling errors? Logic errors? Business errors?

This guy has missing tests on code that needs to be refactored in order to make those tests. Maybe he has it figured out just right, but the "jump into my code" interviews I've been in on all seemed like they had secret gotchas that the interviewer expected specific answers about.

In short, I haven't seen a proper, repeatable process for interviewing for software development.

Re: Stop Interviewing with Leet Code

#340
post #213

Earlier quoted context omitted.

They are correct. Stuff like project zero is an extreme outlier. I've been using a MBP for 5 years and have never used homebrew on it.

Cheers for clarifying :) I'll admit that surprises me greatly, I can't see why it's considered more efficient, but hey, Google.

The first program you build in Noogler training takes more compute and io to build than the Linux kernel. The distributed build systems laughs at such a trivial program and barely breaks a sweat at programs 10x that size.

A poor little laptop would break down and cry.

Post reply on HN